actionmessage 0.0.2 → 0.0.3

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: 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 %>!!!