eots 0.0.1

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.
Files changed (98) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +33 -0
  4. data/app/assets/javascripts/eots/application.js +13 -0
  5. data/app/assets/stylesheets/eots/application.css +15 -0
  6. data/app/controllers/application_controller.rb +5 -0
  7. data/app/controllers/eots/eots_controller.rb +33 -0
  8. data/app/helpers/eots/application_helper.rb +4 -0
  9. data/app/mailers/eots/mailer.rb +11 -0
  10. data/app/models/eots/email.rb +54 -0
  11. data/app/models/eots/email_kind.rb +89 -0
  12. data/app/models/eots/field.rb +71 -0
  13. data/app/views/eots/eots/_field.html.erb +3 -0
  14. data/app/views/eots/eots/show.html.erb +17 -0
  15. data/app/views/layouts/eots/application.html.erb +14 -0
  16. data/config/routes.rb +4 -0
  17. data/lib/eots.rb +57 -0
  18. data/lib/eots/engine.rb +12 -0
  19. data/lib/eots/version.rb +3 -0
  20. data/lib/tasks/eots_tasks.rake +4 -0
  21. data/spec/dummy/Gemfile +9 -0
  22. data/spec/dummy/Gemfile.lock +129 -0
  23. data/spec/dummy/README.rdoc +28 -0
  24. data/spec/dummy/Rakefile +6 -0
  25. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  26. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  27. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  28. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  29. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  30. data/spec/dummy/bin/bundle +3 -0
  31. data/spec/dummy/bin/rails +4 -0
  32. data/spec/dummy/bin/rake +4 -0
  33. data/spec/dummy/bin/setup +29 -0
  34. data/spec/dummy/config.ru +4 -0
  35. data/spec/dummy/config/application.rb +29 -0
  36. data/spec/dummy/config/boot.rb +5 -0
  37. data/spec/dummy/config/environment.rb +5 -0
  38. data/spec/dummy/config/environments/development.rb +38 -0
  39. data/spec/dummy/config/environments/production.rb +76 -0
  40. data/spec/dummy/config/environments/test.rb +42 -0
  41. data/spec/dummy/config/initializers/assets.rb +11 -0
  42. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  43. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  44. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  45. data/spec/dummy/config/initializers/inflections.rb +16 -0
  46. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  47. data/spec/dummy/config/initializers/session_store.rb +3 -0
  48. data/spec/dummy/config/initializers/wrap_parameters.rb +9 -0
  49. data/spec/dummy/config/locales/en.yml +23 -0
  50. data/spec/dummy/config/routes.rb +3 -0
  51. data/spec/dummy/config/secrets.yml +22 -0
  52. data/spec/dummy/log/development.log +0 -0
  53. data/spec/dummy/log/test.log +601 -0
  54. data/spec/dummy/public/404.html +67 -0
  55. data/spec/dummy/public/422.html +67 -0
  56. data/spec/dummy/public/500.html +66 -0
  57. data/spec/dummy/public/favicon.ico +0 -0
  58. data/spec/dummy/spec/feature/end_to_end_spec.rb +84 -0
  59. data/spec/dummy/spec/feature/show_spec.rb +51 -0
  60. data/spec/dummy/spec/rails_helper.rb +59 -0
  61. data/spec/dummy/spec/spec_helper.rb +92 -0
  62. data/spec/dummy/spec/unit/email_html_spec.rb +49 -0
  63. data/spec/dummy/spec/unit/email_kind_spec.rb +209 -0
  64. data/spec/dummy/spec/unit/eots_spec.rb +11 -0
  65. data/spec/dummy/spec/unit/field_spec.rb +63 -0
  66. data/spec/dummy/tmp/cache/sprockets/v3.0/0RCX1g6aQPCN1X94TtJN8MINVXsqaHH14bKVfzjGXNY.cache +2 -0
  67. data/spec/dummy/tmp/cache/sprockets/v3.0/3ntMIa1diZ9pMuINbYDhyA2U4Hy6mNMNAxYbuox4hzk.cache +0 -0
  68. data/spec/dummy/tmp/cache/sprockets/v3.0/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +2 -0
  69. data/spec/dummy/tmp/cache/sprockets/v3.0/6Uj58Wch32M5GXpzryd2sADR_AALEvJwfJiGmj_StTE.cache +1 -0
  70. data/spec/dummy/tmp/cache/sprockets/v3.0/9JaB_YWzSKr6UPA8QSlW6uh_xtdAzgqr0PWKb7zOs-Q.cache +0 -0
  71. data/spec/dummy/tmp/cache/sprockets/v3.0/Ac69TcV6FfXabo8e-rphL_TeeNz5rwUFbPmQDyhT5VM.cache +0 -0
  72. data/spec/dummy/tmp/cache/sprockets/v3.0/F69YPXIf2edO_SGtxxpMcg_zMQIIfyWWZApPCP0ZPJg.cache +0 -0
  73. data/spec/dummy/tmp/cache/sprockets/v3.0/FLsx8bQSMDiBGj2js-NSZ7l8_T3YLZGRIBdhBAbdLQ8.cache +1 -0
  74. data/spec/dummy/tmp/cache/sprockets/v3.0/FWQ8Gy0SYezyHnYNSOQO00ERhBv_XqjH2AQo89gHsQU.cache +3 -0
  75. data/spec/dummy/tmp/cache/sprockets/v3.0/G0X1ZoxQfZElvSVKrJq8f6JSYoq7A5AlacgMOUS3_fA.cache +0 -0
  76. data/spec/dummy/tmp/cache/sprockets/v3.0/I8QyyWPde7gdCifUNc_UuVuuuy7P-N_wWaOlB2F0-wg.cache +1 -0
  77. data/spec/dummy/tmp/cache/sprockets/v3.0/LgjfJkyKstIrcG85QEALUQijdPUhSDMuahnhgT0tuGk.cache +1 -0
  78. data/spec/dummy/tmp/cache/sprockets/v3.0/NODTcGA3KAs_UNrXeUK7ua07e5TGLeiopgYkZF1YrAM.cache +1 -0
  79. data/spec/dummy/tmp/cache/sprockets/v3.0/NpodKRyMyfN-hYvDMY8Dqfrm9ZRIKIaluMViE2x3eK8.cache +1 -0
  80. data/spec/dummy/tmp/cache/sprockets/v3.0/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +3 -0
  81. data/spec/dummy/tmp/cache/sprockets/v3.0/Q0tr3vYpD7iA7QH1Fa46Z6jdSPaC_0ArYacaDmtL0oU.cache +0 -0
  82. data/spec/dummy/tmp/cache/sprockets/v3.0/RyuuLTTyuJMnhQpPyRYT-GIISGOG2PtJcD0EYIEQ51Q.cache +0 -0
  83. data/spec/dummy/tmp/cache/sprockets/v3.0/TmSYCXUWBNTXkBJl68gF3_TW4nrXB5e7zOrmfeduwrY.cache +0 -0
  84. data/spec/dummy/tmp/cache/sprockets/v3.0/VfRiaQoJWN9kYydt6-bgXvip-ETv7oFQ4UXjl0Yq_ic.cache +0 -0
  85. data/spec/dummy/tmp/cache/sprockets/v3.0/aMShh1T9yFNRIiUmnPVKbZkFGoG4MHccQ1MKCm38JSU.cache +1 -0
  86. data/spec/dummy/tmp/cache/sprockets/v3.0/c0dA8KQChF9bJJpBalejx2C26lRB4Zyx6gJOBmSATXs.cache +1 -0
  87. data/spec/dummy/tmp/cache/sprockets/v3.0/davW6NYx79KwUJhyi6Tnvxaj34483QJUZK0Cnfabg8k.cache +1 -0
  88. data/spec/dummy/tmp/cache/sprockets/v3.0/fU6DY9gYGBAmRXCUe_roiS2dqcxj_hX_ErldQFZiHtc.cache +1 -0
  89. data/spec/dummy/tmp/cache/sprockets/v3.0/hKvyvQHo0NIwRbSneYEgEyTzpYyDujdN-lGcWo5kAhw.cache +0 -0
  90. data/spec/dummy/tmp/cache/sprockets/v3.0/hN0aXCmRyzra8g0vx1ao03QPCs3hDg5BzOiDE0EJuG0.cache +3 -0
  91. data/spec/dummy/tmp/cache/sprockets/v3.0/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache +3 -0
  92. data/spec/dummy/tmp/cache/sprockets/v3.0/p7tkUMsi0MxSMjSoU48CGF5c2vKG1US-bReLTTf7cVU.cache +1 -0
  93. data/spec/dummy/tmp/cache/sprockets/v3.0/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache +2 -0
  94. data/spec/dummy/tmp/cache/sprockets/v3.0/pIl8QzN2vLr_cjBd9pmYj8LoHUvelAsvBnq3bjKjWtU.cache +1 -0
  95. data/spec/dummy/tmp/cache/sprockets/v3.0/pwUm81zFbRiD7SMT3oZbuyQxtTma9A6KRDGp5bngaxs.cache +1 -0
  96. data/spec/dummy/tmp/cache/sprockets/v3.0/svuNuIM179iBV9Fg_Sdhn7O94pjChsCERObyI5nlhzo.cache +2 -0
  97. data/spec/dummy/tmp/cache/sprockets/v3.0/v1AfZrsv4fWdl9mSy0ABU7MFx0JrLSeXIgKoo_7-kbE.cache +1 -0
  98. metadata +246 -0
@@ -0,0 +1,49 @@
1
+ describe EOTS do
2
+
3
+ before do
4
+ EOTS::reset
5
+ end
6
+
7
+ let(:field1) { :field1 }
8
+ let(:field2) { :field2 }
9
+ let(:field3) { :field3 }
10
+ let(:footer1) { "This is Footer 1" }
11
+ let(:footer2) { "This is Footer 2" }
12
+ let(:footer3) { "This is Footer 3" }
13
+ let(:header1) { "This is Header 1" }
14
+ let(:header2) { "This is Header 2" }
15
+ let(:header3) { "This is Header 3" }
16
+ let(:label1) { "This is Label 1" }
17
+ let(:label2) { "This is Label 2" }
18
+ let(:label3) { "This is Label 3" }
19
+ let(:kind1) { :kind1 }
20
+ let(:kind2) { :kind2 }
21
+ let(:kind3) { :kind3 }
22
+
23
+ describe "#email_html" do
24
+
25
+ it "outputs headers, fields, and footers in correct order" do
26
+ skip
27
+ EOTS::email_kind kind1 do
28
+ EOTS::header header1
29
+ EOTS::field field1, label1
30
+ EOTS::footer footer1
31
+ EOTS::email_kind kind2 do
32
+ EOTS::header header2
33
+ EOTS::field field2, label2
34
+ EOTS::footer footer2
35
+ EOTS::email_kind kind3 do
36
+ EOTS::header header3
37
+ EOTS::field(field3, label3)
38
+ EOTS::footer footer3
39
+ end
40
+ end
41
+ end
42
+
43
+ regex = /#{header1}.*#{header2}.*#{header3}.*#{label1}.*#{label2}.*#{label3}.*#{footer3}.*#{footer2}.*#{footer1}/m
44
+ expect(EOTS::email_html(kind3)).to match(regex)
45
+ end
46
+
47
+ end
48
+
49
+ end
@@ -0,0 +1,209 @@
1
+ describe EOTS::EmailKind do
2
+
3
+ before do
4
+ EOTS::reset
5
+ end
6
+
7
+ let(:bcc) { "This is the bcc" }
8
+ let(:cc) { "This is the cc" }
9
+ let(:footer1) { "This is Footer 1" }
10
+ let(:footer2) { "This is Footer 2" }
11
+ let(:footer3) { "This is Footer 3" }
12
+ let(:from) { "This is the from" }
13
+ let(:header1) { "This is Header 1" }
14
+ let(:header2) { "This is Header 2" }
15
+ let(:header3) { "This is Header 3" }
16
+ let(:kind1) { "kind1" }
17
+ let(:kind2) { "kind2" }
18
+ let(:kind3) { "kind3" }
19
+ let(:reply_to) { "This is the reply_to" }
20
+ let(:to) { "This is the to" }
21
+
22
+
23
+ describe "creates" do
24
+
25
+
26
+ it "an item at the top level" do
27
+ EOTS::email_kind kind1
28
+
29
+ expect(EOTS::find_kind(kind1)).not_to be_nil
30
+ end
31
+
32
+
33
+ it "an item at the current non-top level" do
34
+ EOTS::email_kind kind1 do
35
+ EOTS::email_kind kind2
36
+ end
37
+
38
+ expect(EOTS::find_kind(kind1).parent).to be_nil
39
+ expect(EOTS::find_kind(kind2).parent.name).to eq kind1
40
+ end
41
+
42
+
43
+ it "multiple items at top level" do
44
+ EOTS::email_kind kind1
45
+ EOTS::email_kind kind2 { EOTS::email_kind kind3 }
46
+
47
+ expect(EOTS::find_kind(kind1).parent).to be_nil
48
+ expect(EOTS::find_kind(kind2).parent).to be_nil
49
+ end
50
+
51
+
52
+ it "multiple items at a lower level" do
53
+ EOTS::email_kind kind1 do
54
+ EOTS::email_kind kind2
55
+ EOTS::email_kind kind3
56
+ end
57
+
58
+ expect(EOTS::find_kind(kind1).parent).to be_nil
59
+ expect(EOTS::find_kind(kind2).parent.name).to eq kind1
60
+ expect(EOTS::find_kind(kind3).parent.name).to eq kind1
61
+ end
62
+
63
+
64
+ it "more at current level after going down" do
65
+ EOTS::email_kind kind1 do
66
+ EOTS::email_kind kind2
67
+ end
68
+ EOTS::email_kind kind3
69
+
70
+ expect(EOTS::find_kind(kind1).parent).to be_nil
71
+ expect(EOTS::find_kind(kind2).parent.name).to eq kind1
72
+ expect(EOTS::find_kind(kind3).parent).to be_nil
73
+ end
74
+
75
+
76
+ end
77
+
78
+
79
+ it "records additional options passed in" do
80
+ EOTS::email_kind(kind1, foo: :bar, baz: "quux", wocka: 3.14159)
81
+
82
+ t1 = EOTS::find_kind kind1
83
+ expect(t1.options).to eq({ foo: :bar, baz: "quux", wocka: 3.14159 })
84
+ end
85
+
86
+
87
+ it "records headers and footers passed in" do
88
+ EOTS::email_kind kind1 do
89
+ EOTS::header header1
90
+ EOTS::footer footer1
91
+ end
92
+
93
+ t1 = EOTS::find_kind kind1
94
+ expect(t1.header).to eq header1
95
+ expect(t1.footer).to eq footer1
96
+ end
97
+
98
+
99
+ it "accumulates headers in the right order, with both syntaxes" do
100
+ EOTS::email_kind(kind1, header: header1) do
101
+ EOTS::email_kind kind2 do
102
+ EOTS::header header2
103
+ EOTS::email_kind kind3 do
104
+ EOTS::header header3
105
+ end
106
+ end
107
+ end
108
+
109
+ expect(EOTS::find_kind(kind3).headers).to eq [header1, header2, header3]
110
+ end
111
+
112
+
113
+ it "accumulates fields in the right order" do
114
+ EOTS::email_kind kind1 do
115
+ EOTS::field "header_field1", nil, section: :header
116
+ EOTS::field "field1", nil
117
+ EOTS::field "footer_field1", nil, section: :footer
118
+ EOTS::email_kind kind2 do
119
+ EOTS::field "header_field2", nil, section: :header
120
+ EOTS::field "field2", nil
121
+ EOTS::field "footer_field2", nil, section: :footer
122
+ EOTS::email_kind kind3 do
123
+ EOTS::field "header_field3", nil, section: :header
124
+ EOTS::field "field3", nil
125
+ EOTS::field "footer_field3", nil, section: :footer
126
+ end
127
+ end
128
+ end
129
+
130
+ fields = EOTS::find_kind(kind3).form_fields
131
+ expect(fields[:header].map(&:name)).to eq ["header_field1", "header_field2", "header_field3"]
132
+ expect(fields[:body ].map(&:name)).to eq ["field1", "field2", "field3"]
133
+ expect(fields[:footer].map(&:name)).to eq ["footer_field3", "footer_field2", "footer_field1"]
134
+ end
135
+
136
+
137
+ it "accumulates footers in the right order, with both syntaxes" do
138
+ EOTS::email_kind kind1, footer: footer1 do
139
+ EOTS::email_kind kind2 do
140
+ EOTS::footer footer2
141
+ EOTS::email_kind kind3 do
142
+ EOTS::footer footer3
143
+ end
144
+ end
145
+ end
146
+
147
+ expect(EOTS::find_kind(kind3).footers).to eq [footer3, footer2, footer1]
148
+ end
149
+
150
+
151
+ EOTS::STANDARD_FIELDS.each do |field|
152
+
153
+ it "consults super for #{field} if not specified" do
154
+ value = "This is the #{field}"
155
+ EOTS::email_kind kind1, field => value do
156
+ EOTS::email_kind kind2
157
+ end
158
+
159
+ expect(EOTS::find_kind(kind2).send field).to eq value
160
+ end
161
+
162
+
163
+ it "can override #{field}" do
164
+ old_value = "This is the old #{field}"
165
+ new_value = "This is the new #{field}"
166
+ EOTS::email_kind kind1, field => old_value do
167
+ EOTS::email_kind kind2, field => new_value
168
+ end
169
+
170
+ expect(EOTS::find_kind(kind2).send field).to eq new_value
171
+ end
172
+
173
+
174
+ it "can take #{field} as a method (vs in options hash)" do
175
+ value = "This is the #{field}"
176
+ EOTS::email_kind kind1 do
177
+ EOTS.send field, value
178
+ end
179
+
180
+ expect(EOTS::find_kind(kind1).send field).to eq value
181
+ end
182
+
183
+
184
+ end
185
+
186
+ describe "raises error" do
187
+
188
+ it "on duplicate name at same level" do
189
+ EOTS::email_kind "dup"
190
+
191
+ expect {
192
+ EOTS::email_kind "dup"
193
+ }.to raise_error EOTS::EmailKind::AlreadyDefinedError
194
+ end
195
+
196
+
197
+ it "on duplicate name at different levels" do
198
+ EOTS::email_kind kind1
199
+
200
+ EOTS::email_kind kind2 do
201
+ expect {
202
+ EOTS::email_kind kind1
203
+ }.to raise_error EOTS::EmailKind::AlreadyDefinedError
204
+ end
205
+ end
206
+
207
+ end
208
+
209
+ end
@@ -0,0 +1,11 @@
1
+ describe EOTS do
2
+
3
+ describe "raises error" do
4
+ it "on unknown name" do
5
+ expect { EOTS::find_kind "nosuch" }.
6
+ to raise_error EOTS::EmailKind::NotFoundError
7
+ end
8
+
9
+ end
10
+
11
+ end
@@ -0,0 +1,63 @@
1
+ describe EOTS do
2
+
3
+ before do
4
+ EOTS::reset
5
+ end
6
+
7
+ let(:kind_name_1) { "kind1" }
8
+ let(:kind_name_2) { "kind2" }
9
+ let(:kind_name_3) { "kind3" }
10
+ let(:field_name_1) { "field1" }
11
+ let(:field_name_2) { "field2" }
12
+ let(:field_name_3) { "field3" }
13
+ let(:label_1) { "This is the label for field 1" }
14
+ let(:label_2) { "This is the label for field 2" }
15
+ let(:label_3) { "This is the label for field 3" }
16
+
17
+ describe "#field" do
18
+
19
+ it "attaches a field to the current email kind" do
20
+ EOTS::email_kind(kind_name_1) { EOTS::field field_name_1, label_1 }
21
+
22
+ fields = EOTS::find_kind(kind_name_1).fields
23
+ expect(fields.map { |name, obj| [name, obj.label] }).to eq [[field_name_1, label_1]]
24
+ end
25
+
26
+
27
+ it "can accomodate multiple email kinds" do
28
+ EOTS::email_kind(kind_name_1) { EOTS::field(field_name_1, label_1) }
29
+ EOTS::email_kind kind_name_2 do
30
+ EOTS::field field_name_2, label_2
31
+ EOTS::field field_name_3, label_3
32
+ end
33
+
34
+ expect(EOTS::find_kind(kind_name_1).fields.map { |name, obj|
35
+ [name, obj.label]
36
+ }).to eq([[field_name_1, label_1]])
37
+ expect(EOTS::find_kind(kind_name_2).fields.map { |name, obj|
38
+ [name, obj.label]
39
+ }).to eq([[field_name_2, label_2], [field_name_3, label_3]])
40
+ end
41
+
42
+
43
+ it "barfs on same field on same email kind" do
44
+ expect {
45
+ EOTS::email_kind kind_name_1 do
46
+ EOTS::field field_name_1, label_1
47
+ EOTS::field field_name_1, label_1
48
+ end
49
+ }.to raise_error(EOTS::Field::AlreadyDefinedError)
50
+ end
51
+
52
+
53
+ it "does not barf on same field on different email kinds" do
54
+ EOTS::email_kind(kind_name_1) { EOTS::field(field_name_1, label_1) }
55
+
56
+ expect {
57
+ EOTS::email_kind(kind_name_2) { EOTS::field(field_name_1, label_1) }
58
+ }.not_to raise_error
59
+ end
60
+
61
+ end
62
+
63
+ end
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash} I"environment-version:ETTI"environment-paths;TTI"Lprocessors:type=application/javascript&file_type=application/javascript;TTI"bfile-digest:///Users/dave/computer/opensource/eots/app/assets/javascripts/eots/application.js;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"Sfile-digest:///Users/dave/computer/opensource/eots/app/assets/javascripts/eots;TTF
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash} I"environment-version:ETTI"environment-paths;TTI"0processors:type=text/css&file_type=text/css;TTI"9file-digest://app/assets/stylesheets/application.css;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI")file-digest://app/assets/stylesheets;TTF
@@ -0,0 +1 @@
1
+ I"�/Users/dave/computer/opensource/eots/app/assets/javascripts/eots/application.js?type=application/javascript&pipeline=self&id=d3697d78e020ffebe7f13bac29be7bd667640ffc342286008fe1bd1ea2d5214e:ET
@@ -0,0 +1 @@
1
+ I"�/Users/dave/computer/opensource/eots/app/assets/stylesheets/eots/application.css?type=text/css&pipeline=self&id=6f79c39d9d7ab49b596a85fb9c2f9fe5dcbfb91f606b10d575eb1d3f119d8847:ET
@@ -0,0 +1,3 @@
1
+ [o:Set:
2
+ @hash}
3
+ I"environment-version:ETTI"environment-paths;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"bfile-digest:///Users/dave/computer/opensource/eots/app/assets/javascripts/eots/application.js;TTI"Sfile-digest:///Users/dave/computer/opensource/eots/app/assets/javascripts/eots;TTF
@@ -0,0 +1 @@
1
+ I"�app/assets/stylesheets/application.css?type=text/css&pipeline=self&id=c67bb6fccbe4c8d98c5e3c29ea17626750eaa63564651d671e7e7503489406bb:ET
@@ -0,0 +1 @@
1
+ "%��Rm�v�S3.��O�L���ڹc�ƕq�=_j�
@@ -0,0 +1 @@
1
+ "%��Rm�v�S3.��O�L���ڹc�ƕq�=_j�
@@ -0,0 +1 @@
1
+ I"�app/assets/javascripts/application.js?type=application/javascript&id=ef5a154986db250ff04f813990dc1c208a4f3037653e340290ae96930b0fcac9:ET
@@ -0,0 +1,3 @@
1
+ [o:Set:
2
+ @hash}
3
+ I"environment-version:ETTI"environment-paths;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"9file-digest://app/assets/stylesheets/application.css;TTI")file-digest://app/assets/stylesheets;TTF
@@ -0,0 +1 @@
1
+ "%�W\�yho9S���ƫ˥��)|�~���(���
@@ -0,0 +1 @@
1
+ "%Ѱč@�����6H�uZoX�Z�gbh0W��V
@@ -0,0 +1 @@
1
+ I"�app/assets/javascripts/application.js?type=application/javascript&pipeline=self&id=c450e9ba61e44efeceac22a7cc9835455767540857d06d6dc7344a1fa6161526:ET
@@ -0,0 +1 @@
1
+ I"�/Users/dave/computer/opensource/eots/app/assets/stylesheets/eots/application.css?type=text/css&id=b7c505c211569397907ca76ba7b180722c9a323d5543a65c9651f126078243e1:ET
@@ -0,0 +1,3 @@
1
+ [o:Set:
2
+ @hash}
3
+ I"environment-version:ETTI"environment-paths;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"cfile-digest:///Users/dave/computer/opensource/eots/app/assets/stylesheets/eots/application.css;TTI"Sfile-digest:///Users/dave/computer/opensource/eots/app/assets/stylesheets/eots;TTF
@@ -0,0 +1,3 @@
1
+ [o:Set:
2
+ @hash}
3
+ I"environment-version:ETTI"environment-paths;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"8file-digest://app/assets/javascripts/application.js;TTI")file-digest://app/assets/javascripts;TTF
@@ -0,0 +1 @@
1
+ I"}app/assets/stylesheets/application.css?type=text/css&id=9a8d0bc5531865f24fd790932bb7d01dcb0de50b03480afabae1603d1f759c43:ET
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash} I"environment-version:ETTI"environment-paths;TTI"Lprocessors:type=application/javascript&file_type=application/javascript;TTI"8file-digest://app/assets/javascripts/application.js;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI")file-digest://app/assets/javascripts;TTF
@@ -0,0 +1 @@
1
+ "%�W\�yho9S���ƫ˥��)|�~���(���
@@ -0,0 +1 @@
1
+ I"�/Users/dave/computer/opensource/eots/app/assets/javascripts/eots/application.js?type=application/javascript&id=cce2ff8ce7c19eee0695b37faed6a2ff4fe4fdd70116433b59606e61b87a9d05:ET
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash} I"environment-version:ETTI"environment-paths;TTI"0processors:type=text/css&file_type=text/css;TTI"cfile-digest:///Users/dave/computer/opensource/eots/app/assets/stylesheets/eots/application.css;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"Sfile-digest:///Users/dave/computer/opensource/eots/app/assets/stylesheets/eots;TTF
@@ -0,0 +1 @@
1
+ "%Ѱč@�����6H�uZoX�Z�gbh0W��V
metadata ADDED
@@ -0,0 +1,246 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: eots
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Dave Aronson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-01-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec-rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: Gem to programmatically declare multiples kinds of email and automagically
42
+ construct forms, including view, routes, controller, etc.
43
+ email:
44
+ - github.2.trex@codosaur.us
45
+ executables: []
46
+ extensions: []
47
+ extra_rdoc_files: []
48
+ files:
49
+ - MIT-LICENSE
50
+ - Rakefile
51
+ - app/assets/javascripts/eots/application.js
52
+ - app/assets/stylesheets/eots/application.css
53
+ - app/controllers/application_controller.rb
54
+ - app/controllers/eots/eots_controller.rb
55
+ - app/helpers/eots/application_helper.rb
56
+ - app/mailers/eots/mailer.rb
57
+ - app/models/eots/email.rb
58
+ - app/models/eots/email_kind.rb
59
+ - app/models/eots/field.rb
60
+ - app/views/eots/eots/_field.html.erb
61
+ - app/views/eots/eots/show.html.erb
62
+ - app/views/layouts/eots/application.html.erb
63
+ - config/routes.rb
64
+ - lib/eots.rb
65
+ - lib/eots/engine.rb
66
+ - lib/eots/version.rb
67
+ - lib/tasks/eots_tasks.rake
68
+ - spec/dummy/Gemfile
69
+ - spec/dummy/Gemfile.lock
70
+ - spec/dummy/README.rdoc
71
+ - spec/dummy/Rakefile
72
+ - spec/dummy/app/assets/javascripts/application.js
73
+ - spec/dummy/app/assets/stylesheets/application.css
74
+ - spec/dummy/app/controllers/application_controller.rb
75
+ - spec/dummy/app/helpers/application_helper.rb
76
+ - spec/dummy/app/views/layouts/application.html.erb
77
+ - spec/dummy/bin/bundle
78
+ - spec/dummy/bin/rails
79
+ - spec/dummy/bin/rake
80
+ - spec/dummy/bin/setup
81
+ - spec/dummy/config.ru
82
+ - spec/dummy/config/application.rb
83
+ - spec/dummy/config/boot.rb
84
+ - spec/dummy/config/environment.rb
85
+ - spec/dummy/config/environments/development.rb
86
+ - spec/dummy/config/environments/production.rb
87
+ - spec/dummy/config/environments/test.rb
88
+ - spec/dummy/config/initializers/assets.rb
89
+ - spec/dummy/config/initializers/backtrace_silencers.rb
90
+ - spec/dummy/config/initializers/cookies_serializer.rb
91
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
92
+ - spec/dummy/config/initializers/inflections.rb
93
+ - spec/dummy/config/initializers/mime_types.rb
94
+ - spec/dummy/config/initializers/session_store.rb
95
+ - spec/dummy/config/initializers/wrap_parameters.rb
96
+ - spec/dummy/config/locales/en.yml
97
+ - spec/dummy/config/routes.rb
98
+ - spec/dummy/config/secrets.yml
99
+ - spec/dummy/log/development.log
100
+ - spec/dummy/log/test.log
101
+ - spec/dummy/public/404.html
102
+ - spec/dummy/public/422.html
103
+ - spec/dummy/public/500.html
104
+ - spec/dummy/public/favicon.ico
105
+ - spec/dummy/spec/feature/end_to_end_spec.rb
106
+ - spec/dummy/spec/feature/show_spec.rb
107
+ - spec/dummy/spec/rails_helper.rb
108
+ - spec/dummy/spec/spec_helper.rb
109
+ - spec/dummy/spec/unit/email_html_spec.rb
110
+ - spec/dummy/spec/unit/email_kind_spec.rb
111
+ - spec/dummy/spec/unit/eots_spec.rb
112
+ - spec/dummy/spec/unit/field_spec.rb
113
+ - spec/dummy/tmp/cache/sprockets/v3.0/0RCX1g6aQPCN1X94TtJN8MINVXsqaHH14bKVfzjGXNY.cache
114
+ - spec/dummy/tmp/cache/sprockets/v3.0/3ntMIa1diZ9pMuINbYDhyA2U4Hy6mNMNAxYbuox4hzk.cache
115
+ - spec/dummy/tmp/cache/sprockets/v3.0/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache
116
+ - spec/dummy/tmp/cache/sprockets/v3.0/6Uj58Wch32M5GXpzryd2sADR_AALEvJwfJiGmj_StTE.cache
117
+ - spec/dummy/tmp/cache/sprockets/v3.0/9JaB_YWzSKr6UPA8QSlW6uh_xtdAzgqr0PWKb7zOs-Q.cache
118
+ - spec/dummy/tmp/cache/sprockets/v3.0/Ac69TcV6FfXabo8e-rphL_TeeNz5rwUFbPmQDyhT5VM.cache
119
+ - spec/dummy/tmp/cache/sprockets/v3.0/F69YPXIf2edO_SGtxxpMcg_zMQIIfyWWZApPCP0ZPJg.cache
120
+ - spec/dummy/tmp/cache/sprockets/v3.0/FLsx8bQSMDiBGj2js-NSZ7l8_T3YLZGRIBdhBAbdLQ8.cache
121
+ - spec/dummy/tmp/cache/sprockets/v3.0/FWQ8Gy0SYezyHnYNSOQO00ERhBv_XqjH2AQo89gHsQU.cache
122
+ - spec/dummy/tmp/cache/sprockets/v3.0/G0X1ZoxQfZElvSVKrJq8f6JSYoq7A5AlacgMOUS3_fA.cache
123
+ - spec/dummy/tmp/cache/sprockets/v3.0/I8QyyWPde7gdCifUNc_UuVuuuy7P-N_wWaOlB2F0-wg.cache
124
+ - spec/dummy/tmp/cache/sprockets/v3.0/LgjfJkyKstIrcG85QEALUQijdPUhSDMuahnhgT0tuGk.cache
125
+ - spec/dummy/tmp/cache/sprockets/v3.0/NODTcGA3KAs_UNrXeUK7ua07e5TGLeiopgYkZF1YrAM.cache
126
+ - spec/dummy/tmp/cache/sprockets/v3.0/NpodKRyMyfN-hYvDMY8Dqfrm9ZRIKIaluMViE2x3eK8.cache
127
+ - spec/dummy/tmp/cache/sprockets/v3.0/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache
128
+ - spec/dummy/tmp/cache/sprockets/v3.0/Q0tr3vYpD7iA7QH1Fa46Z6jdSPaC_0ArYacaDmtL0oU.cache
129
+ - spec/dummy/tmp/cache/sprockets/v3.0/RyuuLTTyuJMnhQpPyRYT-GIISGOG2PtJcD0EYIEQ51Q.cache
130
+ - spec/dummy/tmp/cache/sprockets/v3.0/TmSYCXUWBNTXkBJl68gF3_TW4nrXB5e7zOrmfeduwrY.cache
131
+ - spec/dummy/tmp/cache/sprockets/v3.0/VfRiaQoJWN9kYydt6-bgXvip-ETv7oFQ4UXjl0Yq_ic.cache
132
+ - spec/dummy/tmp/cache/sprockets/v3.0/aMShh1T9yFNRIiUmnPVKbZkFGoG4MHccQ1MKCm38JSU.cache
133
+ - spec/dummy/tmp/cache/sprockets/v3.0/c0dA8KQChF9bJJpBalejx2C26lRB4Zyx6gJOBmSATXs.cache
134
+ - spec/dummy/tmp/cache/sprockets/v3.0/davW6NYx79KwUJhyi6Tnvxaj34483QJUZK0Cnfabg8k.cache
135
+ - spec/dummy/tmp/cache/sprockets/v3.0/fU6DY9gYGBAmRXCUe_roiS2dqcxj_hX_ErldQFZiHtc.cache
136
+ - spec/dummy/tmp/cache/sprockets/v3.0/hKvyvQHo0NIwRbSneYEgEyTzpYyDujdN-lGcWo5kAhw.cache
137
+ - spec/dummy/tmp/cache/sprockets/v3.0/hN0aXCmRyzra8g0vx1ao03QPCs3hDg5BzOiDE0EJuG0.cache
138
+ - spec/dummy/tmp/cache/sprockets/v3.0/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache
139
+ - spec/dummy/tmp/cache/sprockets/v3.0/p7tkUMsi0MxSMjSoU48CGF5c2vKG1US-bReLTTf7cVU.cache
140
+ - spec/dummy/tmp/cache/sprockets/v3.0/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache
141
+ - spec/dummy/tmp/cache/sprockets/v3.0/pIl8QzN2vLr_cjBd9pmYj8LoHUvelAsvBnq3bjKjWtU.cache
142
+ - spec/dummy/tmp/cache/sprockets/v3.0/pwUm81zFbRiD7SMT3oZbuyQxtTma9A6KRDGp5bngaxs.cache
143
+ - spec/dummy/tmp/cache/sprockets/v3.0/svuNuIM179iBV9Fg_Sdhn7O94pjChsCERObyI5nlhzo.cache
144
+ - spec/dummy/tmp/cache/sprockets/v3.0/v1AfZrsv4fWdl9mSy0ABU7MFx0JrLSeXIgKoo_7-kbE.cache
145
+ homepage: https://github.com/davearonson/eots
146
+ licenses:
147
+ - MIT
148
+ metadata: {}
149
+ post_install_message:
150
+ rdoc_options: []
151
+ require_paths:
152
+ - lib
153
+ required_ruby_version: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ required_rubygems_version: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: '0'
163
+ requirements: []
164
+ rubyforge_project:
165
+ rubygems_version: 2.5.1
166
+ signing_key:
167
+ specification_version: 4
168
+ summary: Gem to declare multiples kinds of email -- Email of the Species
169
+ test_files:
170
+ - spec/dummy/app/assets/javascripts/application.js
171
+ - spec/dummy/app/assets/stylesheets/application.css
172
+ - spec/dummy/app/controllers/application_controller.rb
173
+ - spec/dummy/app/helpers/application_helper.rb
174
+ - spec/dummy/app/views/layouts/application.html.erb
175
+ - spec/dummy/bin/bundle
176
+ - spec/dummy/bin/rails
177
+ - spec/dummy/bin/rake
178
+ - spec/dummy/bin/setup
179
+ - spec/dummy/config/application.rb
180
+ - spec/dummy/config/boot.rb
181
+ - spec/dummy/config/environment.rb
182
+ - spec/dummy/config/environments/development.rb
183
+ - spec/dummy/config/environments/production.rb
184
+ - spec/dummy/config/environments/test.rb
185
+ - spec/dummy/config/initializers/assets.rb
186
+ - spec/dummy/config/initializers/backtrace_silencers.rb
187
+ - spec/dummy/config/initializers/cookies_serializer.rb
188
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
189
+ - spec/dummy/config/initializers/inflections.rb
190
+ - spec/dummy/config/initializers/mime_types.rb
191
+ - spec/dummy/config/initializers/session_store.rb
192
+ - spec/dummy/config/initializers/wrap_parameters.rb
193
+ - spec/dummy/config/locales/en.yml
194
+ - spec/dummy/config/routes.rb
195
+ - spec/dummy/config/secrets.yml
196
+ - spec/dummy/config.ru
197
+ - spec/dummy/Gemfile
198
+ - spec/dummy/Gemfile.lock
199
+ - spec/dummy/log/development.log
200
+ - spec/dummy/log/test.log
201
+ - spec/dummy/public/404.html
202
+ - spec/dummy/public/422.html
203
+ - spec/dummy/public/500.html
204
+ - spec/dummy/public/favicon.ico
205
+ - spec/dummy/Rakefile
206
+ - spec/dummy/README.rdoc
207
+ - spec/dummy/spec/feature/end_to_end_spec.rb
208
+ - spec/dummy/spec/feature/show_spec.rb
209
+ - spec/dummy/spec/rails_helper.rb
210
+ - spec/dummy/spec/spec_helper.rb
211
+ - spec/dummy/spec/unit/email_html_spec.rb
212
+ - spec/dummy/spec/unit/email_kind_spec.rb
213
+ - spec/dummy/spec/unit/eots_spec.rb
214
+ - spec/dummy/spec/unit/field_spec.rb
215
+ - spec/dummy/tmp/cache/sprockets/v3.0/0RCX1g6aQPCN1X94TtJN8MINVXsqaHH14bKVfzjGXNY.cache
216
+ - spec/dummy/tmp/cache/sprockets/v3.0/3ntMIa1diZ9pMuINbYDhyA2U4Hy6mNMNAxYbuox4hzk.cache
217
+ - spec/dummy/tmp/cache/sprockets/v3.0/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache
218
+ - spec/dummy/tmp/cache/sprockets/v3.0/6Uj58Wch32M5GXpzryd2sADR_AALEvJwfJiGmj_StTE.cache
219
+ - spec/dummy/tmp/cache/sprockets/v3.0/9JaB_YWzSKr6UPA8QSlW6uh_xtdAzgqr0PWKb7zOs-Q.cache
220
+ - spec/dummy/tmp/cache/sprockets/v3.0/Ac69TcV6FfXabo8e-rphL_TeeNz5rwUFbPmQDyhT5VM.cache
221
+ - spec/dummy/tmp/cache/sprockets/v3.0/aMShh1T9yFNRIiUmnPVKbZkFGoG4MHccQ1MKCm38JSU.cache
222
+ - spec/dummy/tmp/cache/sprockets/v3.0/c0dA8KQChF9bJJpBalejx2C26lRB4Zyx6gJOBmSATXs.cache
223
+ - spec/dummy/tmp/cache/sprockets/v3.0/davW6NYx79KwUJhyi6Tnvxaj34483QJUZK0Cnfabg8k.cache
224
+ - spec/dummy/tmp/cache/sprockets/v3.0/F69YPXIf2edO_SGtxxpMcg_zMQIIfyWWZApPCP0ZPJg.cache
225
+ - spec/dummy/tmp/cache/sprockets/v3.0/FLsx8bQSMDiBGj2js-NSZ7l8_T3YLZGRIBdhBAbdLQ8.cache
226
+ - spec/dummy/tmp/cache/sprockets/v3.0/fU6DY9gYGBAmRXCUe_roiS2dqcxj_hX_ErldQFZiHtc.cache
227
+ - spec/dummy/tmp/cache/sprockets/v3.0/FWQ8Gy0SYezyHnYNSOQO00ERhBv_XqjH2AQo89gHsQU.cache
228
+ - spec/dummy/tmp/cache/sprockets/v3.0/G0X1ZoxQfZElvSVKrJq8f6JSYoq7A5AlacgMOUS3_fA.cache
229
+ - spec/dummy/tmp/cache/sprockets/v3.0/hKvyvQHo0NIwRbSneYEgEyTzpYyDujdN-lGcWo5kAhw.cache
230
+ - spec/dummy/tmp/cache/sprockets/v3.0/hN0aXCmRyzra8g0vx1ao03QPCs3hDg5BzOiDE0EJuG0.cache
231
+ - spec/dummy/tmp/cache/sprockets/v3.0/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache
232
+ - spec/dummy/tmp/cache/sprockets/v3.0/I8QyyWPde7gdCifUNc_UuVuuuy7P-N_wWaOlB2F0-wg.cache
233
+ - spec/dummy/tmp/cache/sprockets/v3.0/LgjfJkyKstIrcG85QEALUQijdPUhSDMuahnhgT0tuGk.cache
234
+ - spec/dummy/tmp/cache/sprockets/v3.0/NODTcGA3KAs_UNrXeUK7ua07e5TGLeiopgYkZF1YrAM.cache
235
+ - spec/dummy/tmp/cache/sprockets/v3.0/NpodKRyMyfN-hYvDMY8Dqfrm9ZRIKIaluMViE2x3eK8.cache
236
+ - spec/dummy/tmp/cache/sprockets/v3.0/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache
237
+ - spec/dummy/tmp/cache/sprockets/v3.0/p7tkUMsi0MxSMjSoU48CGF5c2vKG1US-bReLTTf7cVU.cache
238
+ - spec/dummy/tmp/cache/sprockets/v3.0/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache
239
+ - spec/dummy/tmp/cache/sprockets/v3.0/pIl8QzN2vLr_cjBd9pmYj8LoHUvelAsvBnq3bjKjWtU.cache
240
+ - spec/dummy/tmp/cache/sprockets/v3.0/pwUm81zFbRiD7SMT3oZbuyQxtTma9A6KRDGp5bngaxs.cache
241
+ - spec/dummy/tmp/cache/sprockets/v3.0/Q0tr3vYpD7iA7QH1Fa46Z6jdSPaC_0ArYacaDmtL0oU.cache
242
+ - spec/dummy/tmp/cache/sprockets/v3.0/RyuuLTTyuJMnhQpPyRYT-GIISGOG2PtJcD0EYIEQ51Q.cache
243
+ - spec/dummy/tmp/cache/sprockets/v3.0/svuNuIM179iBV9Fg_Sdhn7O94pjChsCERObyI5nlhzo.cache
244
+ - spec/dummy/tmp/cache/sprockets/v3.0/TmSYCXUWBNTXkBJl68gF3_TW4nrXB5e7zOrmfeduwrY.cache
245
+ - spec/dummy/tmp/cache/sprockets/v3.0/v1AfZrsv4fWdl9mSy0ABU7MFx0JrLSeXIgKoo_7-kbE.cache
246
+ - spec/dummy/tmp/cache/sprockets/v3.0/VfRiaQoJWN9kYydt6-bgXvip-ETv7oFQ4UXjl0Yq_ic.cache