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 +4 -4
- data/Gemfile.lock +4 -1
- data/action-texter.gemspec +5 -2
- data/lib/action_texter.rb +3 -0
- data/lib/action_texter/configuration.rb +1 -1
- data/lib/action_texter/delivery_methods.rb +1 -0
- data/lib/action_texter/gem_version.rb +3 -3
- data/lib/action_texter/message.rb +3 -1
- data/lib/action_texter/messenger.rb +4 -7
- data/lib/action_texter/provider/mail/delivery.rb +31 -0
- data/lib/action_texter/provider/messagebird/delivery.rb +0 -1
- metadata +16 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cea093bbb16240a1e70407f1551044dddd2884f7
|
4
|
+
data.tar.gz: ba9a6f767cd07ff9ecc626742b81eeb57435d797
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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)
|
data/action-texter.gemspec
CHANGED
@@ -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.
|
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'
|
@@ -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
|
@@ -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, :
|
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,
|
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.
|
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
|