pageflow-support 17.0.5 → 17.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8959e73457171c0bf4db9618145427f1b362d7e3cb3f206583af67d0ba40812a
4
- data.tar.gz: 73a9dc475ffa0ff3ad3d3b4bd190419f5aaf68c04de0dd905a20d9d15b06c646
3
+ metadata.gz: fae97a40f99f97bb513360d66bfbedf7690ad711fbe8f581458c024a13e48a67
4
+ data.tar.gz: 282ce32027ab5526b097d9c9db77e93b96af878aa7f1db8a5d8761b3c98b9b61
5
5
  SHA512:
6
- metadata.gz: d08d493e04e427a3d90bab62f35532d753a846d7ddcefbb485d5e775e0518c03fcc81a62012a14a0a9d566fc4fa72df2415a6d9442f5380cc1e86c323af145fd
7
- data.tar.gz: 937b315e3b8575240cc76b37279e6aab53a2bced1087f77131dc161d58b9191ef656123031b8aa5a2f8d175efc19a81f7baf468343b76eec6432280b9fd17328
6
+ metadata.gz: dc7ff0c1d01152030e4930fb7f6269d153d7f1994c63616e10abaf8e471b83cc419b9a48e0413ac2ed69ecd0ae9838b80a57711b087bc9f1657dbcc9fd81a96b
7
+ data.tar.gz: 007be4ed862864dda806f09a340c476c8a61db3d2a4746ae61c820fff8220bfd4be0657c80d00058fc783f65a4b832e1ddd38b0ecd36ce4ccd6866277dbef28f
@@ -23,17 +23,17 @@ module Pageflow
23
23
  def self.sign_in_as(role, options = {})
24
24
  email = "#{role}@example.com"
25
25
  password = '!Pass123'
26
- user = FactoryBot.create(:user, options.reverse_merge(email: email, password: password))
26
+ user = FactoryBot.create(:user, options.reverse_merge(email:, password:))
27
27
 
28
28
  if role.to_sym == :admin
29
29
  user.admin = true
30
30
  user.save
31
31
  else
32
- FactoryBot.create(:membership, user: user, role: role, entity: options[:on])
32
+ FactoryBot.create(:membership, user:, role:, entity: options[:on])
33
33
  end
34
34
 
35
35
  visit '/admin/login'
36
- SignInForm.find!.submit_with(email: email, password: password)
36
+ SignInForm.find!.submit_with(email:, password:)
37
37
 
38
38
  unless page.has_content?(I18n.t('devise.sessions.signed_in'))
39
39
  raise 'Expected to find sign in flash message.'
@@ -8,7 +8,7 @@ module Pageflow
8
8
  def generate
9
9
  ENV['RAILS_ROOT'] = File.expand_path(directory)
10
10
 
11
- if File.exist?(directory)
11
+ if File.exist?(directory) # rubocop:disable Style/GuardClause
12
12
  puts("Dummy directory #{directory} exists.")
13
13
  else
14
14
  system('SKIP_EAGER_LOAD=true ' \
@@ -17,7 +17,7 @@ module Pageflow
17
17
  raise('Error generating dummy app.')
18
18
  end
19
19
 
20
- require(File.join(ENV['RAILS_ROOT'], 'config', 'environment'))
20
+ require(File.join(ENV.fetch('RAILS_ROOT', nil), 'config', 'environment'))
21
21
  end
22
22
 
23
23
  def directory
@@ -1,7 +1,7 @@
1
1
  require 'pageflow/rails_version'
2
2
 
3
3
  def source_paths
4
- [File.join(File.expand_path(File.dirname(__FILE__)), 'templates')]
4
+ [File.join(__dir__, 'templates')]
5
5
  end
6
6
 
7
7
  # The Gemfile is not required. We'll use the one from the project root instead.
@@ -25,11 +25,11 @@ gsub_file('config/environments/test.rb',
25
25
  'config.eager_load = ENV["CI"].present?',
26
26
  'config.eager_load = ENV["CI"].present? && !ENV["SKIP_EAGER_LOAD"]')
27
27
 
28
- append_to_file('config/application.rb', <<-END)
28
+ append_to_file('config/application.rb', <<-RUBY)
29
29
  if ENV['PAGEFLOW_DB_HOST'].present?
30
30
  ActiveRecord::Tasks::DatabaseTasks::LOCAL_HOSTS << ENV['PAGEFLOW_DB_HOST']
31
31
  end
32
- END
32
+ RUBY
33
33
 
34
34
  # Ensure pageflow is required even if it is not listed in plugin Gemfile does
35
35
  inject_into_file('config/application.rb',
@@ -38,7 +38,7 @@ inject_into_file('config/application.rb',
38
38
 
39
39
  if in_root { File.exist?('app/assets/javascripts/application.js') }
40
40
  # Remove requires to missing gems (i.e. turbolinks)
41
- gsub_file('app/assets/javascripts/application.js', %r'//=.*', '')
41
+ gsub_file('app/assets/javascripts/application.js', %r{//=.*}, '')
42
42
  end
43
43
 
44
44
  # Recreate db. Ignore if it does not exist.
@@ -67,9 +67,9 @@ inject_into_file('config/environments/test.rb',
67
67
 
68
68
  # ActiveAdmin does not look for admin definitions inside dummy apps by default.
69
69
 
70
- prepend_to_file('config/initializers/pageflow.rb', <<-END)
70
+ prepend_to_file('config/initializers/pageflow.rb', <<-RUBY)
71
71
  ActiveAdmin.application.load_paths.unshift(Dir[Rails.root.join('app/admin')].first)\n
72
- END
72
+ RUBY
73
73
 
74
74
  # Adapt default configuration
75
75
 
@@ -90,9 +90,9 @@ copy_file('test_theme_preview.png',
90
90
  # automatically. Since the test_theme is not yet registered when the
91
91
  # environment is loaded, we need to add its stylesheet manually.
92
92
 
93
- append_to_file('config/initializers/assets.rb', <<-END)
93
+ append_to_file('config/initializers/assets.rb', <<-RUBY)
94
94
  Rails.application.config.assets.precompile += %w( pageflow/themes/test_theme.css )
95
- END
95
+ RUBY
96
96
 
97
97
  # Create database tables for fake hosted files and revision components.
98
98
 
@@ -1,7 +1,7 @@
1
1
  module Pageflow
2
2
  module EditLockTestHelpers
3
3
  def acquire_edit_lock(user, entry)
4
- edit_lock = FactoryBot.create(:edit_lock, user: user, entry: entry)
4
+ edit_lock = FactoryBot.create(:edit_lock, user:, entry:)
5
5
  request.headers['X-Edit-Lock'] = edit_lock.id
6
6
  end
7
7
  end
@@ -15,7 +15,7 @@ module Pageflow
15
15
  # acquire an edit lock.
16
16
  def authorize_for_editor_controller(entry)
17
17
  user = FactoryBot.create(:user)
18
- FactoryBot.create(:membership, user: user, entity: entry, role: :editor)
18
+ FactoryBot.create(:membership, user:, entity: entry, role: :editor)
19
19
 
20
20
  sign_in(user, scope: :user)
21
21
  acquire_edit_lock(user, entry)
@@ -43,7 +43,7 @@ module Pageflow
43
43
  published_entry = PublishedEntry.new(entry, revision)
44
44
  EntriesControllerEnvHelper.add_entry_info_to_env(request.env,
45
45
  entry: published_entry,
46
- mode: mode)
46
+ mode:)
47
47
  get(action, params: {**params})
48
48
  end
49
49
  end
@@ -32,6 +32,7 @@ module Pageflow
32
32
  # helper available and RSpec hooks to apply configuration changes.
33
33
  def self.setup
34
34
  return if @setup
35
+
35
36
  @setup = true
36
37
 
37
38
  RSpec.configure do |config|
@@ -15,12 +15,10 @@ module Pageflow
15
15
  end
16
16
  end
17
17
 
18
- def file_importer_credentials(authentication_provider)
18
+ file_importer_credentials = lambda do |authentication_provider|
19
19
  token = AuthenticationToken.where(provider: authentication_provider) if
20
20
  authentication_provider.present?
21
- unless token.nil?
22
- token = nil if token.empty?
23
- end
21
+ token = nil if !token.nil? && token.empty?
24
22
  token
25
23
  end
26
24
 
@@ -54,7 +52,7 @@ module Pageflow
54
52
  expect(file_importer.class.method_defined?(:search)).to be(true)
55
53
  expect {
56
54
  provider = file_importer.authentication_provider
57
- search_result = file_importer.search(file_importer_credentials(provider),
55
+ search_result = file_importer.search(file_importer_credentials.call(provider),
58
56
  'test*$*page=1&per_page=15*$*')
59
57
  expect(search_result).not_to be_nil
60
58
  }.not_to raise_error
@@ -64,7 +62,8 @@ module Pageflow
64
62
  expect(file_importer.class.method_defined?(:files_meta_data)).to be(true)
65
63
  expect {
66
64
  provider = file_importer.authentication_provider
67
- meta_data = file_importer.files_meta_data(file_importer_credentials(provider), {})
65
+ meta_data = file_importer.files_meta_data(file_importer_credentials.call(provider),
66
+ {})
68
67
  expect(meta_data).not_to be_nil
69
68
  expect(meta_data).to include(:collection)
70
69
  expect(meta_data).to include(:files)
@@ -39,7 +39,7 @@ module Pageflow
39
39
  formats: [:json],
40
40
  locals: {
41
41
  file: UsedFile.new(file, FileUsage.new),
42
- file_type: file_type
42
+ file_type:
43
43
  })
44
44
  }.not_to raise_error
45
45
  end
@@ -51,14 +51,14 @@ module Pageflow
51
51
  formats: [:json],
52
52
  locals: {
53
53
  file: UsedFile.new(file, FileUsage.new),
54
- file_type: file_type
54
+ file_type:
55
55
  })
56
56
  end
57
57
 
58
58
  it 'provides css_background_image_urls that returns hash if present' do
59
59
  if file_type.css_background_image_urls
60
60
  entry = create(:entry)
61
- result = file_type.css_background_image_urls_for(file, entry: entry)
61
+ result = file_type.css_background_image_urls_for(file, entry:)
62
62
 
63
63
  expect(result).to be_a(Hash)
64
64
  end
@@ -66,7 +66,7 @@ module Pageflow
66
66
 
67
67
  it 'can be exported and imported without error' do
68
68
  exported_entry = create(:entry)
69
- create(:file_usage, file: file, revision: exported_entry.draft)
69
+ create(:file_usage, file:, revision: exported_entry.draft)
70
70
  user = create(:user, :manager, on: create(:account))
71
71
 
72
72
  get_prerequisite_files.call(file).each do |prerequisite_file|
data/pageflow/lint.rb CHANGED
@@ -25,8 +25,8 @@ module Pageflow
25
25
  # require 'pageflow/lint'
26
26
  #
27
27
  # Pageflow::Lint.entry_type(SomePlugin.entry_type)
28
- def self.entry_type(*args, **kws)
29
- Lint::EntryType.lint(*args, **kws)
28
+ def self.entry_type(*, **kws)
29
+ Lint::EntryType.lint(*, **kws)
30
30
  end
31
31
 
32
32
  # Ensure file type json partials render correctly.
@@ -52,8 +52,8 @@ module Pageflow
52
52
  # create_file_type: -> { SomePlugin.file_type },
53
53
  # create_file: -> { create(:some_file) })
54
54
  # end
55
- def self.file_type(*args, **kws)
56
- Lint::FileType.lint(*args, **kws)
55
+ def self.file_type(*, **kws)
56
+ Lint::FileType.lint(*, **kws)
57
57
  end
58
58
 
59
59
  # Contract specs for page types
@@ -70,8 +70,8 @@ module Pageflow
70
70
  # module SomePlugin
71
71
  # Pageflow::Lint.page_type(SomePLugin.page_type)
72
72
  # end
73
- def self.page_type(*args, **kws)
74
- Lint::PageType.lint(*args, **kws)
73
+ def self.page_type(*, **kws)
74
+ Lint::PageType.lint(*, **kws)
75
75
  end
76
76
 
77
77
  # Contracts specs for file import plugin
@@ -83,8 +83,8 @@ module Pageflow
83
83
  # module SomePlugin
84
84
  # Pageflow::Lint.file_import(SomePLugin.file_import)
85
85
  # end
86
- def self.file_import(*args, **kws)
87
- Lint::FileImport.lint(*args, **kws)
86
+ def self.file_import(*, **kws)
87
+ Lint::FileImport.lint(*, **kws)
88
88
  end
89
89
  end
90
90
  end
@@ -1,6 +1,6 @@
1
1
  RSpec::Matchers.define :have_meta_tag do
2
2
  match do |body|
3
- Capybara.string(body).has_selector?(selectors.join(''), visible: false)
3
+ Capybara.string(body).has_selector?(selectors.join, visible: false)
4
4
  end
5
5
 
6
6
  chain :with_name do |value|
@@ -8,7 +8,7 @@ module Pageflow
8
8
  if page_type_or_page.is_a?(Page)
9
9
  [page_type_or_page, page_type_or_page.page_type]
10
10
  else
11
- [FactoryBot.create(:page, template: page_type_or_page.name, configuration: configuration),
11
+ [FactoryBot.create(:page, template: page_type_or_page.name, configuration:),
12
12
  page_type_or_page]
13
13
  end
14
14
 
@@ -29,7 +29,7 @@ module Pageflow
29
29
 
30
30
  assign(:entry, entry)
31
31
 
32
- helper.render_page_template(page, entry: entry)
32
+ helper.render_page_template(page, entry:)
33
33
  end
34
34
  end
35
35
  end
@@ -14,7 +14,7 @@ RSpec.shared_context 'fake translations' do
14
14
  data = {}
15
15
 
16
16
  inner = keys.inject(data) do |result, key|
17
- result[key] = {}
17
+ result[key] = {} # rubocop:disable Lint/UnmodifiedReduceAccumulator
18
18
  end
19
19
 
20
20
  inner[last_key] = value
@@ -13,10 +13,11 @@ Capybara.register_driver :selenium_chrome_headless_no_sandbox do |app|
13
13
 
14
14
  Capybara::Selenium::Driver.new(app,
15
15
  browser: :chrome,
16
- options: options)
16
+ options:)
17
17
  end
18
18
 
19
19
  Capybara.javascript_driver = :selenium_chrome_headless_no_sandbox
20
+ Capybara.server = :puma, {Silent: true}
20
21
 
21
22
  Capybara::Chromedriver::Logger.raise_js_errors = true
22
23
  Capybara::Chromedriver::Logger.filters = [
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pageflow-support
3
3
  version: !ruby/object:Gem::Version
4
- version: 17.0.5
4
+ version: 17.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Codevise Solutions Ltd
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-08-05 00:00:00.000000000 Z
11
+ date: 2025-09-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: pageflow
14
+ name: mysql2
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '='
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 17.0.5
19
+ version: 0.5.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '='
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 17.0.5
26
+ version: 0.5.2
27
27
  - !ruby/object:Gem::Dependency
28
- name: mysql2
28
+ name: pageflow
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 0.5.2
33
+ version: 17.1.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 0.5.2
40
+ version: 17.1.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: domino
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -67,47 +67,47 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '4.8'
69
69
  - !ruby/object:Gem::Dependency
70
- name: listen
70
+ name: bootsnap
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '3.0'
75
+ version: '1.0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '3.0'
82
+ version: '1.0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: bootsnap
84
+ name: listen
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '1.0'
89
+ version: '3.0'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '1.0'
96
+ version: '3.0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: resque
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '1.25'
103
+ version: '2.6'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '1.25'
110
+ version: '2.6'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: resque-scheduler
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -215,7 +215,6 @@ files:
215
215
  - pageflow/editor_controller_test_helper.rb
216
216
  - pageflow/entries_controller_test_helper.rb
217
217
  - pageflow/global_config_api_test_helper.rb
218
- - pageflow/json_test_helper.rb
219
218
  - pageflow/lint.rb
220
219
  - pageflow/lint/entry_type.rb
221
220
  - pageflow/lint/file_import.rb
@@ -236,7 +235,8 @@ files:
236
235
  - pageflow/used_file_test_helper.rb
237
236
  homepage: https://pageflow.io
238
237
  licenses: []
239
- metadata: {}
238
+ metadata:
239
+ rubygems_mfa_required: 'true'
240
240
  post_install_message:
241
241
  rdoc_options: []
242
242
  require_paths:
@@ -245,7 +245,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
245
245
  requirements:
246
246
  - - ">="
247
247
  - !ruby/object:Gem::Version
248
- version: '0'
248
+ version: '3.2'
249
249
  required_rubygems_version: !ruby/object:Gem::Requirement
250
250
  requirements:
251
251
  - - ">="
@@ -1,46 +0,0 @@
1
- module Pageflow
2
- module JsonTestHelper
3
- def json_response(options = {})
4
- json_get(response.body, options)
5
- end
6
-
7
- def json_get(text, options = {})
8
- object = JSON.parse(text)
9
- path = options[:path] || []
10
- pretty_path = nil
11
-
12
- Array.wrap(path).inject(object) do |component, key|
13
- case key
14
- when Integer, '*'
15
- expect(component).to be_a(Array),
16
- "Expected json response to have array at '#{pretty_path || 'root'}'"
17
- pretty_path = [pretty_path, "[#{key}]"].compact.join
18
-
19
- if key == '*'
20
- component
21
- else
22
- expect(component[key]).to be_present,
23
- "Expected json response to have item at '#{pretty_path}'"
24
- component[key]
25
- end
26
- when String, Symbol
27
- key = key.to_s
28
- pretty_path = [pretty_path, key].compact * '.'
29
-
30
- case component
31
- when Array
32
- component.map do |c|
33
- expect(c).to have_key(key),
34
- "Expected json response to have key '#{pretty_path}'"
35
- c[key]
36
- end
37
- else
38
- expect(component).to have_key(key),
39
- "Expected json response to have key '#{pretty_path}'"
40
- component[key]
41
- end
42
- end
43
- end
44
- end
45
- end
46
- end