perron 1.0.0 → 1.2.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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +11 -15
  3. data/app/controllers/perron/concierge_controller.rb +4 -1
  4. data/app/helpers/perron/markdown_helper.rb +3 -2
  5. data/app/helpers/perron/meta_tags_helper.rb +3 -9
  6. data/app/helpers/perron/paginate_helper.rb +40 -0
  7. data/app/views/perron/concierge/show.html.erb +1 -1
  8. data/lib/perron/collection.rb +2 -1
  9. data/lib/perron/configuration.rb +29 -4
  10. data/lib/perron/data_source.rb +6 -4
  11. data/lib/perron/deprecator.rb +1 -1
  12. data/lib/perron/engine.rb +11 -8
  13. data/lib/perron/feeds/split.rb +46 -0
  14. data/lib/perron/feeds.rb +17 -0
  15. data/lib/perron/html_processor/absolute_urls.rb +1 -1
  16. data/lib/perron/install/deploy.yml.erb +14 -0
  17. data/lib/perron/paginate.rb +58 -0
  18. data/lib/perron/relation.rb +27 -7
  19. data/lib/perron/resource/class_methods.rb +6 -0
  20. data/lib/perron/resource/configuration.rb +16 -3
  21. data/lib/perron/resource/metadata.rb +11 -4
  22. data/lib/perron/resource/publishable.rb +9 -1
  23. data/lib/perron/resource/separator.rb +11 -5
  24. data/lib/perron/resource/sourceable.rb +63 -9
  25. data/lib/perron/resource/updatable.rb +46 -0
  26. data/lib/perron/resource.rb +7 -0
  27. data/lib/perron/site/builder/feeds/atom.erb +1 -1
  28. data/lib/perron/site/builder/feeds/atom.rb +8 -2
  29. data/lib/perron/site/builder/feeds/json.rb +8 -2
  30. data/lib/perron/site/builder/feeds/rss.rb +8 -2
  31. data/lib/perron/site/builder/feeds.rb +32 -10
  32. data/lib/perron/site/builder/page.rb +19 -4
  33. data/lib/perron/site/builder/paths.rb +23 -1
  34. data/lib/perron/site/builder/sitemap.rb +23 -10
  35. data/lib/perron/site/builder.rb +24 -0
  36. data/lib/perron/site/validate.rb +18 -5
  37. data/lib/perron/tasks/deploy.rake +69 -0
  38. data/lib/perron/version.rb +1 -1
  39. data/lib/perron.rb +1 -0
  40. data/perron.gemspec +1 -1
  41. metadata +10 -4
@@ -0,0 +1,69 @@
1
+ namespace :perron do
2
+ desc "Deploy static site using Beam Up"
3
+ task deploy: :environment do
4
+ Perron.deprecator.deprecation_warning(:deploy, "The `perron:deploy` task is deprecated and its behavior will change in a future 1.x release (target: 1.3.0). See https://perron.railsdesigner.com/docs/deploy/ for updates.")
5
+
6
+ begin
7
+ require "beam_up"
8
+ rescue LoadError
9
+ raise LoadError, <<~MSG
10
+ Beam Up is required for the deploy task to run.
11
+
12
+ Add it to your Gemfile:
13
+ gem "beam_up"
14
+
15
+ Read more: https://perron.railsdesigner.com/docs/deploy/
16
+ MSG
17
+ end
18
+
19
+ config_file = "config/deploy.yml" if Rails.root.join("config/deploy.yml").exist?
20
+ config_file = "config/deploy.yml.erb" if Rails.root.join("config/deploy.yml.erb").exist?
21
+
22
+ if config_file.nil?
23
+ FileUtils.cp(File.expand_path("../install/deploy.yml.erb", __dir__), Rails.root.join("config/deploy.yml.erb"))
24
+ config_file = "config/deploy.yml.erb"
25
+ puts "Created config/deploy.yml.erb"
26
+ end
27
+
28
+ beamed = BeamUp.with_progress do
29
+ BeamUp.deploy!(
30
+ Perron.configuration.output,
31
+ config_file: config_file
32
+ )
33
+ end
34
+
35
+ puts beamed.message
36
+ puts "Deploy ID: #{beamed.deploy_id}" if beamed.deploy_id
37
+ end
38
+
39
+ namespace :deploy do
40
+ desc "Initialize deploy configuration with Beam Up"
41
+ task :init, [:provider] do |task, arguments|
42
+ Perron.deprecator.deprecation_warning(:deploy, "The `perron:deploy:init` task is deprecated and its behavior will change in a future 1.x release (target: 1.3.0). See https://perron.railsdesigner.com/docs/deploy/ for updates.")
43
+
44
+ begin
45
+ require "beam_up"
46
+ rescue LoadError
47
+ raise LoadError, <<~MSG
48
+ Beam Up is required for the deploy task to run.
49
+
50
+ Add it to your Gemfile:
51
+ gem "beam_up"
52
+
53
+ See for more: https://perron.railsdesigner.com/docs/deploy/
54
+ MSG
55
+ end
56
+
57
+ config_file = "config/deploy.yml" if Rails.root.join("config/deploy.yml").exist?
58
+ config_file = "config/deploy.yml.erb" if Rails.root.join("config/deploy.yml.erb").exist?
59
+
60
+ if config_file.nil?
61
+ config_file = "config/deploy.yml.erb"
62
+ end
63
+
64
+ path = BeamUp.init!(arguments[:provider], config_file: config_file)
65
+
66
+ puts "Configured Beam Up in #{path}"
67
+ end
68
+ end
69
+ end
@@ -1,3 +1,3 @@
1
1
  module Perron
2
- VERSION = "1.0.0"
2
+ VERSION = "1.2.0"
3
3
  end
data/lib/perron.rb CHANGED
@@ -6,6 +6,7 @@ require "perron/deprecator"
6
6
  require "perron/errors"
7
7
  require "perron/site"
8
8
  require "perron/relation"
9
+ require "perron/paginate"
9
10
  require "perron/content/data"
10
11
  require "perron/resource"
11
12
  require "perron/markdown"
data/perron.gemspec CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.required_ruby_version = ">= 3.4.0"
20
20
 
21
21
  spec.add_dependency "rails", ">= 7.2.0"
22
- spec.add_dependency "mata", "~> 0.8.0"
22
+ spec.add_dependency "mata", "~> 0.10.0"
23
23
 
24
24
  spec.add_runtime_dependency "csv"
25
25
  spec.add_runtime_dependency "json"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: perron
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rails Designer Developers
@@ -29,14 +29,14 @@ dependencies:
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: 0.8.0
32
+ version: 0.10.0
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: 0.8.0
39
+ version: 0.10.0
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: csv
42
42
  requirement: !ruby/object:Gem::Requirement
@@ -98,6 +98,7 @@ files:
98
98
  - app/helpers/perron/feeds_helper.rb
99
99
  - app/helpers/perron/markdown_helper.rb
100
100
  - app/helpers/perron/meta_tags_helper.rb
101
+ - app/helpers/perron/paginate_helper.rb
101
102
  - app/views/perron/concierge/show.html.erb
102
103
  - bin/console
103
104
  - bin/rails
@@ -126,6 +127,7 @@ files:
126
127
  - lib/perron/engine.rb
127
128
  - lib/perron/errors.rb
128
129
  - lib/perron/feeds.rb
130
+ - lib/perron/feeds/split.rb
129
131
  - lib/perron/html_processor.rb
130
132
  - lib/perron/html_processor/absolute_urls.rb
131
133
  - lib/perron/html_processor/base.rb
@@ -133,10 +135,12 @@ files:
133
135
  - lib/perron/html_processor/target_blank.rb
134
136
  - lib/perron/install.rb
135
137
  - lib/perron/install/README.md.tt
138
+ - lib/perron/install/deploy.yml.erb
136
139
  - lib/perron/install/initializer.rb.tt
137
140
  - lib/perron/markdown.rb
138
141
  - lib/perron/metatags.rb
139
142
  - lib/perron/output_server.rb
143
+ - lib/perron/paginate.rb
140
144
  - lib/perron/refinements/delete_suffixes.rb
141
145
  - lib/perron/relation.rb
142
146
  - lib/perron/resource.rb
@@ -159,6 +163,7 @@ files:
159
163
  - lib/perron/resource/sourceable.rb
160
164
  - lib/perron/resource/sweeper.rb
161
165
  - lib/perron/resource/table_of_content.rb
166
+ - lib/perron/resource/updatable.rb
162
167
  - lib/perron/site.rb
163
168
  - lib/perron/site/builder.rb
164
169
  - lib/perron/site/builder/additional_routes.rb
@@ -180,6 +185,7 @@ files:
180
185
  - lib/perron/site/validate.rb
181
186
  - lib/perron/tasks/build.rake
182
187
  - lib/perron/tasks/clobber.rake
188
+ - lib/perron/tasks/deploy.rake
183
189
  - lib/perron/tasks/install.rake
184
190
  - lib/perron/tasks/sync_sources.rake
185
191
  - lib/perron/tasks/validate.rake
@@ -205,7 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
205
211
  - !ruby/object:Gem::Version
206
212
  version: '0'
207
213
  requirements: []
208
- rubygems_version: 4.0.6
214
+ rubygems_version: 4.0.22
209
215
  specification_version: 4
210
216
  summary: Rails-based static site generator
211
217
  test_files: []