shimmer 0.0.27 → 0.0.29

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.
@@ -1,15 +1,11 @@
1
+ # Most of those cops are documented here:
2
+ # https://www.rubydoc.info/gems/rubocop/RuboCop/Cop/Style
3
+ #
1
4
  AllCops:
2
5
  NewCops: disable
3
- Exclude:
4
- - '**/vendor/bundle/**/*'
5
- - '**/bin/**/*'
6
- - '**/db/schema.rb'
7
- - '**/node_modules/**/*'
8
6
 
9
7
  require:
10
- - standard
11
- - rubocop-rails
12
- - rubocop-rake
8
+ - standard # https://github.com/standardrb/standard
13
9
 
14
10
  inherit_gem:
15
11
  standard: config/base.yml
@@ -23,10 +19,32 @@ Style/MutableConstant:
23
19
  Enabled: true
24
20
  EnforcedStyle: strict
25
21
 
26
- # Allow `.update_all`.
27
- Rails/SkipsModelValidations:
28
- Enabled: false
22
+ # Pass &:method_name as an argument to index_by instead of a block.
23
+ Style/SymbolProc:
24
+ Enabled: true
25
+
26
+ # Prefer `[:foo, :bar]` to `%i[foo bar]`.
27
+ Style/SymbolArray:
28
+ Enabled: true
29
+ EnforcedStyle: brackets
30
+
31
+ # Prefer `["foo", "bar"]` to `%w[foo bar]`.
32
+ Style/WordArray:
33
+ Enabled: true
34
+ EnforcedStyle: brackets
35
+
36
+ # <% if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.1") %>
37
+ Style/HashSyntax:
38
+ Enabled: true
39
+ EnforcedShorthandSyntax: always
40
+ # <% end %>
29
41
 
30
- # Allow Rake tasks to not require the full Rails app to be loaded.
31
- Rails/RakeEnvironment:
32
- Enabled: false
42
+ # Keep at the end of the file (after the individual cops configuration),
43
+ # otherwise, those cops are not configured properly.
44
+ inherit_from:
45
+ # <% Dir["#{File.expand_path(__dir__)}/rubocop_extensions/*.yml"].each do |filename| %>
46
+ # <% gem_name = filename.delete_suffix(".yml").delete_prefix("#{File.expand_path(__dir__)}/rubocop_extensions/") %>
47
+ # <% if Gem.loaded_specs.key?(gem_name) %>
48
+ - rubocop_extensions/<%= gem_name %>.yml
49
+ # <% end # if Gem.loaded_specs.key? %>
50
+ # <% end # Dir.foreach %>
@@ -0,0 +1,68 @@
1
+ # Documentation on the rules can be found here:
2
+ # https://github.com/DmitryTsepelev/rubocop-graphql/tree/master/lib/rubocop/cop/graphql
3
+ #
4
+ require:
5
+ - rubocop-graphql
6
+
7
+ GraphQL:
8
+ Enabled: false
9
+
10
+ # Keep mutation file ordered.
11
+ GraphQL/OrderedFields:
12
+ Enabled: true
13
+ Exclude:
14
+ - "*"
15
+ Include:
16
+ - '**/mutation_type.rb'
17
+
18
+ # Ensures snake case of argument name.
19
+ GraphQL/ArgumentName:
20
+ Enabled: true
21
+
22
+ # Detects duplicate argument definitions.
23
+ GraphQL/ArgumentUniqueness:
24
+ Enabled: true
25
+
26
+ # Prevents defining unnecessary resolver methods in cases when `:hash_key` option can be used.
27
+ GraphQL/FieldHashKey:
28
+ Enabled: true
29
+
30
+ # Prevents defining unnecessary resolver methods in cases when `:method option` can be used.
31
+ GraphQL/FieldMethod:
32
+ Enabled: true
33
+
34
+ # Ensures snake case of field name.
35
+ GraphQL/FieldName:
36
+ Enabled: true
37
+
38
+ # Detects duplicate field definitions within the same type.
39
+ GraphQL/FieldUniqueness:
40
+ Enabled: true
41
+
42
+ # Ensures type definitions are class-based (no longer legacy).
43
+ GraphQL/LegacyDsl:
44
+ Enabled: true
45
+
46
+ # Ensures fields with multiple definitions are grouped together
47
+ GraphQL/MultipleFieldDefinitions:
48
+ Enabled: true
49
+
50
+ # Forces `Relay::Node` implementations to expose an `authorized?` method.
51
+ GraphQL/NotAuthorizedNodeType:
52
+ Enabled: true
53
+
54
+ # Checks for has an unnecessary argument camelize.
55
+ GraphQL/UnnecessaryArgumentCamelize:
56
+ Enabled: true
57
+
58
+ # Prevents defining an unnecessary `alias`, `method`, or `resolver_method` arguements to fields.
59
+ GraphQL/UnnecessaryFieldAlias:
60
+ Enabled: true
61
+
62
+ # Checks for has an unnecessary field camelize.
63
+ GraphQL/UnnecessaryFieldCamelize:
64
+ Enabled: true
65
+
66
+ # Arguments should either be listed explicitly or `**rest` should be in the resolve signature.
67
+ GraphQL/UnusedArgument:
68
+ Enabled: true
@@ -0,0 +1,34 @@
1
+ AllCops:
2
+ Exclude:
3
+ - '**/vendor/bundle/**/*'
4
+ - '**/db/schema.rb'
5
+
6
+ require:
7
+ - rubocop-rails
8
+
9
+ Rails:
10
+ Enabled: false
11
+
12
+ # Prefer :bad_request over 400 to define HTTP status code.
13
+ Rails/HttpStatus:
14
+ Enabled: true
15
+
16
+ # Prefer index_by over map { ... }.to_h.
17
+ Rails/IndexBy:
18
+ Enabled: true
19
+
20
+ # Prefer index_with over each_with_object.
21
+ Rails/IndexWith:
22
+ Enabled: true
23
+
24
+ # Specify a :dependent option. (https://rails.rubystyle.guide#has_many-has_one-dependent-option)
25
+ Rails/HasManyOrHasOneDependent:
26
+ Enabled: true
27
+
28
+ # Specify an :inverse_of option.
29
+ Rails/InverseOf:
30
+ Enabled: true
31
+
32
+ # Specifying the default value for foreign_key is redundant.
33
+ Rails/RedundantForeignKey:
34
+ Enabled: true
@@ -0,0 +1,208 @@
1
+ require:
2
+ - rubocop-rspec
3
+
4
+ RSpec:
5
+ Enabled: false
6
+
7
+ # Check that instances are not being stubbed globally.
8
+ # Prefer instance doubles over stubbing any instance of a class.
9
+ RSpec/AnyInstance:
10
+ Enabled: true
11
+
12
+ # Checks that around blocks actually run the test.
13
+ # Would be a shame if the test would be green simply because it is not called.
14
+ RSpec/AroundBlock:
15
+ Enabled: true
16
+
17
+ # Be what? Not nil? Present? Truthy?
18
+ RSpec/Be:
19
+ Enabled: true
20
+
21
+ # The be matcher compares by identity while the eq matcher compares using ==.
22
+ # Booleans and nil can be compared by identity and therefore the be matcher is
23
+ # preferable as it is a more strict test.
24
+ RSpec/BeEq:
25
+ Enabled: true
26
+
27
+ # The be matcher compares by identity while the eq matcher compares using ==.
28
+ # Booleans and nil can be compared by identity and therefore the be matcher is
29
+ # preferable as it is a more strict test.
30
+ RSpec/BeEql:
31
+ Enabled: true
32
+
33
+ # Prefer `.to be_nil` to `.to be(nil)`.
34
+ RSpec/BeNil:
35
+ Enabled: true
36
+
37
+ # Avoid `before(:all)`, prefer `before(:each)` within a group.
38
+ RSpec/BeforeAfterAll:
39
+ Enabled: true
40
+
41
+ # Avoid `.to change(...).by(0)`, prefer `not_to change` and `.to not_change` (for composite).
42
+ RSpec/ChangeByZero:
43
+ Enabled: true
44
+
45
+ # Expect expectations in all tests.
46
+ # If it's just expecting it to not raise, wrap it in `expect do ... end.not_to raise`.
47
+ RSpec/EmptyExampleGroup:
48
+ Enabled: true
49
+
50
+ # Don't allow empty hooks.
51
+ RSpec/EmptyHook:
52
+ Enabled: true
53
+
54
+ # Separate groups.
55
+ RSpec/EmptyLineAfterExampleGroup:
56
+ Enabled: true
57
+
58
+ # Separate `let`s from tests.
59
+ RSpec/EmptyLineAfterFinalLet:
60
+ Enabled: true
61
+
62
+ # Separate hooks from tests.
63
+ RSpec/EmptyLineAfterHook:
64
+ Enabled: true
65
+
66
+ # Don't allow specs without description.
67
+ RSpec/ExampleWithoutDescription:
68
+ Enabled: true
69
+
70
+ # Checks for common mistakes in example descriptions.
71
+ RSpec/ExampleWording:
72
+ Enabled: true
73
+
74
+ # Trim descriptions.
75
+ RSpec/ExcessiveDocstringSpacing:
76
+ Enabled: true
77
+
78
+ # Do stdout expectations right.
79
+ RSpec/ExpectOutput:
80
+ Enabled: true
81
+
82
+ # Enforces spec file naming convention.
83
+ RSpec/FilePath:
84
+ Enabled: true
85
+
86
+ # Don't forget focussed tests (expecially useful for the CI to fail).
87
+ RSpec/Focus:
88
+ Enabled: true
89
+ AutoCorrect: false
90
+
91
+ # Checks for before/around/after hooks that come after an example.
92
+ RSpec/HooksBeforeExamples:
93
+ Enabled: true
94
+
95
+ # Don't expect something to be itself.
96
+ RSpec/IdenticalEqualityAssertion:
97
+ Enabled: true
98
+
99
+ # Explicitly declare `it` blocks.
100
+ RSpec/ImplicitBlockExpectation:
101
+ Enabled: true
102
+
103
+ # Prevent instance variable usage in specs.
104
+ RSpec/InstanceVariable:
105
+ Enabled: true
106
+
107
+ # Check that all matcher is used instead of iterating over an array.
108
+ RSpec/IteratedExpectation:
109
+ Enabled: true
110
+
111
+ # Checks that no class, module, or constant is declared.
112
+ # Constants, including classes and modules, when declared in a block scope,
113
+ # are defined in global namespace, and leak between examples.
114
+ # Prevents class re-opening, leading to unpredictable side effects.
115
+ RSpec/LeakyConstantDeclaration:
116
+ Enabled: true
117
+
118
+ # Force `let`s to be before tests.
119
+ RSpec/LetBeforeExamples:
120
+ Enabled: true
121
+
122
+ # Force groups to have descriptions or symbol.
123
+ RSpec/MissingExampleGroupArgument:
124
+ Enabled: true
125
+
126
+ # Files should have only one root `describe` block.
127
+ RSpec/MultipleDescribes:
128
+ Enabled: true
129
+
130
+ # Checks if an example group defines subject multiple times.
131
+ RSpec/MultipleSubjects:
132
+ Enabled: true
133
+
134
+ # Checks if an example contains any expectation.
135
+ RSpec/NoExpectationExample:
136
+ Enabled: false # considered, but gives false positives when expectations are inside of a re-used function
137
+
138
+ # Prefer `expect(...).not_to` to `expect(...).to_not`.
139
+ RSpec/NotToNot:
140
+ Enabled: true
141
+
142
+ # Prevent setting the same `let` block more than once.
143
+ RSpec/OverwritingSetup:
144
+ Enabled: true
145
+
146
+ # Prevent useless `around` hooks.
147
+ RSpec/RedundantAround:
148
+ Enabled: true
149
+
150
+ # Prevent duplicate description.
151
+ RSpec/RepeatedDescription:
152
+ Enabled: true
153
+
154
+ # Prevent duplicate example (test).
155
+ RSpec/RepeatedExample:
156
+ Enabled: true
157
+
158
+ # Detects duplicate in example group body.
159
+ RSpec/RepeatedExampleGroupBody:
160
+ Enabled: true
161
+
162
+ # Detects duplicate in example group description.
163
+ RSpec/RepeatedExampleGroupDescription:
164
+ Enabled: true
165
+
166
+ # Check for repeated include of shared examples.
167
+ RSpec/RepeatedIncludeExample:
168
+ Enabled: true
169
+
170
+ # Keep `let` blocks together.
171
+ RSpec/ScatteredLet:
172
+ Enabled: true
173
+
174
+ # Keep `setup` blocks (ex: group `before`) together.
175
+ RSpec/ScatteredSetup:
176
+ Enabled: true
177
+
178
+ # Checks for proper shared_context and shared_examples usage.
179
+ RSpec/SharedContext:
180
+ Enabled: true
181
+
182
+ # Enforces use of string to titleize shared examples.
183
+ RSpec/SharedExamples:
184
+ Enabled: true
185
+
186
+ # Checks that chains of messages contain more than one element.
187
+ RSpec/SingleArgumentMessageChain:
188
+ Enabled: true
189
+
190
+ # Skip either the whole example of not at all.
191
+ RSpec/SkipBlockInsideExample:
192
+ Enabled: true
193
+
194
+ # Be specific about what exception/error is expected.
195
+ RSpec/UnspecifiedException:
196
+ Enabled: true
197
+
198
+ # Use symbols for `let` and `subject` names.
199
+ RSpec/VariableDefinition:
200
+ Enabled: true
201
+
202
+ # Avoid empty expectation.
203
+ RSpec/VoidExpect:
204
+ Enabled: true
205
+
206
+ # Use proper `yield` stub syntax.
207
+ RSpec/Yield:
208
+ Enabled: true
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in shimmer.gemspec
6
+ gemspec path: ".."
7
+
8
+ gem "rails", "~> 7.0.0"
9
+ gem "propshaft"
10
+ gem "sqlite3"
11
+ gem "puma"
12
+ gem "jsbundling-rails"
13
+ gem "turbo-rails"
14
+ gem "stimulus-rails"
15
+ gem "cssbundling-rails"
16
+ gem "jbuilder"
17
+ gem "bootsnap", require: false
18
+ gem "dotenv"
19
+ gem "slim-rails"
20
+ gem "awesome_print"
21
+ gem "dotenv-rails"
22
+
23
+ group :development, :test do
24
+ gem "debug", platforms: %i[mri mingw x64_mingw]
25
+ gem "rake"
26
+ gem "rspec-rails"
27
+ gem "rspec-retry"
28
+ gem "pry"
29
+ gem "pry-rails"
30
+ gem "pry-byebug"
31
+ gem "pry-doc"
32
+ gem "guard"
33
+ gem "guard-rspec"
34
+ gem "capybara"
35
+ gem "rack_session_access"
36
+ gem "cuprite"
37
+ gem "standard"
38
+ gem "rubocop"
39
+ gem "rubocop-rails"
40
+ gem "rubocop-performance"
41
+ gem "rubocop-rspec"
42
+ gem "rubocop-rake"
43
+ end
44
+
45
+ group :development do
46
+ gem "web-console"
47
+ gem "annotate"
48
+ end
@@ -10,7 +10,7 @@ module Shimmer
10
10
  def request_details(params)
11
11
  name = params[:user] ? JSON.parse(params[:user])["name"] : {}
12
12
  headers = {
13
- 'Content-Type': "application/x-www-form-urlencoded"
13
+ "Content-Type": "application/x-www-form-urlencoded"
14
14
  }
15
15
  form = {
16
16
  grant_type: "authorization_code",
@@ -72,7 +72,7 @@ module Shimmer
72
72
  classes << "input--error"
73
73
  errors = safe_join(object.errors[method].map { |e| content_tag :div, e, class: "input__error" })
74
74
  end
75
- label = label == false ? nil : self.label(label_method || method, label, class: "input__label")
75
+ label = (label == false) ? nil : self.label(label_method || method, label, class: "input__label")
76
76
  description = description.presence ? content_tag(:div, description, class: "input__description") : nil
77
77
  content_tag(:div, safe_join([label, content, description, errors, extra].compact), class: ["input"] + classes, **options)
78
78
  end
@@ -3,16 +3,22 @@
3
3
  module Shimmer
4
4
  class Config
5
5
  include Singleton
6
+
6
7
  class MissingConfigError < StandardError; end
7
8
 
8
- def method_missing(method_name)
9
+ def method_missing(method_name, **options)
10
+ default_provided = options.key?(:default)
11
+ default_value = options.delete(:default) if default_provided
12
+ raise ArgumentError, "unknown option#{"s" if options.length > 1}: #{options.keys.join(", ")}." if options.any?
13
+
9
14
  method_name = method_name.to_s
10
15
  type = :string
11
16
  key = method_name.delete_suffix("!").delete_suffix("?")
12
17
  required = method_name.end_with?("!")
13
18
  type = :bool if method_name.end_with?("?")
14
19
  value = ENV[key.upcase].presence
15
- value ||= Rails.application.credentials.send(key)
20
+ value ||= Rails.application.credentials.public_send(key)
21
+ value = default_value if value.nil?
16
22
  raise MissingConfigError, "#{key.upcase} environment value is missing" if required && value.blank?
17
23
 
18
24
  coerce value, type
@@ -25,7 +31,7 @@ module Shimmer
25
31
  private
26
32
 
27
33
  def coerce(value, type)
28
- return !value.in?(["n", "0", "no", "false"]) if type == :bool && value.is_a?(String)
34
+ return !value.downcase.in?(["n", "0", "no", "false"]) if type == :bool && value.is_a?(String)
29
35
 
30
36
  value
31
37
  end
@@ -69,22 +69,34 @@ module Shimmer
69
69
  queued_updates.push turbo_stream.append "shimmer", "<div class='hidden' data-controller='remote-navigation'>#{script}</div>"
70
70
  end
71
71
 
72
- def replace(id, with: id, **locals)
73
- queued_updates.push turbo_stream.replace(id, partial: with, locals: locals)
72
+ def append(id, with:, **locals)
73
+ queued_updates.push turbo_stream.append(id, partial: with, locals: locals)
74
74
  end
75
75
 
76
76
  def prepend(id, with:, **locals)
77
77
  queued_updates.push turbo_stream.prepend(id, partial: with, locals: locals)
78
78
  end
79
79
 
80
- def append(id, with:, **locals)
81
- queued_updates.push turbo_stream.append(id, partial: with, locals: locals)
80
+ def replace(id, with: id, **locals)
81
+ queued_updates.push turbo_stream.replace(id, partial: with, locals: locals)
82
+ end
83
+
84
+ def update(id, with: id, **locals)
85
+ queued_updates.push turbo_stream.update(id, partial: with, locals: locals)
82
86
  end
83
87
 
84
88
  def remove(id)
85
89
  queued_updates.push turbo_stream.remove(id)
86
90
  end
87
91
 
92
+ def insert_before(id, with:, **locals)
93
+ queued_updates.push turbo_stream.before(id, partial: with, locals: locals)
94
+ end
95
+
96
+ def insert_after(id, with:, **locals)
97
+ queued_updates.push turbo_stream.after(id, partial: with, locals: locals)
98
+ end
99
+
88
100
  def open_modal(url, id: nil, size: nil, close: true)
89
101
  run_javascript "ui.modal.open(#{{url: url, id: id, size: size, close: close}.to_json})"
90
102
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Shimmer
4
- VERSION = "0.0.27"
4
+ VERSION = "0.0.29"
5
5
  end
metadata CHANGED
@@ -1,113 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shimmer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.27
4
+ version: 0.0.29
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jens Ravens
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-11-02 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: rake
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '13.0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '13.0'
27
- - !ruby/object:Gem::Dependency
28
- name: standardrb
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
- - !ruby/object:Gem::Dependency
42
- name: rubocop
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: rubocop-rails
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: rubocop-performance
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: rubocop-rspec
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: rubocop-rake
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
11
+ date: 2023-05-08 00:00:00.000000000 Z
12
+ dependencies: []
111
13
  description:
112
14
  email:
113
15
  - jens@nerdgeschoss.de
@@ -118,6 +20,7 @@ files:
118
20
  - ".editorconfig"
119
21
  - ".eslintrc.js"
120
22
  - ".prettierrc"
23
+ - ".rspec"
121
24
  - ".rubocop.yml"
122
25
  - ".ruby-version"
123
26
  - ".solargraph.yml"
@@ -126,14 +29,24 @@ files:
126
29
  - CODE_OF_CONDUCT.md
127
30
  - Gemfile
128
31
  - Gemfile.lock
32
+ - Guardfile
129
33
  - LICENSE.txt
130
34
  - README.md
131
35
  - Rakefile
36
+ - bin/_guard-core
132
37
  - bin/console
38
+ - bin/dev
39
+ - bin/guard
40
+ - bin/rake
41
+ - bin/rspec
133
42
  - bin/rubocop
134
43
  - bin/setup
135
44
  - bin/solargraph
136
45
  - config/rubocop_base.yml
46
+ - config/rubocop_extensions/graphql.yml
47
+ - config/rubocop_extensions/rails.yml
48
+ - config/rubocop_extensions/rspec.yml
49
+ - gemfiles/Gemfile-rails-7-0
137
50
  - lib/shimmer.rb
138
51
  - lib/shimmer/auth.rb
139
52
  - lib/shimmer/auth/apple_provider.rb
@@ -217,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
217
130
  - !ruby/object:Gem::Version
218
131
  version: '0'
219
132
  requirements: []
220
- rubygems_version: 3.2.32
133
+ rubygems_version: 3.1.6
221
134
  signing_key:
222
135
  specification_version: 4
223
136
  summary: Shimmer brings all the bells and whistles of a hotwired application, right