railsdrip-engine 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 (70) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +6 -0
  3. data/LICENSE.txt +4 -0
  4. data/README.md +80 -0
  5. data/app/controllers/concerns/rails_drips/admin_access.rb +28 -0
  6. data/app/controllers/rails_drips/application_controller.rb +7 -0
  7. data/app/controllers/rails_drips/campaign_archivals_controller.rb +11 -0
  8. data/app/controllers/rails_drips/campaign_pauses_controller.rb +11 -0
  9. data/app/controllers/rails_drips/campaign_resumptions_controller.rb +11 -0
  10. data/app/controllers/rails_drips/campaigns_controller.rb +14 -0
  11. data/app/controllers/rails_drips/deliveries_controller.rb +14 -0
  12. data/app/controllers/rails_drips/delivery_cancellations_controller.rb +11 -0
  13. data/app/controllers/rails_drips/delivery_retries_controller.rb +11 -0
  14. data/app/controllers/rails_drips/enrollments_controller.rb +11 -0
  15. data/app/jobs/rails_drips/delivery_job.rb +89 -0
  16. data/app/models/concerns/rails_drips/json_data.rb +29 -0
  17. data/app/models/rails_drips/application_record.rb +8 -0
  18. data/app/models/rails_drips/campaign.rb +62 -0
  19. data/app/models/rails_drips/campaign_version.rb +35 -0
  20. data/app/models/rails_drips/delivery.rb +90 -0
  21. data/app/models/rails_drips/enrollment.rb +77 -0
  22. data/app/models/rails_drips/enrollment_event.rb +28 -0
  23. data/app/models/rails_drips/step.rb +53 -0
  24. data/app/services/rails_drips/activate_campaign.rb +10 -0
  25. data/app/services/rails_drips/archive_campaign.rb +22 -0
  26. data/app/services/rails_drips/cancel_delivery.rb +17 -0
  27. data/app/services/rails_drips/compare_definition.rb +28 -0
  28. data/app/services/rails_drips/complete_enrollment.rb +18 -0
  29. data/app/services/rails_drips/enqueue_due_deliveries.rb +16 -0
  30. data/app/services/rails_drips/enroll.rb +72 -0
  31. data/app/services/rails_drips/import_definition.rb +68 -0
  32. data/app/services/rails_drips/integrity_audit.rb +43 -0
  33. data/app/services/rails_drips/mail_snapshot.rb +31 -0
  34. data/app/services/rails_drips/pause_campaign.rb +16 -0
  35. data/app/services/rails_drips/policy_decision.rb +21 -0
  36. data/app/services/rails_drips/record_event.rb +14 -0
  37. data/app/services/rails_drips/remove.rb +27 -0
  38. data/app/services/rails_drips/resume_campaign.rb +17 -0
  39. data/app/services/rails_drips/retry_delivery.rb +21 -0
  40. data/app/services/rails_drips/schedule_deliveries.rb +23 -0
  41. data/app/services/rails_drips/unarchive_campaign.rb +14 -0
  42. data/app/views/layouts/rails_drips/application.html.erb +5 -0
  43. data/app/views/rails_drips/campaigns/index.html.erb +7 -0
  44. data/app/views/rails_drips/campaigns/show.html.erb +7 -0
  45. data/app/views/rails_drips/deliveries/show.html.erb +9 -0
  46. data/app/views/rails_drips/enrollments/show.html.erb +6 -0
  47. data/config/routes.rb +14 -0
  48. data/db/migrate/20260829123000_create_rails_drips_tables.rb +142 -0
  49. data/docs/README.md +13 -0
  50. data/docs/architecture.md +95 -0
  51. data/docs/campaign-definitions.md +100 -0
  52. data/docs/getting-started.md +170 -0
  53. data/docs/host-integration.md +160 -0
  54. data/docs/operations.md +104 -0
  55. data/lib/generators/rails_drips/install/install_generator.rb +32 -0
  56. data/lib/generators/rails_drips/install/templates/initializer.rb +8 -0
  57. data/lib/generators/rails_drips/install/templates/sample.yml +13 -0
  58. data/lib/rails_drips/configuration.rb +65 -0
  59. data/lib/rails_drips/definition_loader.rb +42 -0
  60. data/lib/rails_drips/definition_schema.rb +40 -0
  61. data/lib/rails_drips/engine.rb +9 -0
  62. data/lib/rails_drips/errors.rb +17 -0
  63. data/lib/rails_drips/instrumentation.rb +11 -0
  64. data/lib/rails_drips/mail_registry.rb +62 -0
  65. data/lib/rails_drips/queue_inventory.rb +10 -0
  66. data/lib/rails_drips/result.rb +9 -0
  67. data/lib/rails_drips/version.rb +5 -0
  68. data/lib/rails_drips.rb +65 -0
  69. data/lib/tasks/rails_drips_tasks.rake +28 -0
  70. metadata +179 -0
metadata ADDED
@@ -0,0 +1,179 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: railsdrip-engine
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - RailsDrips contributors
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: rails
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '7.0'
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '9.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: '7.0'
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '9.0'
32
+ - !ruby/object:Gem::Dependency
33
+ name: rake
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '13.0'
39
+ type: :development
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: '13.0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rspec-rails
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '6.0'
53
+ - - "<"
54
+ - !ruby/object:Gem::Version
55
+ version: '9.0'
56
+ type: :development
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '6.0'
63
+ - - "<"
64
+ - !ruby/object:Gem::Version
65
+ version: '9.0'
66
+ - !ruby/object:Gem::Dependency
67
+ name: sqlite3
68
+ requirement: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: '1.4'
73
+ type: :development
74
+ prerelease: false
75
+ version_requirements: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: '1.4'
80
+ description: An isolated Rails engine for defining, scheduling, and delivering versioned
81
+ drip email campaigns through host-provided Action Mailer integrations.
82
+ email: []
83
+ executables: []
84
+ extensions: []
85
+ extra_rdoc_files: []
86
+ files:
87
+ - CHANGELOG.md
88
+ - LICENSE.txt
89
+ - README.md
90
+ - app/controllers/concerns/rails_drips/admin_access.rb
91
+ - app/controllers/rails_drips/application_controller.rb
92
+ - app/controllers/rails_drips/campaign_archivals_controller.rb
93
+ - app/controllers/rails_drips/campaign_pauses_controller.rb
94
+ - app/controllers/rails_drips/campaign_resumptions_controller.rb
95
+ - app/controllers/rails_drips/campaigns_controller.rb
96
+ - app/controllers/rails_drips/deliveries_controller.rb
97
+ - app/controllers/rails_drips/delivery_cancellations_controller.rb
98
+ - app/controllers/rails_drips/delivery_retries_controller.rb
99
+ - app/controllers/rails_drips/enrollments_controller.rb
100
+ - app/jobs/rails_drips/delivery_job.rb
101
+ - app/models/concerns/rails_drips/json_data.rb
102
+ - app/models/rails_drips/application_record.rb
103
+ - app/models/rails_drips/campaign.rb
104
+ - app/models/rails_drips/campaign_version.rb
105
+ - app/models/rails_drips/delivery.rb
106
+ - app/models/rails_drips/enrollment.rb
107
+ - app/models/rails_drips/enrollment_event.rb
108
+ - app/models/rails_drips/step.rb
109
+ - app/services/rails_drips/activate_campaign.rb
110
+ - app/services/rails_drips/archive_campaign.rb
111
+ - app/services/rails_drips/cancel_delivery.rb
112
+ - app/services/rails_drips/compare_definition.rb
113
+ - app/services/rails_drips/complete_enrollment.rb
114
+ - app/services/rails_drips/enqueue_due_deliveries.rb
115
+ - app/services/rails_drips/enroll.rb
116
+ - app/services/rails_drips/import_definition.rb
117
+ - app/services/rails_drips/integrity_audit.rb
118
+ - app/services/rails_drips/mail_snapshot.rb
119
+ - app/services/rails_drips/pause_campaign.rb
120
+ - app/services/rails_drips/policy_decision.rb
121
+ - app/services/rails_drips/record_event.rb
122
+ - app/services/rails_drips/remove.rb
123
+ - app/services/rails_drips/resume_campaign.rb
124
+ - app/services/rails_drips/retry_delivery.rb
125
+ - app/services/rails_drips/schedule_deliveries.rb
126
+ - app/services/rails_drips/unarchive_campaign.rb
127
+ - app/views/layouts/rails_drips/application.html.erb
128
+ - app/views/rails_drips/campaigns/index.html.erb
129
+ - app/views/rails_drips/campaigns/show.html.erb
130
+ - app/views/rails_drips/deliveries/show.html.erb
131
+ - app/views/rails_drips/enrollments/show.html.erb
132
+ - config/routes.rb
133
+ - db/migrate/20260829123000_create_rails_drips_tables.rb
134
+ - docs/README.md
135
+ - docs/architecture.md
136
+ - docs/campaign-definitions.md
137
+ - docs/getting-started.md
138
+ - docs/host-integration.md
139
+ - docs/operations.md
140
+ - lib/generators/rails_drips/install/install_generator.rb
141
+ - lib/generators/rails_drips/install/templates/initializer.rb
142
+ - lib/generators/rails_drips/install/templates/sample.yml
143
+ - lib/rails_drips.rb
144
+ - lib/rails_drips/configuration.rb
145
+ - lib/rails_drips/definition_loader.rb
146
+ - lib/rails_drips/definition_schema.rb
147
+ - lib/rails_drips/engine.rb
148
+ - lib/rails_drips/errors.rb
149
+ - lib/rails_drips/instrumentation.rb
150
+ - lib/rails_drips/mail_registry.rb
151
+ - lib/rails_drips/queue_inventory.rb
152
+ - lib/rails_drips/result.rb
153
+ - lib/rails_drips/version.rb
154
+ - lib/tasks/rails_drips_tasks.rake
155
+ homepage: https://railsdrip.org
156
+ licenses:
157
+ - Nonstandard
158
+ metadata:
159
+ homepage_uri: https://railsdrip.org
160
+ source_code_uri: https://github.com/aviflombaum/railsdrip-engine
161
+ changelog_uri: https://github.com/aviflombaum/railsdrip-engine/blob/main/CHANGELOG.md
162
+ rdoc_options: []
163
+ require_paths:
164
+ - lib
165
+ required_ruby_version: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - ">="
168
+ - !ruby/object:Gem::Version
169
+ version: '3.1'
170
+ required_rubygems_version: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ requirements: []
176
+ rubygems_version: 4.0.14
177
+ specification_version: 4
178
+ summary: Versioned, auditable drip email campaigns for Rails applications
179
+ test_files: []