phlexible 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1d6d20a51dd488d65ba2a2ca84ffd702e5cff5505dce12595cdd1d2ca3f0c8b6
4
- data.tar.gz: 12bdc3b31f359f5e974ba21d7cb154145c3e0444604c6a20cf706d94eb6a07f8
3
+ metadata.gz: 27b319da9b017a6659e7a8372c67da3fe5f2d41c60d853a0ff095d97770f9269
4
+ data.tar.gz: 2d4ecd695d5b0265f4884eddb7ab90c942687953314b831c292971542377ebcf
5
5
  SHA512:
6
- metadata.gz: '09db42fc189ffefa64ca54bdedf9e171d0bf9d3084b4bc89a1c18953141f4fbad978e1a10b0d9d81a522df5ddf633ddca6f34aff214f2e69542f5ca197f232fa'
7
- data.tar.gz: 0bb3d5026764d1366fe31f1b57f05e8c0ec8eeb24947c73c85448ecb4e9f7f9fcf6a0fd425e3150548e34525405c483a86c0725df8f03690d5df0fff225f1768
6
+ metadata.gz: 2f20789eac80d0b8c65db6552f8528ff63dcd0952f3e2039bfc5ec4c200c700e8795979c9249d3e8f15a1103a2b8a3b79212dbd234632c3b94a7d305eb1442a7
7
+ data.tar.gz: df64f02ad32290c863b305db652043119098bc8034744dae36c45901fb23195994260f482ae2c6a9c2a161616f4a6913055abfec0659b5f7db6452ffbf11993e
data/Gemfile.lock CHANGED
@@ -1,74 +1,74 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- phlexible (0.2.0)
5
- phlex (~> 1.5.1)
6
- phlex-rails (~> 0.8.0)
4
+ phlexible (0.3.0)
5
+ phlex (~> 1.8.1)
6
+ phlex-rails (~> 1.0.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- actioncable (7.0.4.2)
12
- actionpack (= 7.0.4.2)
13
- activesupport (= 7.0.4.2)
11
+ actioncable (7.0.4.3)
12
+ actionpack (= 7.0.4.3)
13
+ activesupport (= 7.0.4.3)
14
14
  nio4r (~> 2.0)
15
15
  websocket-driver (>= 0.6.1)
16
- actionmailbox (7.0.4.2)
17
- actionpack (= 7.0.4.2)
18
- activejob (= 7.0.4.2)
19
- activerecord (= 7.0.4.2)
20
- activestorage (= 7.0.4.2)
21
- activesupport (= 7.0.4.2)
16
+ actionmailbox (7.0.4.3)
17
+ actionpack (= 7.0.4.3)
18
+ activejob (= 7.0.4.3)
19
+ activerecord (= 7.0.4.3)
20
+ activestorage (= 7.0.4.3)
21
+ activesupport (= 7.0.4.3)
22
22
  mail (>= 2.7.1)
23
23
  net-imap
24
24
  net-pop
25
25
  net-smtp
26
- actionmailer (7.0.4.2)
27
- actionpack (= 7.0.4.2)
28
- actionview (= 7.0.4.2)
29
- activejob (= 7.0.4.2)
30
- activesupport (= 7.0.4.2)
26
+ actionmailer (7.0.4.3)
27
+ actionpack (= 7.0.4.3)
28
+ actionview (= 7.0.4.3)
29
+ activejob (= 7.0.4.3)
30
+ activesupport (= 7.0.4.3)
31
31
  mail (~> 2.5, >= 2.5.4)
32
32
  net-imap
33
33
  net-pop
34
34
  net-smtp
35
35
  rails-dom-testing (~> 2.0)
36
- actionpack (7.0.4.2)
37
- actionview (= 7.0.4.2)
38
- activesupport (= 7.0.4.2)
36
+ actionpack (7.0.4.3)
37
+ actionview (= 7.0.4.3)
38
+ activesupport (= 7.0.4.3)
39
39
  rack (~> 2.0, >= 2.2.0)
40
40
  rack-test (>= 0.6.3)
41
41
  rails-dom-testing (~> 2.0)
42
42
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
43
- actiontext (7.0.4.2)
44
- actionpack (= 7.0.4.2)
45
- activerecord (= 7.0.4.2)
46
- activestorage (= 7.0.4.2)
47
- activesupport (= 7.0.4.2)
43
+ actiontext (7.0.4.3)
44
+ actionpack (= 7.0.4.3)
45
+ activerecord (= 7.0.4.3)
46
+ activestorage (= 7.0.4.3)
47
+ activesupport (= 7.0.4.3)
48
48
  globalid (>= 0.6.0)
49
49
  nokogiri (>= 1.8.5)
50
- actionview (7.0.4.2)
51
- activesupport (= 7.0.4.2)
50
+ actionview (7.0.4.3)
51
+ activesupport (= 7.0.4.3)
52
52
  builder (~> 3.1)
53
53
  erubi (~> 1.4)
54
54
  rails-dom-testing (~> 2.0)
55
55
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
56
- activejob (7.0.4.2)
57
- activesupport (= 7.0.4.2)
56
+ activejob (7.0.4.3)
57
+ activesupport (= 7.0.4.3)
58
58
  globalid (>= 0.3.6)
59
- activemodel (7.0.4.2)
60
- activesupport (= 7.0.4.2)
61
- activerecord (7.0.4.2)
62
- activemodel (= 7.0.4.2)
63
- activesupport (= 7.0.4.2)
64
- activestorage (7.0.4.2)
65
- actionpack (= 7.0.4.2)
66
- activejob (= 7.0.4.2)
67
- activerecord (= 7.0.4.2)
68
- activesupport (= 7.0.4.2)
59
+ activemodel (7.0.4.3)
60
+ activesupport (= 7.0.4.3)
61
+ activerecord (7.0.4.3)
62
+ activemodel (= 7.0.4.3)
63
+ activesupport (= 7.0.4.3)
64
+ activestorage (7.0.4.3)
65
+ actionpack (= 7.0.4.3)
66
+ activejob (= 7.0.4.3)
67
+ activerecord (= 7.0.4.3)
68
+ activesupport (= 7.0.4.3)
69
69
  marcel (~> 1.0)
70
70
  mini_mime (>= 1.1.0)
71
- activesupport (7.0.4.2)
71
+ activesupport (7.0.4.3)
72
72
  concurrent-ruby (~> 1.0, >= 1.0.2)
73
73
  i18n (>= 1.6, < 2)
74
74
  minitest (>= 5.1)
@@ -91,7 +91,7 @@ GEM
91
91
  i18n (1.12.0)
92
92
  concurrent-ruby (~> 1.0)
93
93
  json (2.6.3)
94
- loofah (2.19.1)
94
+ loofah (2.20.0)
95
95
  crass (~> 1.0.2)
96
96
  nokogiri (>= 1.5.9)
97
97
  mail (2.8.1)
@@ -112,72 +112,72 @@ GEM
112
112
  timeout
113
113
  net-smtp (0.3.3)
114
114
  net-protocol
115
- nio4r (2.5.8)
116
- nokogiri (1.14.2-arm64-darwin)
115
+ nio4r (2.5.9)
116
+ nokogiri (1.14.3-arm64-darwin)
117
117
  racc (~> 1.4)
118
- nokogiri (1.14.2-x86_64-darwin)
118
+ nokogiri (1.14.3-x86_64-darwin)
119
119
  racc (~> 1.4)
120
- nokogiri (1.14.2-x86_64-linux)
120
+ nokogiri (1.14.3-x86_64-linux)
121
121
  racc (~> 1.4)
122
- parallel (1.22.1)
123
- parser (3.2.1.0)
122
+ parallel (1.23.0)
123
+ parser (3.2.2.1)
124
124
  ast (~> 2.4.1)
125
- phlex (1.5.1)
125
+ phlex (1.8.1)
126
126
  concurrent-ruby (~> 1.2)
127
127
  erb (>= 4)
128
128
  zeitwerk (~> 2.6)
129
- phlex-rails (0.8.0)
130
- phlex (~> 1.5)
129
+ phlex-rails (1.0.0)
130
+ phlex (~> 1.7)
131
131
  rails (>= 6.1, < 8)
132
132
  zeitwerk (~> 2.6)
133
133
  phlex-testing-nokogiri (0.1.0)
134
134
  nokogiri (~> 1.13)
135
135
  phlex (>= 0.5)
136
136
  racc (1.6.2)
137
- rack (2.2.6.3)
138
- rack-test (2.0.2)
137
+ rack (2.2.6.4)
138
+ rack-test (2.1.0)
139
139
  rack (>= 1.3)
140
- rails (7.0.4.2)
141
- actioncable (= 7.0.4.2)
142
- actionmailbox (= 7.0.4.2)
143
- actionmailer (= 7.0.4.2)
144
- actionpack (= 7.0.4.2)
145
- actiontext (= 7.0.4.2)
146
- actionview (= 7.0.4.2)
147
- activejob (= 7.0.4.2)
148
- activemodel (= 7.0.4.2)
149
- activerecord (= 7.0.4.2)
150
- activestorage (= 7.0.4.2)
151
- activesupport (= 7.0.4.2)
140
+ rails (7.0.4.3)
141
+ actioncable (= 7.0.4.3)
142
+ actionmailbox (= 7.0.4.3)
143
+ actionmailer (= 7.0.4.3)
144
+ actionpack (= 7.0.4.3)
145
+ actiontext (= 7.0.4.3)
146
+ actionview (= 7.0.4.3)
147
+ activejob (= 7.0.4.3)
148
+ activemodel (= 7.0.4.3)
149
+ activerecord (= 7.0.4.3)
150
+ activestorage (= 7.0.4.3)
151
+ activesupport (= 7.0.4.3)
152
152
  bundler (>= 1.15.0)
153
- railties (= 7.0.4.2)
153
+ railties (= 7.0.4.3)
154
154
  rails-dom-testing (2.0.3)
155
155
  activesupport (>= 4.2.0)
156
156
  nokogiri (>= 1.6)
157
157
  rails-html-sanitizer (1.5.0)
158
158
  loofah (~> 2.19, >= 2.19.1)
159
- railties (7.0.4.2)
160
- actionpack (= 7.0.4.2)
161
- activesupport (= 7.0.4.2)
159
+ railties (7.0.4.3)
160
+ actionpack (= 7.0.4.3)
161
+ activesupport (= 7.0.4.3)
162
162
  method_source
163
163
  rake (>= 12.2)
164
164
  thor (~> 1.0)
165
165
  zeitwerk (~> 2.5)
166
166
  rainbow (3.1.1)
167
167
  rake (13.0.6)
168
- regexp_parser (2.7.0)
168
+ regexp_parser (2.8.0)
169
169
  rexml (3.2.5)
170
- rubocop (1.48.0)
170
+ rubocop (1.50.2)
171
171
  json (~> 2.3)
172
172
  parallel (~> 1.10)
173
173
  parser (>= 3.2.0.0)
174
174
  rainbow (>= 2.2.2, < 4.0)
175
175
  regexp_parser (>= 1.8, < 3.0)
176
176
  rexml (>= 3.2.5, < 4.0)
177
- rubocop-ast (>= 1.26.0, < 2.0)
177
+ rubocop-ast (>= 1.28.0, < 2.0)
178
178
  ruby-progressbar (~> 1.7)
179
179
  unicode-display_width (>= 2.4.0, < 3.0)
180
- rubocop-ast (1.27.0)
180
+ rubocop-ast (1.28.0)
181
181
  parser (>= 3.2.1.0)
182
182
  ruby-progressbar (1.13.0)
183
183
  sus (0.20.3)
data/README.md CHANGED
@@ -36,6 +36,32 @@ class UsersController
36
36
  end
37
37
  ```
38
38
 
39
+ #### `ControllerAttributes`
40
+
41
+ Include this module in your Phlex views to get access to the controller's instance variables. It
42
+ provides an explicit interface for accessing controller instance variables from the view.
43
+
44
+ ```ruby
45
+ class Views::Users::Index < Views::Base
46
+ include Phlexible::Rails::ControllerAttributes
47
+
48
+ controller_attribute :first_name, :last_name
49
+
50
+ def template
51
+ h1 { "#{@first_name} #{@last_name}" }
52
+ end
53
+ end
54
+ ```
55
+
56
+ ##### Options
57
+
58
+ - `attr_reader:` - If set to `true`, an `attr_reader` will be defined for the given attributes.
59
+ - `alias:` - If set, the given attribute will be aliased to the given alias value.
60
+
61
+ ```ruby
62
+ controller_attribute :users, attr_reader: true, alias: :my_users
63
+ ```
64
+
39
65
  #### `Responder`
40
66
 
41
67
  If you use [Responders](https://github.com/heartcombo/responders), Phlexible provides a responder to
@@ -65,24 +91,12 @@ class UsersController < ApplicationController
65
91
  end
66
92
  ```
67
93
 
68
- As Phlex views expect explicit arguments, you can pass these in the `:view_options` keyword
69
- argument:
70
-
71
- ```ruby
72
- class UsersController < ApplicationController
73
- def index
74
- respond_with User.all, view_options: { page: 1 }
75
- end
76
- end
77
-
78
- class Views::Users::Index < Phlex::HTML
79
- def initialize(users, page:); end
80
- end
81
- ```
82
-
83
- This responder requires the use of `ActionController::ImplicitRender`, so dont't forget to include
94
+ This responder requires the use of `ActionController::ImplicitRender`, so don't forget to include
84
95
  that in your `ApplicationController`.
85
96
 
97
+ If you use `ControllerAttributes` in your view, and define a `resource` attribute, the responder
98
+ will pass that to your view.
99
+
86
100
  #### `AElement`
87
101
 
88
102
  No need to call Rails `link_to` helper, when you can simply render an anchor tag directly with
@@ -112,17 +126,11 @@ end
112
126
 
113
127
  Generates a form containing a single button that submits to the URL created by the set of options.
114
128
 
115
- It is similar to Rails `button_to` helper, which accepts the value/content of the button as the
116
- first argument, and a URL or route helper as the second argument.
117
-
118
- ```ruby
119
- Phlexible::Rails::ButtonTo.new 'My Button', :root
120
- ```
121
-
122
- Alternatively you can pass a block; the result of which will be used as the value of the button.
129
+ It is similar to Rails `button_to` helper, which accepts the URL or route helper as the first
130
+ argument, and the value/content of the button as the block.
123
131
 
124
132
  ```ruby
125
- Phlexible::Rails::ButtonTo.new(:root) { 'Go Home 👉' }
133
+ Phlexible::Rails::ButtonTo.new(:root) { 'My Button' }
126
134
  ```
127
135
 
128
136
  The url argument accepts the same options as Rails `url_for`.
@@ -131,7 +139,7 @@ The form submits a POST request by default. You can specify a different HTTP ver
131
139
  option.
132
140
 
133
141
  ```ruby
134
- Phlexible::Rails::ButtonTo.new 'My Button', :root, method: :patch
142
+ Phlexible::Rails::ButtonTo.new(:root, method: :patch) { 'My Button' }
135
143
  ```
136
144
 
137
145
  ##### Options
@@ -11,48 +11,42 @@
11
11
  # You can do this:
12
12
  #
13
13
  # class UsersController
14
+ # include Phlexible::Rails::ActionController::ImplicitRender
14
15
  # end
15
16
  #
16
17
  module Phlexible
17
18
  module Rails
18
19
  module ActionController
19
20
  module ImplicitRender
20
- NUFFIN = 'NUFFIN'
21
-
22
21
  def default_render
23
- render_view_class || super
22
+ render_plex_view({ action: action_name }) || super
24
23
  end
25
24
 
26
- # Renders the Phlex view.
27
- def render_view_class(view_options = NUFFIN, render_options = {})
28
- klass = render_options&.key?(:action) ? phlex_view(render_options[:action]) : phlex_view
29
- return unless klass
30
-
31
- if view_options == NUFFIN
32
- view_options = render_options.delete(:view_options) { {} }
33
- render klass.new(**view_options), render_options
34
- else
35
- kwargs = {}
36
- kwargs = render_options.delete(:view_options) if render_options.key?(:view_options)
37
-
38
- render klass.new(view_options, **kwargs), render_options
25
+ def assign_phlex_accessors(pview)
26
+ pview.tap do |view|
27
+ view.__controller_attributes__.each do |attr|
28
+ view.instance_variable_set :"@#{attr}", view_assigns[attr.to_s]
29
+ end
39
30
  end
40
31
  end
41
32
 
42
- private
43
-
44
33
  def method_for_action(action_name)
45
- if action_method?(action_name)
46
- action_name
47
- elsif phlex_view
48
- '_handle_view_class'
49
- elsif respond_to?(:action_missing, true)
50
- '_handle_action_missing'
51
- end
34
+ super || ('default_phlex_render' if phlex_view(action_name))
52
35
  end
53
36
 
54
- def _handle_view_class(*_args)
55
- render_view_class
37
+ def default_phlex_render
38
+ render assign_phlex_accessors(phlex_view(action_name).new)
39
+ end
40
+
41
+ # @param options [Hash] At a minimum this may contain an `:action` key, which will be used
42
+ # as the name of the view to render. If no `:action` key is provided, the current
43
+ # `action_name` is used.
44
+ def render_plex_view(options)
45
+ options[:action] ||= action_name
46
+
47
+ return unless (view = phlex_view(options[:action]))
48
+
49
+ render assign_phlex_accessors(view.new)
56
50
  end
57
51
 
58
52
  def phlex_view(action_name = @_action_name)
@@ -11,20 +11,13 @@ module Phlexible
11
11
  BUTTON_TAG_METHOD_VERBS = %w[patch put delete].freeze
12
12
  DEFAULT_OPTIONS = { method: 'post', form_class: 'button_to' }.freeze
13
13
 
14
- def initialize(name = nil, url = nil, options = nil)
15
- @name = name
14
+ def initialize(url, options = nil)
16
15
  @url = url
17
16
  @options = options
18
17
  end
19
18
 
20
- # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
19
+ # rubocop:disable Metrics/AbcSize
21
20
  def template(&block)
22
- if block_given?
23
- @options = @url
24
- @url = @name
25
- @name = nil
26
- end
27
-
28
21
  action = helpers.url_for(@url)
29
22
  @options = DEFAULT_OPTIONS.merge((@options || {}).symbolize_keys)
30
23
 
@@ -38,7 +31,7 @@ module Phlexible
38
31
  block_given? ? button(**button_attrs, &block) : button(**button_attrs) { @name }
39
32
  end
40
33
  end
41
- # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity
34
+ # rubocop:enable Metrics/AbcSize
42
35
 
43
36
  private
44
37
 
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Include this module in your Phlex views to get access to the controller's instance variables. It
4
+ # provides an explicit interface for accessing controller instance variables from the view. Simply
5
+ # call `controller_attribute` with the name of any controller instance variable you want to access
6
+ # in your view.
7
+ #
8
+ # @example
9
+ # class Views::Users::Index < Views::Base
10
+ # controller_attribute :user_name
11
+ #
12
+ # def template
13
+ # h1 { @user_name }
14
+ # end
15
+ # end
16
+ #
17
+ # Options
18
+ # - `attr_reader:` - If set to `true`, an `attr_reader` will be defined for the given attributes.
19
+ # - `alias:` - If set, the given attribute will be aliased to the given alias value.
20
+ #
21
+ module Phlexible
22
+ module Rails
23
+ module ControllerAttributes
24
+ extend ActiveSupport::Concern
25
+
26
+ included do
27
+ class_attribute :__controller_attributes__, instance_predicate: false, default: Set.new
28
+ end
29
+
30
+ class_methods do
31
+ def controller_attribute(*names, **kwargs)
32
+ self.__controller_attributes__ += names
33
+
34
+ return if kwargs.empty?
35
+
36
+ names.each do |name|
37
+ attr_reader name if kwargs[:attr_reader]
38
+ alias_method kwargs[:alias], name if kwargs[:alias]
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -5,22 +5,25 @@ module Phlexible
5
5
  module Responder
6
6
  # Overridden to support implicit rendering of phlex views.
7
7
  def default_render
8
+ return super if format != :html
9
+
8
10
  if @default_response
9
11
  @default_response.call(options)
10
12
  elsif !get? && has_errors?
11
- render_phlex_view options.merge(status: :unprocessable_entity)
13
+ render_phlex_view({ status: error_status }.merge!(options))
12
14
  else
13
15
  render_phlex_view options
14
16
  end
15
17
  end
16
18
 
17
19
  # Render the Phlex view with the current resource. Falls back to default controller rendering
18
- # if no Phlex view exists. If a `view_options` keyword argument is given, this will be passed
19
- # as the keyword arguments of the view initializer.
20
+ # if no Phlex view exists. Also passes the current resource to the view, which is then
21
+ # available as `@resource`.
20
22
  #
21
- # @see Phlexible::Rails::ActionController::ImplicitRender#render_view_class
23
+ # @see Phlexible::Rails::ActionController::ImplicitRender#render_plex_view
22
24
  def render_phlex_view(options)
23
- controller.render_view_class(@resource, options) || controller.render(options)
25
+ controller.instance_variable_set :@resource, @resource
26
+ controller.render_plex_view(options) || controller.render(options)
24
27
  end
25
28
  alias render render_phlex_view
26
29
  end
@@ -4,6 +4,7 @@ require 'phlex-rails'
4
4
 
5
5
  module Phlexible
6
6
  module Rails
7
+ autoload :ControllerAttributes, 'phlexible/rails/controller_attributes'
7
8
  autoload :Responder, 'phlexible/rails/responder'
8
9
  autoload :AElement, 'phlexible/rails/a_element'
9
10
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Phlexible
4
- VERSION = '0.3.0'
4
+ VERSION = '0.4.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phlexible
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joel Moss
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-03-07 00:00:00.000000000 Z
11
+ date: 2023-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: phlex
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.5.1
19
+ version: 1.8.1
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: 1.5.1
26
+ version: 1.8.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: phlex-rails
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.8.0
33
+ version: 1.0.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.8.0
40
+ version: 1.0.0
41
41
  description: A bunch of helpers and goodies intended to make life with Phlex even
42
42
  easier!
43
43
  email:
@@ -72,6 +72,7 @@ files:
72
72
  - lib/phlexible/rails/a_element.rb
73
73
  - lib/phlexible/rails/action_controller/implicit_render.rb
74
74
  - lib/phlexible/rails/button_to.rb
75
+ - lib/phlexible/rails/controller_attributes.rb
75
76
  - lib/phlexible/rails/responder.rb
76
77
  - lib/phlexible/version.rb
77
78
  homepage: https://github.com/joelmoss/phlexible
@@ -97,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
98
  - !ruby/object:Gem::Version
98
99
  version: '0'
99
100
  requirements: []
100
- rubygems_version: 3.4.6
101
+ rubygems_version: 3.4.10
101
102
  signing_key:
102
103
  specification_version: 4
103
104
  summary: A bunch of helpers and goodies intended to make life with Phlex even easier!