heya 0.0.1 → 0.4.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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -0
  3. data/LICENSE +661 -0
  4. data/README.md +573 -0
  5. data/Rakefile +14 -14
  6. data/app/mailers/heya/application_mailer.rb +0 -2
  7. data/app/mailers/heya/campaign_mailer.rb +52 -0
  8. data/app/models/heya/campaign_membership.rb +90 -0
  9. data/app/models/heya/campaign_receipt.rb +5 -0
  10. data/app/views/layouts/heya/campaign_mailer.html.erb +20 -0
  11. data/app/views/layouts/heya/campaign_mailer.text.erb +1 -0
  12. data/lib/generators/heya/campaign/USAGE +14 -0
  13. data/lib/generators/heya/campaign/campaign_generator.rb +69 -0
  14. data/lib/generators/heya/campaign/templates/campaign.rb.tt +4 -0
  15. data/lib/generators/heya/campaign/templates/message.html.erb.tt +1 -0
  16. data/lib/generators/heya/campaign/templates/message.md.erb.tt +1 -0
  17. data/lib/generators/heya/campaign/templates/message.text.erb.tt +1 -0
  18. data/lib/generators/heya/campaign/templates/preview.rb.tt +12 -0
  19. data/lib/generators/heya/install/USAGE +10 -0
  20. data/lib/generators/heya/install/install_generator.rb +24 -0
  21. data/lib/generators/heya/install/templates/application_campaign.rb.tt +3 -0
  22. data/lib/generators/heya/install/templates/initializer.rb.tt +16 -0
  23. data/lib/generators/heya/install/templates/migration.rb.tt +29 -0
  24. data/lib/heya.rb +45 -1
  25. data/lib/heya/active_record_extension.rb +37 -0
  26. data/lib/heya/campaigns/action.rb +27 -0
  27. data/lib/heya/campaigns/actions/block.rb +24 -0
  28. data/lib/heya/campaigns/actions/email.rb +24 -0
  29. data/lib/heya/campaigns/base.rb +154 -0
  30. data/lib/heya/campaigns/queries.rb +35 -0
  31. data/lib/heya/campaigns/scheduler.rb +50 -0
  32. data/lib/heya/campaigns/step.rb +35 -0
  33. data/lib/heya/campaigns/step_action_job.rb +34 -0
  34. data/lib/heya/config.rb +17 -0
  35. data/lib/heya/engine.rb +14 -0
  36. data/lib/heya/version.rb +3 -1
  37. data/lib/tasks/heya_tasks.rake +8 -4
  38. metadata +64 -11
data/lib/heya/engine.rb CHANGED
@@ -1,5 +1,19 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Heya
2
4
  class Engine < ::Rails::Engine
3
5
  isolate_namespace Heya
6
+
7
+ initializer "heya.reload_campaigns" do |app|
8
+ app.reloader.to_run do
9
+ Heya.campaigns.clear
10
+ end
11
+ end
12
+
13
+ config.to_prepare do
14
+ Dir.glob(Rails.root + "app/campaigns/*.rb").each do |c|
15
+ require_dependency(c)
16
+ end
17
+ end
4
18
  end
5
19
  end
data/lib/heya/version.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Heya
2
- VERSION = '0.0.1'
4
+ VERSION = "0.4.0"
3
5
  end
@@ -1,4 +1,8 @@
1
- # desc "Explaining what the task does"
2
- # task :heya do
3
- # # Task goes here
4
- # end
1
+ # frozen_string_literal: true
2
+
3
+ namespace :heya do
4
+ desc "Send campaign emails"
5
+ task scheduler: :environment do
6
+ Heya::Campaigns::Scheduler.new.run
7
+ end
8
+ end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heya
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Wood
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-12 00:00:00.000000000 Z
11
+ date: 2021-02-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 5.2.3
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: 6.2.0
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: 5.2.3
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: 6.2.0
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: pg
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -38,13 +44,32 @@ dependencies:
38
44
  - - ">="
39
45
  - !ruby/object:Gem::Version
40
46
  version: '0'
41
- description: "Heya \U0001F44B"
47
+ - !ruby/object:Gem::Dependency
48
+ name: appraisal
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ description: Heya is a campaign mailer for Rails. Think of it like ActionMailer, but
62
+ for timed email sequences. It can also perform other actions like sending a text
63
+ message.
42
64
  email:
43
65
  - josh@honeybadger.io
44
66
  executables: []
45
67
  extensions: []
46
68
  extra_rdoc_files: []
47
69
  files:
70
+ - CHANGELOG.md
71
+ - LICENSE
72
+ - README.md
48
73
  - Rakefile
49
74
  - app/assets/config/heya_manifest.js
50
75
  - app/assets/javascripts/heya/application.js
@@ -53,17 +78,45 @@ files:
53
78
  - app/helpers/heya/application_helper.rb
54
79
  - app/jobs/heya/application_job.rb
55
80
  - app/mailers/heya/application_mailer.rb
81
+ - app/mailers/heya/campaign_mailer.rb
56
82
  - app/models/heya/application_record.rb
83
+ - app/models/heya/campaign_membership.rb
84
+ - app/models/heya/campaign_receipt.rb
57
85
  - app/views/layouts/heya/application.html.erb
86
+ - app/views/layouts/heya/campaign_mailer.html.erb
87
+ - app/views/layouts/heya/campaign_mailer.text.erb
58
88
  - config/routes.rb
89
+ - lib/generators/heya/campaign/USAGE
90
+ - lib/generators/heya/campaign/campaign_generator.rb
91
+ - lib/generators/heya/campaign/templates/campaign.rb.tt
92
+ - lib/generators/heya/campaign/templates/message.html.erb.tt
93
+ - lib/generators/heya/campaign/templates/message.md.erb.tt
94
+ - lib/generators/heya/campaign/templates/message.text.erb.tt
95
+ - lib/generators/heya/campaign/templates/preview.rb.tt
96
+ - lib/generators/heya/install/USAGE
97
+ - lib/generators/heya/install/install_generator.rb
98
+ - lib/generators/heya/install/templates/application_campaign.rb.tt
99
+ - lib/generators/heya/install/templates/initializer.rb.tt
100
+ - lib/generators/heya/install/templates/migration.rb.tt
59
101
  - lib/heya.rb
102
+ - lib/heya/active_record_extension.rb
103
+ - lib/heya/campaigns/action.rb
104
+ - lib/heya/campaigns/actions/block.rb
105
+ - lib/heya/campaigns/actions/email.rb
106
+ - lib/heya/campaigns/base.rb
107
+ - lib/heya/campaigns/queries.rb
108
+ - lib/heya/campaigns/scheduler.rb
109
+ - lib/heya/campaigns/step.rb
110
+ - lib/heya/campaigns/step_action_job.rb
111
+ - lib/heya/config.rb
60
112
  - lib/heya/engine.rb
61
113
  - lib/heya/version.rb
62
114
  - lib/tasks/heya_tasks.rake
63
- homepage: https://www.honeybadger.io
64
- licenses: []
115
+ homepage: https://github.com/honeybadger-io/heya
116
+ licenses:
117
+ - Prosperity Public License
65
118
  metadata: {}
66
- post_install_message:
119
+ post_install_message: Upgrading from Heya < 0.4? See https://git.io/JtgmW
67
120
  rdoc_options: []
68
121
  require_paths:
69
122
  - lib
@@ -78,8 +131,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
78
131
  - !ruby/object:Gem::Version
79
132
  version: '0'
80
133
  requirements: []
81
- rubygems_version: 3.0.3
82
- signing_key:
134
+ rubygems_version: 3.1.2
135
+ signing_key:
83
136
  specification_version: 4
84
137
  summary: "Heya \U0001F44B"
85
138
  test_files: []