actionmessage 0.0.2 → 0.0.3

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: 541663cfd718619f12884cf71b9b1eab26a50934
4
- data.tar.gz: 639cf6fdfd983a529865af6087c78f28031ce341
3
+ metadata.gz: 6a20899cfb228e2de0504bf9ecee99c606fdd2e7
4
+ data.tar.gz: fc4096a29713a90392fecf6a9c3f287f58ee4494
5
5
  SHA512:
6
- metadata.gz: 7d86a171aa51ca87e459db55086f7c6f35c540cea33ee4924db098a781267fadee0060106eefb659691b8dcee32ba49bed02fe0eb666c4bce894b5da65615741
7
- data.tar.gz: 15878051ae3735d4aed69548b7b806d2aaf8b9bb560d4ec245851e3e6fd9c0b8892f694d5e3e6fd61831f4e80e0246a34ffd4c72d849eb68582e662d32c98e12
6
+ metadata.gz: c56cb488263cc97197279f195278577fbc416d1df8b29b5b01b186ebcf24a50688d546bb6ec1c24379c6f0ba4326d98514f681e8d14af97c7366cf6f74fa73d3
7
+ data.tar.gz: 9c2d038de96a0386a1aa12f41d3115399674a9533242cc7b5248349b44e670c623f425a7987da381c473205ea6ee21c66c08719e412786f33f1c95b90cc9ee7b
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ actionmessage-*
data/README.md CHANGED
@@ -1,23 +1,23 @@
1
1
  # ActionMessage
2
2
 
3
- This is a pet project – an ActionMailer heavily-inspired gem for working with SMS/Text messages.
3
+ ActionMessage is heavily-inspired on ActionMailer.
4
+ It's a gem for sending SMS/Text messages like we do for sending e-mails on ActionMailer.
4
5
  Pull requests are more than welcome!
5
6
 
7
+ [![Gem Version](https://badge.fury.io/rb/actionmessage.svg)](https://badge.fury.io/rb/actionmessage)
8
+ [![Build Status](https://travis-ci.org/dballona/actionmessage.svg?branch=master)](https://travis-ci.org/dballona/actionmessage)
9
+ [![codecov](https://codecov.io/gh/dballona/actionmessage/branch/master/graph/badge.svg)](https://codecov.io/gh/dballona/actionmessage)
10
+ [![Code Climate](https://codeclimate.com/github/dballona/actionmessage/badges/gpa.svg)](https://codeclimate.com/github/dballona/actionmessage)
11
+
6
12
  ## Usage
7
13
 
8
- Install it using bundler
14
+ Install it using bundler:
9
15
 
10
- ```sh
16
+ ```ruby
11
17
  # Gemfile
12
18
  gem 'actionmessage'
13
19
  ```
14
20
 
15
- or just require it:
16
- ```sh
17
- gem install actionmessage
18
- require 'action_message'
19
- ```
20
-
21
21
  If you're using Rails, place this on your environment file or application.rb
22
22
  ```ruby
23
23
  require 'action_message/railtie'
@@ -46,15 +46,13 @@ end
46
46
 
47
47
  Define your views under your view path, such as: app/views/merchant_message/send_welcome_sms.text.erb
48
48
  ```html
49
- Welcome, <%= @name %>!!!
49
+ Welcome, <%= @name %>!
50
50
  ```
51
51
 
52
- TODO:
52
+ Pending implementations:
53
53
 
54
- - Add tests to what we've got already;
55
54
  - Add background processing (deliver_later);
56
55
  - Log instrumentation with ActiveSupport;
57
56
  - Add generators;
58
- - Add delivery methods;
59
- - Add test helpers;
60
- - Add more adapters;
57
+ - Add test helpers for deliveries count, matching message.body, message.to, etc;
58
+ - Add more adapters such as Plivo;
@@ -26,4 +26,6 @@ Gem::Specification.new do |spec|
26
26
  spec.add_development_dependency 'bundler', '~> 1.11'
27
27
  spec.add_development_dependency 'rake', '~> 10.0'
28
28
  spec.add_development_dependency 'rspec', '~> 3.0'
29
+ spec.add_development_dependency 'webmock', '~> 2.1.0'
30
+ spec.add_development_dependency 'codecov', '~> 0.1.5'
29
31
  end
@@ -3,7 +3,7 @@ require 'action_message/adapters/test'
3
3
  require 'action_message/adapters/twilio'
4
4
 
5
5
  module ActionMessage
6
- module Adapters
6
+ module Adapters
7
7
  class << self
8
8
  def adapter_klass
9
9
  @@adapter_klass ||= adapter_params[:name].to_s.capitalize
@@ -5,7 +5,7 @@ module ActionMessage
5
5
  @params = params
6
6
  end
7
7
 
8
- def send_message(body, params={})
8
+ def send_message(_body, _params={})
9
9
  raise ArgumentError, 'You should provide at least one phone for sending messages' if !senders.present?
10
10
  @from = pick_sender
11
11
  end
@@ -5,15 +5,9 @@ module ActionMessage
5
5
  super(params)
6
6
  end
7
7
 
8
- def client
9
- @client ||= OpenStruct.new
10
- end
11
-
12
8
  def send_message(body, params={})
13
- raise ArgumentError, 'you should include a receipient for sending messages' unless params[:to].present?
14
-
15
- @to = params[:to]
16
- puts "Sending message to #{@to}"
9
+ super(body, params)
10
+ puts "Sending message to #{params[:to]}"
17
11
  end
18
12
  end
19
13
  end
@@ -18,7 +18,6 @@ module ActionMessage
18
18
  end
19
19
 
20
20
  def send_message(body, params={})
21
- raise ArgumentError, 'you should include a receipient for sending messages' unless params[:to].present?
22
21
  super(body, params)
23
22
 
24
23
  sms = {
@@ -19,32 +19,23 @@ module ActionMessage
19
19
  adapter: {
20
20
  name: :test,
21
21
  credentials: {}
22
- },
23
- mime_version: "1.0",
24
- charset: "UTF-8"
22
+ }
25
23
  }
26
24
 
27
25
  # Sets the defaults through app configuration:
28
- #
29
- # config.action_message.default(from: "+11231231234")
26
+ # config.action_message.default(from: "+11231231234")
30
27
  #
31
28
  # Aliased by ::default_options=
29
+ #
32
30
  def default(value = nil)
33
31
  self.default_params = default_params.merge(value).freeze if value
34
32
  default_params
35
33
  end
36
34
  # Allows to set defaults through app configuration:
35
+ # config.action_message = { charset: 'ISO-8859-1' }
37
36
  #
38
- # config.action_mailer.default_options = { from: "no-reply@example.org" }
39
37
  alias :default_options= :default
40
38
 
41
- def mailer_name
42
- @mailer_name ||= anonymous? ? 'anonymous' : name.underscore
43
- end
44
- # Allows to set the name of current mailer.
45
- attr_writer :mailer_name
46
- alias :controller_path :mailer_name
47
-
48
39
  def base_paths
49
40
  %w(
50
41
  app/views
@@ -57,11 +48,7 @@ module ActionMessage
57
48
 
58
49
  protected
59
50
  def method_missing(method_name, *args) # :nodoc:
60
- if action_methods.include?(method_name.to_s)
61
- MessageDelivery.new(self, method_name, *args)
62
- else
63
- super
64
- end
51
+ MessageDelivery.new(self, method_name, *args) rescue super
65
52
  end
66
53
  end
67
54
 
@@ -69,19 +56,19 @@ module ActionMessage
69
56
  attr_accessor :template_name
70
57
 
71
58
  def initialize
72
- super()
59
+ super
73
60
  @_message_was_called = false
74
61
  @_message = Message.new
75
62
  end
76
63
 
77
64
  def sms(params = {}, &block)
78
- return message if @_message_was_called && params[:to].blank? && !block
65
+ raise ArgumentError, 'You need to provide at least a receipient' if params[:to].blank?
66
+ return message if @_message_was_called && !block
79
67
 
80
68
  @_message_was_called = true
81
69
 
82
- lookup_context.view_paths = self.class.base_paths
70
+ lookup_context.view_paths = (lookup_context.view_paths.to_a + self.class.base_paths).uniq
83
71
 
84
- message.headers = self.class.default_params.slice(:charset, :mime_version)
85
72
  message.to = params[:to]
86
73
  message.debug = params[:debug]
87
74
  message.body = render(template_name)
@@ -2,7 +2,7 @@ module ActionMessage
2
2
  include ActionMessage::Adapters
3
3
 
4
4
  class Message
5
- attr_accessor :headers, :action, :args, :body, :to, :debug
5
+ attr_accessor :action, :args, :body, :to, :debug
6
6
  attr_reader :adapter
7
7
 
8
8
  def initialize
@@ -14,8 +14,10 @@ module ActionMessage
14
14
  end
15
15
 
16
16
  def deliver
17
- puts "Sending message \"#{body}\" to number #{to}" # TODO: Switch to a decent logger
18
- adapter.send_message(body, to: to) unless debug?
17
+ unless debug?
18
+ # add logger 'Sendimg message from "number" to "number"'
19
+ adapter.send_message(body, to: to)
20
+ end
19
21
  end
20
22
  end
21
23
  end
@@ -1,6 +1,6 @@
1
1
  module ActionMessage
2
2
  class MessageDelivery
3
- attr_reader :message_class, :action, :args, :adapter
3
+ attr_reader :message_class, :action, :args
4
4
 
5
5
  def initialize(message_class, action, *args)
6
6
  @message_class, @action, @args = message_class, action, args
@@ -7,7 +7,6 @@ module ActionMessage
7
7
  config.eager_load_namespaces << ActionMessage
8
8
 
9
9
  initializer "action_message.set_configs" do |app|
10
- paths = app.config.paths
11
10
  options = app.config.action_message
12
11
 
13
12
  ActiveSupport.on_load(:action_message) do
@@ -1,3 +1,3 @@
1
1
  module ActionMessage
2
- VERSION = "0.0.2".freeze
2
+ VERSION = "0.0.3".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: actionmessage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Diego Ballona
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-09-17 00:00:00.000000000 Z
11
+ date: 2016-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -94,6 +94,34 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '3.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: webmock
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 2.1.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 2.1.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: codecov
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 0.1.5
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 0.1.5
97
125
  description: ActionMailer heavily-inspired gem to handle SMS/Text Messages
98
126
  email:
99
127
  - root@dballona.com
@@ -109,8 +137,6 @@ files:
109
137
  - README.md
110
138
  - Rakefile
111
139
  - actionmessage.gemspec
112
- - app/messages/merchant_message.rb
113
- - app/views/merchant_message/send_welcome_sms.text.erb
114
140
  - bin/console
115
141
  - bin/setup
116
142
  - lib/action_message.rb
@@ -1,8 +0,0 @@
1
- require 'action_message'
2
-
3
- class MerchantMessage < ActionMessage::Base
4
- def send_welcome_sms(name)
5
- @name = name
6
- sms(to: "+5531982726767")
7
- end
8
- end
@@ -1 +0,0 @@
1
- Yeah <%= @name %>!!!