diff --git a/Gemfile.lock b/Gemfile.lock index e8d0be8..5f521e1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,9 +1,9 @@ PATH remote: . specs: - esendex (0.6.0) + esendex (0.6.1) nestful (~> 0.0.8) - nokogiri (~> 1.6.8.1) + nokogiri (~> 1.8) GEM remote: http://rubygems.org/ @@ -44,9 +44,9 @@ GEM concurrent-ruby (1.0.5) diff-lcs (1.3) erubis (2.7.0) - ffi (1.9.21) - ffi (1.9.21-x64-mingw32) - ffi (1.9.21-x86-mingw32) + ffi (1.9.25) + ffi (1.9.25-x64-mingw32) + ffi (1.9.25-x86-mingw32) formatador (0.2.5) growl (1.0.3) guard (2.14.2) @@ -69,22 +69,22 @@ GEM listen (3.0.8) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) - lumberjack (1.0.12) + lumberjack (1.0.13) mail (2.7.0) mini_mime (>= 0.1.1) method_source (0.9.0) - mini_mime (1.0.0) - mini_portile2 (2.1.0) + mini_mime (1.0.1) + mini_portile2 (2.3.0) minitest (5.11.3) nenv (0.3.0) nestful (0.0.8) activesupport (>= 3.0.0.beta) - nokogiri (1.6.8.1) - mini_portile2 (~> 2.1.0) - nokogiri (1.6.8.1-x64-mingw32) - mini_portile2 (~> 2.1.0) - nokogiri (1.6.8.1-x86-mingw32) - mini_portile2 (~> 2.1.0) + nokogiri (1.8.4) + mini_portile2 (~> 2.3.0) + nokogiri (1.8.4-x64-mingw32) + mini_portile2 (~> 2.3.0) + nokogiri (1.8.4-x86-mingw32) + mini_portile2 (~> 2.3.0) notiffany (0.1.1) nenv (~> 0.1) shellany (~> 0.0) @@ -112,34 +112,34 @@ GEM rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rake (12.2.1) - rb-fsevent (0.10.2) + rb-fsevent (0.10.3) rb-inotify (0.9.10) ffi (>= 0.5.0, < 2) - rspec (3.7.0) - rspec-core (~> 3.7.0) - rspec-expectations (~> 3.7.0) - rspec-mocks (~> 3.7.0) + rspec (3.8.0) + rspec-core (~> 3.8.0) + rspec-expectations (~> 3.8.0) + rspec-mocks (~> 3.8.0) rspec-collection_matchers (1.1.3) rspec-expectations (>= 2.99.0.beta1) - rspec-core (3.7.1) - rspec-support (~> 3.7.0) - rspec-expectations (3.7.0) + rspec-core (3.8.0) + rspec-support (~> 3.8.0) + rspec-expectations (3.8.1) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.7.0) - rspec-mocks (3.7.0) + rspec-support (~> 3.8.0) + rspec-mocks (3.8.0) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.7.0) - rspec-rails (3.7.2) + rspec-support (~> 3.8.0) + rspec-rails (3.8.0) actionpack (>= 3.0) activesupport (>= 3.0) railties (>= 3.0) - rspec-core (~> 3.7.0) - rspec-expectations (~> 3.7.0) - rspec-mocks (~> 3.7.0) - rspec-support (~> 3.7.0) - rspec-support (3.7.1) + rspec-core (~> 3.8.0) + rspec-expectations (~> 3.8.0) + rspec-mocks (~> 3.8.0) + rspec-support (~> 3.8.0) + rspec-support (3.8.0) shellany (0.0.1) - sprockets (3.7.1) + sprockets (3.7.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) sprockets-rails (2.3.3) @@ -175,4 +175,4 @@ DEPENDENCIES wdm (<= 0.0.3) BUNDLED WITH - 1.16.1 + 1.16.5 diff --git a/esendex.gemspec b/esendex.gemspec index 3845176..a49443e 100644 --- a/esendex.gemspec +++ b/esendex.gemspec @@ -16,5 +16,5 @@ Gem::Specification.new do |gem| gem.version = Esendex::VERSION gem.required_ruby_version = "~> 2.2" gem.add_runtime_dependency "nestful", ["~> 0.0.8"] - gem.add_runtime_dependency "nokogiri", ["~> 1.6.8.1"] + gem.add_runtime_dependency "nokogiri", ["~> 1.8"] end diff --git a/lib/esendex/account.rb b/lib/esendex/account.rb index 17a612d..6b27e3b 100644 --- a/lib/esendex/account.rb +++ b/lib/esendex/account.rb @@ -26,7 +26,7 @@ def send_message(args={}) raise ArgumentError.new(":to required") unless args[:to] raise ArgumentError.new(":body required") unless args[:body] - send_messages [Message.new(args[:to], args[:body], args[:from])] + send_messages [Message.new(args[:to], args[:body], args[:from], args[:characterset])] end def send_messages(messages) diff --git a/lib/esendex/message.rb b/lib/esendex/message.rb index a90adc2..7aba32d 100644 --- a/lib/esendex/message.rb +++ b/lib/esendex/message.rb @@ -7,12 +7,13 @@ module Esendex class Message - attr_accessor :to, :body, :from + attr_accessor :to, :body, :from, :characterset - def initialize(to, body, from=nil) + def initialize(to, body, from=nil, characterset=nil) @to = to @body = body @from = from + @characterset = characterset.nil? ? 'Auto' : characterset end def xml_node @@ -32,6 +33,12 @@ def xml_node doc.root.add_child(from) end + if @characterset + characterset = Nokogiri::XML::Node.new 'characterset', doc + characterset.content = @characterset + doc.root.add_child(characterset) + end + doc.root end end diff --git a/lib/esendex/version.rb b/lib/esendex/version.rb index 89ab835..921cd75 100644 --- a/lib/esendex/version.rb +++ b/lib/esendex/version.rb @@ -1,3 +1,3 @@ module Esendex - VERSION = "0.6.0" + VERSION = "0.6.1" end diff --git a/spec/message_spec.rb b/spec/message_spec.rb index 5b9cb40..251e94f 100644 --- a/spec/message_spec.rb +++ b/spec/message_spec.rb @@ -5,7 +5,8 @@ let(:to) { random_mobile } let(:from) { random_mobile } let(:body) { random_string } - let(:message) { Esendex::Message.new(to, body, from) } + let(:characterset) { 'Unicode' } + let(:message) { Esendex::Message.new(to, body, from, characterset) } it "should have to set" do expect(message.to).to eq(to) @@ -18,12 +19,17 @@ it "should have body set" do expect(message.body).to eq(body) end + + it "should have characterset set" do + expect(message.characterset).to eq(characterset) + end end describe "#xml_node" do let(:to) { random_mobile } let(:body) { random_string } - let(:message) { Esendex::Message.new(to, body) } + let(:characterset) { 'Auto' } + let(:message) { Esendex::Message.new(to, body, ) } subject { message.xml_node } @@ -45,5 +51,9 @@ expect(subject.at_xpath('//message/from').content).to eq(from) end end + + it "contains a characterset node" do + expect(subject.at_xpath('//message/characterset').content).to eq(characterset) + end end end