msg 0.2.2 → 0.5.0
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 +7 -0
- data/README.md +0 -2
- data/app/assets/stylesheets/msg.css.sass +0 -6
- data/app/controllers/msg/messages_controller.rb +7 -3
- data/app/controllers/msg/sendings_controller.rb +8 -1
- data/app/models/msg/bounce.rb +0 -1
- data/app/models/msg/envelope.rb +0 -2
- data/app/models/msg/message.rb +3 -5
- data/app/models/msg/sending.rb +1 -5
- data/app/views/msg/bounces/_report.html.haml +2 -2
- data/app/views/msg/messages/_action_menu.html.haml +1 -1
- data/app/views/msg/messages/index.html.haml +5 -3
- data/app/views/msg/sendings/_form.html.haml +3 -16
- data/app/views/msg/sendings/_report.html.haml +2 -2
- data/config/locales/en.yml +1 -1
- data/lib/msg.rb +7 -14
- data/lib/msg/engine.rb +0 -3
- data/lib/msg/receivers.rb +7 -23
- data/lib/msg/version.rb +1 -1
- data/spec/controllers/msg/envelopes_controller_spec.rb +0 -1
- data/spec/dummy/app/models/user.rb +0 -3
- data/spec/dummy/config/routes.rb +0 -1
- data/spec/spec_helper.rb +0 -7
- metadata +38 -81
- data/app/helpers/msg/msg_helper.rb +0 -40
- data/app/mailers/msg/devise_mailer.rb +0 -21
- data/spec/dummy/config/initializers/devise.rb +0 -285
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +0 -146
- data/spec/dummy/log/test.log +0 -14820
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b88a93492b109ffaa4839e7e61ec167a59fa31d8
|
4
|
+
data.tar.gz: 211467207140b27eedc29f646e80653a67ae4ab4
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4444926204e8fc879def1105333fdb887fb58fb7b063998939647801394aa7505738e16a59ed6f4d51087ed368fff74dd7575207d8cd4593182abdf8a9e8bb59
|
7
|
+
data.tar.gz: d246acdd8a896366c8700fbe98bf5a022cbc8ab8da677aacbb2e7cf413b909a5a8ed97641c5838f86b4430b0370a117f1c2667db4ad9ff1a9e126e4b0dafa2b2
|
data/README.md
CHANGED
@@ -35,7 +35,7 @@ module Msg
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def create
|
38
|
-
@message.update_attributes(
|
38
|
+
@message.update_attributes(message_params)
|
39
39
|
respond_with @message
|
40
40
|
end
|
41
41
|
|
@@ -44,7 +44,7 @@ module Msg
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def update
|
47
|
-
@message.update_attributes(
|
47
|
+
@message.update_attributes(message_params)
|
48
48
|
respond_with @message
|
49
49
|
end
|
50
50
|
|
@@ -56,7 +56,7 @@ module Msg
|
|
56
56
|
protected
|
57
57
|
|
58
58
|
def build_message
|
59
|
-
@message = Msg::Message.new
|
59
|
+
@message = Msg::Message.new
|
60
60
|
end
|
61
61
|
|
62
62
|
def get_message
|
@@ -66,6 +66,10 @@ module Msg
|
|
66
66
|
def get_transactional_messages
|
67
67
|
@transactional_messages = Msg::Message.transactional
|
68
68
|
end
|
69
|
+
|
70
|
+
def message_params
|
71
|
+
params.require(:message).permit(:subject, :body, :function, :description, :transactional, :saved, :from_name, :from_address)
|
72
|
+
end
|
69
73
|
|
70
74
|
def get_saved_messages
|
71
75
|
@show = params[:show] || 10
|
@@ -26,7 +26,7 @@ module Msg
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def create
|
29
|
-
@sending.update_attributes(
|
29
|
+
@sending.update_attributes(sending_params)
|
30
30
|
respond_with @sending
|
31
31
|
end
|
32
32
|
|
@@ -54,5 +54,12 @@ module Msg
|
|
54
54
|
@page = params[:page] || 1
|
55
55
|
@sendings = Msg::Sending.order("created_at DESC").page(@page).per(@show)
|
56
56
|
end
|
57
|
+
|
58
|
+
def sending_params
|
59
|
+
parameter_names = [:message_id, :envelopes_attributes] + Msg.receiving_classes.map{|klass| "#{klass.underscore}_group"}
|
60
|
+
Rails.logger.warn "permitted parameter_names: #{parameter_names.inspect}"
|
61
|
+
params.require(:sending).permit(*parameter_names)
|
62
|
+
end
|
63
|
+
|
57
64
|
end
|
58
65
|
end
|
data/app/models/msg/bounce.rb
CHANGED
data/app/models/msg/envelope.rb
CHANGED
data/app/models/msg/message.rb
CHANGED
@@ -2,8 +2,6 @@ require 'mustache'
|
|
2
2
|
|
3
3
|
module Msg
|
4
4
|
class Message < ActiveRecord::Base
|
5
|
-
attr_accessible :subject, :body, :function, :description, :transactional, :saved, :from_name, :from_address
|
6
|
-
|
7
5
|
has_many :sendings
|
8
6
|
belongs_to :created_by, :class_name => Msg.user_class
|
9
7
|
|
@@ -16,9 +14,9 @@ module Msg
|
|
16
14
|
address = from_address? ? from_address : Msg.default_from_address
|
17
15
|
"#{name} <#{address}>"
|
18
16
|
end
|
19
|
-
|
20
|
-
def render_for(receiver)
|
21
|
-
values = receiver.for_email.reverse_merge(Msg.email_values)
|
17
|
+
|
18
|
+
def render_for(receiver, token=nil)
|
19
|
+
values = receiver.for_email(token).reverse_merge(Msg.email_values)
|
22
20
|
Mustache.render(body, values)
|
23
21
|
end
|
24
22
|
|
data/app/models/msg/sending.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
module Msg
|
2
2
|
class Sending < ActiveRecord::Base
|
3
|
-
attr_accessible :message_id, :envelopes_attributes
|
4
|
-
|
5
3
|
belongs_to :message
|
6
4
|
belongs_to :created_by, :class_name => Msg.user_class
|
7
5
|
has_many :envelopes, :dependent => :destroy
|
@@ -33,14 +31,12 @@ module Msg
|
|
33
31
|
define_method :"#{key}_group=" do |name|
|
34
32
|
self.receiving_class = key
|
35
33
|
self.receiving_group = name
|
36
|
-
self.receivers = klass.messaging_groups[name.to_sym].call
|
34
|
+
self.receivers = klass.messaging_groups[name.to_sym].call
|
37
35
|
end
|
38
|
-
attr_accessible :"#{key}_group"
|
39
36
|
|
40
37
|
define_method :"#{key}_receiver_ids" do
|
41
38
|
self.envelopes.map(&:receiver_id) if self.receiving_class == key
|
42
39
|
end
|
43
|
-
attr_accessible :"#{key}_receiver_ids"
|
44
40
|
|
45
41
|
# class_receiver_ids= is called from the SendingsController and given a list of receiver ids of this class.
|
46
42
|
# they are instantiated and passed to receivers=
|
@@ -1,8 +1,8 @@
|
|
1
1
|
- bounces ||= @bounces || Msg::Bounce.order('created_at DESC').limit(5)
|
2
2
|
|
3
|
-
#bouncebox{:data => {:refreshable => true, :url => msg.bounces_path(:format => :js)}}
|
3
|
+
%section#bouncebox{:data => {:refreshable => true, :url => msg.bounces_path(:format => :js)}}
|
4
4
|
- if bounces.any?
|
5
|
-
%
|
5
|
+
%h2.section
|
6
6
|
= link_to t(:bounce_report), msg.bounces_url
|
7
7
|
|
8
8
|
%ul.bounces
|
@@ -9,10 +9,12 @@
|
|
9
9
|
= t :saved_messages
|
10
10
|
%span.action
|
11
11
|
= link_to t(:create_message), msg.new_message_url, :class => "add minimal", :data => {:action => "popup", :affected => "#saved_messages"}
|
12
|
-
= render "msg/messages/saved_messages"
|
13
12
|
|
14
|
-
|
15
|
-
|
13
|
+
= render "msg/messages/saved_messages"
|
14
|
+
|
15
|
+
- if can? :create, Msg::Message
|
16
|
+
%p.action
|
17
|
+
= link_to t(:create_message), msg.new_message_url, :class => "add", :data => {:action => "popup", :affected => "#saved_messages"}
|
16
18
|
|
17
19
|
-content_for :margin do
|
18
20
|
= render :partial => "msg/bounces/report"
|
@@ -18,22 +18,9 @@
|
|
18
18
|
- count = proc.call.count
|
19
19
|
%li.group
|
20
20
|
= f.radio_button "#{key}_group", name, :data => {:action => "reveal", :converse => "ul.choose_receivers"}, :disabled => count == 0
|
21
|
-
%label{:for => "sending_#{key}_group_#{name}"}
|
22
|
-
= t("msg.groups.#{name}")
|
23
|
-
|
24
|
-
= t(:receiver_count, :count => count)
|
25
|
-
|
26
|
-
%li.group
|
27
|
-
= f.radio_button "#{key}_group", :selected, :data => {:action => "reveal", :affected => "ul.choose_receivers"}
|
28
|
-
%label{:for => "sending_#{key}_group_selected"}
|
29
|
-
= t("msg.groups.selected")
|
30
|
-
|
31
|
-
%ul.choose_receivers
|
32
|
-
- klass.constantize.order('name ASC').each do |rec|
|
33
|
-
%li.receiver
|
34
|
-
= check_box_tag "sending[#{key}_receiver_ids][]", rec.id, false, :id => "sending_#{key}_receiver_ids_#{rec.id}"
|
35
|
-
%label{:for => "sending_#{key}_receiver_ids_#{rec.id}"}
|
36
|
-
= rec.name
|
21
|
+
%label{:for => "sending_#{key}_group_#{name}", :class => count == 0 ? "disabled" : ""}
|
22
|
+
= t("msg.groups.#{name}") + ":"
|
23
|
+
= count
|
37
24
|
|
38
25
|
// #todo: update the preview on selection, and add a control to page through the selected group of people
|
39
26
|
%iframe.body{:src => msg.preview_message_url(message, :receiver_type => receiver.class.to_s.downcase.underscore.to_s, :receiver_id => receiver.id)}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
- sendings ||= @sendings || Msg::Sending.order('created_at DESC').limit(5)
|
2
2
|
|
3
|
-
#sentbox{:data => {:refreshable => true, :url => msg.sendings_path(:format => :js, :show => 5)}}
|
4
|
-
%
|
3
|
+
%section#sentbox{:data => {:refreshable => true, :url => msg.sendings_path(:format => :js, :show => 5)}}
|
4
|
+
%h2.section
|
5
5
|
= link_to t(:sent_report), msg.sendings_url
|
6
6
|
|
7
7
|
%ul.sendings
|
data/config/locales/en.yml
CHANGED
data/lib/msg.rb
CHANGED
@@ -21,9 +21,15 @@ module Msg
|
|
21
21
|
class MsgError < StandardError; end
|
22
22
|
class EmailInvalid < MsgError; end
|
23
23
|
|
24
|
-
|
25
24
|
class << self
|
26
25
|
|
26
|
+
def add_receiving_class(klass, options)
|
27
|
+
k = klass.to_s
|
28
|
+
receiving_classes << k unless receiving_classes.include?(k)
|
29
|
+
klass.messaging_groups = options[:groups] || []
|
30
|
+
Msg::Sending.add_receiver_hooks(klass, options)
|
31
|
+
end
|
32
|
+
|
27
33
|
def setup
|
28
34
|
yield self
|
29
35
|
end
|
@@ -72,18 +78,5 @@ module Msg
|
|
72
78
|
@@sending_domain ||= ActionMailer::Base.default_url_options[:host]
|
73
79
|
end
|
74
80
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
def add_receiving_class(klass, options)
|
80
|
-
Rails.logger.warn ">>> Msg.add_receiving_class #{klass}"
|
81
|
-
|
82
|
-
k = klass.to_s
|
83
|
-
receiving_classes << k unless receiving_classes.include?(k)
|
84
|
-
klass.messaging_groups = options[:groups] || []
|
85
|
-
Msg::Sending.add_receiver_hooks(klass, options)
|
86
|
-
end
|
87
|
-
|
88
81
|
end
|
89
82
|
end
|
data/lib/msg/engine.rb
CHANGED
data/lib/msg/receivers.rb
CHANGED
@@ -8,29 +8,23 @@ module Msg
|
|
8
8
|
end
|
9
9
|
|
10
10
|
module ActiveRecordClassMethods
|
11
|
-
|
12
|
-
|
11
|
+
|
13
12
|
def receives_messages(options={})
|
14
|
-
include ReceiverInstanceMethods
|
15
13
|
has_many :envelopes, :as => :receiver, :class_name => "Msg::Envelope"
|
16
14
|
Msg.add_receiving_class(self, options)
|
17
15
|
end
|
18
16
|
|
19
17
|
# Messaging groups are usually defined by passing a :groups parameter to `receives_messages`,
|
20
|
-
# but you can also override the messaging_groups methods if
|
18
|
+
# but you can also override the messaging_groups methods if your groups don't resolve to scopes
|
19
|
+
# or other class methods.
|
21
20
|
#
|
22
21
|
def messaging_groups
|
23
|
-
Thread.current["messaging_groups_#{self.to_s.underscore}"]
|
24
|
-
# @messaging_groups ||= []
|
22
|
+
Thread.current["messaging_groups_#{self.to_s.underscore}"] ||= []
|
25
23
|
end
|
26
24
|
|
27
|
-
# Messaging groups
|
28
|
-
#
|
29
|
-
# you can alternatively supply a list of scope names. It will be expanded to simple lambdas here.
|
25
|
+
# Messaging groups can be passed in as procs or method names. Usually it's just a list of scopes,
|
26
|
+
# which you can supply as a simple array of names.
|
30
27
|
#
|
31
|
-
# receives_messages :groups => [:scope_name, :other_scope_name]
|
32
|
-
#
|
33
|
-
|
34
28
|
def messaging_groups=(groups)
|
35
29
|
if groups.is_a?(Array)
|
36
30
|
groups = groups.each_with_object({}) do |grp, hash|
|
@@ -47,18 +41,8 @@ module Msg
|
|
47
41
|
self.send name
|
48
42
|
end
|
49
43
|
end
|
50
|
-
|
51
|
-
end
|
52
|
-
|
53
|
-
module ReceiverInstanceMethods
|
54
|
-
|
55
|
-
|
56
|
-
|
44
|
+
|
57
45
|
end
|
58
46
|
end
|
59
47
|
|
60
48
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
data/lib/msg/version.rb
CHANGED
data/spec/dummy/config/routes.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,244 +1,214 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: msg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.5.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- William Ross
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-06-28 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rails
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
19
|
+
version: 4.1.0
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
26
|
+
version: 4.1.0
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: jquery-rails
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: dynamic_form
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: haml
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: kaminari
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - '>='
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - '>='
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: roadie
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - '>='
|
100
88
|
- !ruby/object:Gem::Version
|
101
89
|
version: '0'
|
102
90
|
type: :runtime
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - '>='
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '0'
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: mustache
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - '>='
|
116
102
|
- !ruby/object:Gem::Version
|
117
103
|
version: '0'
|
118
104
|
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - '>='
|
124
109
|
- !ruby/object:Gem::Version
|
125
110
|
version: '0'
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: aws-ses
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
|
-
- -
|
115
|
+
- - '>='
|
132
116
|
- !ruby/object:Gem::Version
|
133
117
|
version: '0'
|
134
118
|
type: :runtime
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
|
-
- -
|
122
|
+
- - '>='
|
140
123
|
- !ruby/object:Gem::Version
|
141
124
|
version: '0'
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
126
|
name: httparty
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
|
-
- -
|
129
|
+
- - '>='
|
148
130
|
- !ruby/object:Gem::Version
|
149
131
|
version: '0'
|
150
132
|
type: :runtime
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
|
-
- -
|
136
|
+
- - '>='
|
156
137
|
- !ruby/object:Gem::Version
|
157
138
|
version: '0'
|
158
139
|
- !ruby/object:Gem::Dependency
|
159
140
|
name: sqlite3
|
160
141
|
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
142
|
requirements:
|
163
|
-
- -
|
143
|
+
- - '>='
|
164
144
|
- !ruby/object:Gem::Version
|
165
145
|
version: '0'
|
166
146
|
type: :development
|
167
147
|
prerelease: false
|
168
148
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
149
|
requirements:
|
171
|
-
- -
|
150
|
+
- - '>='
|
172
151
|
- !ruby/object:Gem::Version
|
173
152
|
version: '0'
|
174
153
|
- !ruby/object:Gem::Dependency
|
175
154
|
name: rspec-rails
|
176
155
|
requirement: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
156
|
requirements:
|
179
|
-
- -
|
157
|
+
- - '>='
|
180
158
|
- !ruby/object:Gem::Version
|
181
159
|
version: '0'
|
182
160
|
type: :development
|
183
161
|
prerelease: false
|
184
162
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
-
none: false
|
186
163
|
requirements:
|
187
|
-
- -
|
164
|
+
- - '>='
|
188
165
|
- !ruby/object:Gem::Version
|
189
166
|
version: '0'
|
190
167
|
- !ruby/object:Gem::Dependency
|
191
168
|
name: capybara
|
192
169
|
requirement: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
170
|
requirements:
|
195
|
-
- -
|
171
|
+
- - '>='
|
196
172
|
- !ruby/object:Gem::Version
|
197
173
|
version: '0'
|
198
174
|
type: :development
|
199
175
|
prerelease: false
|
200
176
|
version_requirements: !ruby/object:Gem::Requirement
|
201
|
-
none: false
|
202
177
|
requirements:
|
203
|
-
- -
|
178
|
+
- - '>='
|
204
179
|
- !ruby/object:Gem::Version
|
205
180
|
version: '0'
|
206
181
|
- !ruby/object:Gem::Dependency
|
207
182
|
name: factory_girl_rails
|
208
183
|
requirement: !ruby/object:Gem::Requirement
|
209
|
-
none: false
|
210
184
|
requirements:
|
211
|
-
- -
|
185
|
+
- - '>='
|
212
186
|
- !ruby/object:Gem::Version
|
213
187
|
version: '0'
|
214
188
|
type: :development
|
215
189
|
prerelease: false
|
216
190
|
version_requirements: !ruby/object:Gem::Requirement
|
217
|
-
none: false
|
218
191
|
requirements:
|
219
|
-
- -
|
192
|
+
- - '>='
|
220
193
|
- !ruby/object:Gem::Version
|
221
194
|
version: '0'
|
222
195
|
- !ruby/object:Gem::Dependency
|
223
196
|
name: database_cleaner
|
224
197
|
requirement: !ruby/object:Gem::Requirement
|
225
|
-
none: false
|
226
198
|
requirements:
|
227
|
-
- -
|
199
|
+
- - '>='
|
228
200
|
- !ruby/object:Gem::Version
|
229
201
|
version: '0'
|
230
202
|
type: :development
|
231
203
|
prerelease: false
|
232
204
|
version_requirements: !ruby/object:Gem::Requirement
|
233
|
-
none: false
|
234
205
|
requirements:
|
235
|
-
- -
|
206
|
+
- - '>='
|
236
207
|
- !ruby/object:Gem::Version
|
237
208
|
version: '0'
|
238
|
-
description: Msg is a general-purpose messaging engine for rails
|
239
|
-
|
240
|
-
|
241
|
-
email templates into the database so that they too are editable and resendable.
|
209
|
+
description: Msg is a general-purpose messaging engine for rails apps. Use it to compose,
|
210
|
+
revise, send and resend messages to selected or generated groups of user-like objects.
|
211
|
+
It uses a simple mustache-based template system.
|
242
212
|
email:
|
243
213
|
- will@spanner.org
|
244
214
|
executables: []
|
@@ -256,8 +226,6 @@ files:
|
|
256
226
|
- app/controllers/msg/envelopes_controller.rb
|
257
227
|
- app/controllers/msg/messages_controller.rb
|
258
228
|
- app/controllers/msg/sendings_controller.rb
|
259
|
-
- app/helpers/msg/msg_helper.rb
|
260
|
-
- app/mailers/msg/devise_mailer.rb
|
261
229
|
- app/mailers/msg/msg_mailer.rb
|
262
230
|
- app/models/msg/bounce.rb
|
263
231
|
- app/models/msg/envelope.rb
|
@@ -326,7 +294,6 @@ files:
|
|
326
294
|
- spec/dummy/config/environments/production.rb
|
327
295
|
- spec/dummy/config/environments/test.rb
|
328
296
|
- spec/dummy/config/initializers/backtrace_silencers.rb
|
329
|
-
- spec/dummy/config/initializers/devise.rb
|
330
297
|
- spec/dummy/config/initializers/inflections.rb
|
331
298
|
- spec/dummy/config/initializers/mime_types.rb
|
332
299
|
- spec/dummy/config/initializers/secret_token.rb
|
@@ -335,12 +302,8 @@ files:
|
|
335
302
|
- spec/dummy/config/locales/en.yml
|
336
303
|
- spec/dummy/config/routes.rb
|
337
304
|
- spec/dummy/config.ru
|
338
|
-
- spec/dummy/db/development.sqlite3
|
339
305
|
- spec/dummy/db/migrate/2013032210540_users.rb
|
340
306
|
- spec/dummy/db/schema.rb
|
341
|
-
- spec/dummy/db/test.sqlite3
|
342
|
-
- spec/dummy/log/development.log
|
343
|
-
- spec/dummy/log/test.log
|
344
307
|
- spec/dummy/public/404.html
|
345
308
|
- spec/dummy/public/422.html
|
346
309
|
- spec/dummy/public/500.html
|
@@ -367,27 +330,26 @@ files:
|
|
367
330
|
- spec/spec_helper.rb
|
368
331
|
homepage: https://github.com/spanner/msg
|
369
332
|
licenses: []
|
333
|
+
metadata: {}
|
370
334
|
post_install_message:
|
371
335
|
rdoc_options: []
|
372
336
|
require_paths:
|
373
337
|
- lib
|
374
338
|
required_ruby_version: !ruby/object:Gem::Requirement
|
375
|
-
none: false
|
376
339
|
requirements:
|
377
|
-
- -
|
340
|
+
- - '>='
|
378
341
|
- !ruby/object:Gem::Version
|
379
342
|
version: '0'
|
380
343
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
381
|
-
none: false
|
382
344
|
requirements:
|
383
|
-
- -
|
345
|
+
- - '>='
|
384
346
|
- !ruby/object:Gem::Version
|
385
347
|
version: '0'
|
386
348
|
requirements: []
|
387
349
|
rubyforge_project:
|
388
|
-
rubygems_version:
|
350
|
+
rubygems_version: 2.0.6
|
389
351
|
signing_key:
|
390
|
-
specification_version:
|
352
|
+
specification_version: 4
|
391
353
|
summary: Makes your email more flavoursome.
|
392
354
|
test_files:
|
393
355
|
- spec/controllers/msg/bounces_controller_spec.rb
|
@@ -408,7 +370,6 @@ test_files:
|
|
408
370
|
- spec/dummy/config/environments/production.rb
|
409
371
|
- spec/dummy/config/environments/test.rb
|
410
372
|
- spec/dummy/config/initializers/backtrace_silencers.rb
|
411
|
-
- spec/dummy/config/initializers/devise.rb
|
412
373
|
- spec/dummy/config/initializers/inflections.rb
|
413
374
|
- spec/dummy/config/initializers/mime_types.rb
|
414
375
|
- spec/dummy/config/initializers/secret_token.rb
|
@@ -417,12 +378,8 @@ test_files:
|
|
417
378
|
- spec/dummy/config/locales/en.yml
|
418
379
|
- spec/dummy/config/routes.rb
|
419
380
|
- spec/dummy/config.ru
|
420
|
-
- spec/dummy/db/development.sqlite3
|
421
381
|
- spec/dummy/db/migrate/2013032210540_users.rb
|
422
382
|
- spec/dummy/db/schema.rb
|
423
|
-
- spec/dummy/db/test.sqlite3
|
424
|
-
- spec/dummy/log/development.log
|
425
|
-
- spec/dummy/log/test.log
|
426
383
|
- spec/dummy/public/404.html
|
427
384
|
- spec/dummy/public/422.html
|
428
385
|
- spec/dummy/public/500.html
|