action-texter 0.1.2.ALPHA → 0.2.0.pre

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 45e843e360fc7a106fd3dfe21bb8610a2c5ed871
4
- data.tar.gz: d28db3155f8faceb11f91c8b9495400adf2785e7
3
+ metadata.gz: cea093bbb16240a1e70407f1551044dddd2884f7
4
+ data.tar.gz: ba9a6f767cd07ff9ecc626742b81eeb57435d797
5
5
  SHA512:
6
- metadata.gz: e00fde1bd22e3d68d28701faae5eeb4e46b330114a9cb66340c2141b23d2588e35eb9351831de9dc0689ea0e12b0d900e95473b8417888a471d44753017fa302
7
- data.tar.gz: 2924abaedaba3c1020e41b0c819494d0404765238564c024fc0e4eb1951dba018d5239aa6851fa9caa907fd984a4da870925f70494b8fc82c2e84260d702c808
6
+ metadata.gz: 5156997c15eeb5f73808d2073e8f97e7634d7778f2d17e291c06f9895da080e34534d02852ac7a3efade471db268bccd5357d9e305df239301829a3cee19c580
7
+ data.tar.gz: a337e79222dac9079053ae5142bd569808eba1bc3f408c7c85a0d55b31f447460588f4222afeb8c2006b77413b0df1001e5badad6c04f5f797eac06b19dd2fbb
data/Gemfile.lock CHANGED
@@ -1,10 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- action-texter (0.1.2.ALPHA)
4
+ action-texter (0.2.0.pre)
5
5
  class_attribute (~> 0.1)
6
6
  facets (~> 3.0)
7
7
  json
8
+ mail (~> 2.6)
8
9
 
9
10
  GEM
10
11
  remote: https://rubygems.org/
@@ -29,6 +30,8 @@ GEM
29
30
  http-cookie (1.0.2)
30
31
  domain_name (~> 0.5)
31
32
  json (1.8.3)
33
+ mail (2.6.3)
34
+ mime-types (>= 1.16, < 3)
32
35
  method_source (0.8.2)
33
36
  mime-types (2.99)
34
37
  netrc (0.11.0)
@@ -27,11 +27,14 @@ Gem::Specification.new do |spec|
27
27
 
28
28
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0')
29
29
 
30
- spec.add_runtime_dependency 'json'
30
+ spec.add_dependency 'json'
31
31
  spec.add_runtime_dependency 'facets', '~> 3.0'
32
32
  spec.add_runtime_dependency 'class_attribute', '~> 0.1'
33
+ spec.add_runtime_dependency 'mail', '~> 2.6'
33
34
  else
34
- spec.add_runtime_dependency 'facets', '~> 3.0'
35
35
  spec.add_dependency 'json'
36
+ spec.add_runtime_dependency 'facets', '~> 3.0'
37
+ spec.add_runtime_dependency 'class_attribute', '~> 0.1'
38
+ spec.add_runtime_dependency 'mail', '~> 2.6'
36
39
  end
37
40
  end
data/lib/action_texter.rb CHANGED
@@ -10,6 +10,9 @@ module ActionTexter
10
10
  autoload :DeliveryMethods, 'action_texter/delivery_methods'
11
11
 
12
12
  module Provider
13
+ module Mail
14
+ autoload :Delivery, 'action_texter/provider/mail/delivery'
15
+ end
13
16
  module Messagebird
14
17
  autoload :Delivery, 'action_texter/provider/messagebird/delivery'
15
18
  autoload :Response, 'action_texter/provider/messagebird/response'
@@ -5,7 +5,7 @@ module ActionTexter
5
5
  alias_method :api_key=, :product_token=
6
6
 
7
7
  def defaults
8
- @defaults ||= { from: from, to: to, content_type: content_type }
8
+ @defaults ||= { from: from, to: to }
9
9
  end
10
10
 
11
11
  def initialize
@@ -23,6 +23,7 @@ module ActionTexter
23
23
  #:location => defined?(Rails.root) ? "#{Rails.root}/tmp/texts" : "#{Dir.tmpdir}/texts"
24
24
  add_delivery_method :test, ActionTexter::Provider::TestMessage::Delivery
25
25
  add_delivery_method :messagebird, ActionTexter::Provider::Messagebird::Delivery, { endpoint: 'https://rest.messagebird.com', path: '/messages' }
26
+ add_delivery_method :mail, ActionTexter::Provider::Mail::Delivery, { charset: 'utf8' }
26
27
  # add_delivery_method :twilio, ActionTexter::TwilioDelivery
27
28
  # add_delivery_method :whitelist_proxy, ActionTexter::WhitelistProxyDelivery
28
29
  end
@@ -6,9 +6,9 @@ module ActionTexter
6
6
 
7
7
  module VERSION
8
8
  MAJOR = 0
9
- MINOR = 1
10
- TINY = 2
11
- PRE = 'ALPHA'
9
+ MINOR = 2
10
+ TINY = 0
11
+ PRE = 'pre'
12
12
 
13
13
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
14
14
  end
@@ -2,12 +2,14 @@
2
2
  module ActionTexter
3
3
  class Message
4
4
  include DeliveryMethods
5
- attr_accessor :from, :to, :body, :reference, :delivery_handler
5
+ attr_accessor :from, :to, :cc, :subject, :body, :reference, :delivery_handler
6
6
  attr_reader :delivery_method, :delivery_options
7
7
 
8
8
  def initialize(attributes = {})
9
9
  @from = attributes[:from]
10
10
  @to = attributes[:to]
11
+ @cc = attributes[:cc]
12
+ @subject = attributes[:subject]
11
13
  @body = attributes[:body]
12
14
  @reference = attributes[:reference]
13
15
  wrap_delivery_behavior!(self, ActionTexter.config.delivery_method)
@@ -1,23 +1,20 @@
1
1
  module ActionTexter
2
2
  class Messenger
3
- attr_accessor :from, :to, :body, :dcs, :reference
3
+ attr_accessor :from, :to, :body, :subject, :reference
4
4
 
5
5
  def initialize(attributes = {})
6
6
  self.class.default_params ||= {}
7
-
8
- @from = attributes[:from] || self.class.default_params[:from]
9
- @to = attributes[:to] || self.class.default_params[:to]
10
- @body = attributes[:body]
11
- @reference = attributes[:reference]
12
7
  end
13
8
 
14
9
  def content(attributes = {})
10
+ # override with defaults
11
+ attributes = attributes.merge( self.class.default_params ).freeze
15
12
  attributes.each { |attr, value| send("#{attr}=", value) }
16
13
  self
17
14
  end
18
15
 
19
16
  def message
20
- @message ||= ActionTexter::Message.new(from: from, to: to, dcs: dcs, body: body, reference: reference)
17
+ @message ||= ActionTexter::Message.new(from: from, to: to, subject: subject, body: body, reference: reference)
21
18
  end
22
19
 
23
20
  def self.method_missing(method_name, *args) # :nodoc:
@@ -0,0 +1,31 @@
1
+ require 'mail'
2
+ module ActionTexter
3
+ module Provider
4
+ module Mail
5
+ class Delivery
6
+
7
+ def initialize(settings = {})
8
+ @charset = settings[:charset]
9
+ end
10
+
11
+ def deliver(message)
12
+
13
+ mail = ::Mail.new do |mail|
14
+ from message.from
15
+ to message.to
16
+ cc message.cc
17
+ subject message.subject
18
+ body message.body.to_s
19
+
20
+ self.charset = @charset
21
+ end
22
+
23
+ #LOGGER.info(mail.body)
24
+
25
+ mail.deliver!
26
+
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -12,7 +12,6 @@ module ActionTexter
12
12
  end
13
13
 
14
14
  def deliver message
15
- binding.pry
16
15
  uri = URI.parse( @endpoint )
17
16
  Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
18
17
  @response = Response.new(http.post(@path, to_json(message), 'Authorization' => "AccessKey #{ActionTexter.config.product_token}", 'Content-Type' => 'application/json'))
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: action-texter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2.ALPHA
4
+ version: 0.2.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - oliverzeyen
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0.1'
125
+ - !ruby/object:Gem::Dependency
126
+ name: mail
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '2.6'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '2.6'
125
139
  description: Send text messages by means of the HTTP protocol via a HTTP driven sms
126
140
  provider
127
141
  email:
@@ -151,6 +165,7 @@ files:
151
165
  - lib/action_texter/message.rb
152
166
  - lib/action_texter/message_delivery.rb
153
167
  - lib/action_texter/messenger.rb
168
+ - lib/action_texter/provider/mail/delivery.rb
154
169
  - lib/action_texter/provider/messagebird/delivery.rb
155
170
  - lib/action_texter/provider/messagebird/response.rb
156
171
  - lib/action_texter/provider/messagebird/response_error.rb