action-texter 0.1.2.ALPHA → 0.2.0.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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