protos-protoform 0.1.1 → 1.0.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: 3bc26745e32d0e8702d9fdb3606083afbe57843fa28ccd02672bf9e03e9d2e03
4
- data.tar.gz: 44765738946f4fdd500bbb9e120ba9fa0d744206606bdac925a7abae9fa19ade
3
+ metadata.gz: b9c6a8ce3964ea0d3c2fc908717bbce4d4d8351c44406a771f2c3e3a43317cda
4
+ data.tar.gz: 6ae4693df543d43e4b1825e58f4a3c859cd9fab82e13e2110b8025a73c3328ab
5
5
  SHA512:
6
- metadata.gz: a4268976b1a3658b4f2de87f45570c78d92867931a2712c855bd45022471fda6981e8c2c06ef146bab9b4d740a69984d71cd22c77c3723e59dc0b5f2fefeeb7b
7
- data.tar.gz: f39dda31e9dd6527326b09e23111630f407d4c1adb53c2d21e113c668f5684691f78f142a9a43603d40abcd96f18a8b14c319a657aaccc9215de0e27d61b9bd6
6
+ metadata.gz: 1bb2157045f037a1deedd303f1da8d6a20eb446dc2168f1a13f89d238488770e98933196521790bce0e5bfa906ab7f334912281e037153ce207def8e20cf8068
7
+ data.tar.gz: 2f5cc878190c728c38b15be679cbef642c5587df7d4c1e5010239d667df2e98da0ae2f473ed91b9a4ff0f052d054505c10cc32cc6771c02089ae0fc4bff400f3
data/Gemfile CHANGED
@@ -6,8 +6,8 @@ source "https://rubygems.org"
6
6
  gemspec
7
7
 
8
8
  gem "activemodel"
9
+ gem "capybara"
9
10
  gem "debug"
10
- gem "phlex-testing-capybara"
11
11
  gem "rake"
12
12
  gem "rspec"
13
13
  gem "rubocop-inhouse"
data/Gemfile.lock CHANGED
@@ -1,12 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- protos-protoform (0.1.0)
5
- activerecord (~> 8.0)
6
- activesupport (~> 8.0)
7
- phlex-rails (~> 1.0)
8
- protos (~> 0.7)
9
- zeitwerk (~> 2.7)
4
+ protos-protoform (1.0.0)
5
+ activerecord (~> 8)
6
+ activesupport (~> 8)
7
+ phlex-rails (~> 2)
8
+ protos (~> 1)
9
+ zeitwerk (~> 2)
10
10
 
11
11
  GEM
12
12
  remote: https://rubygems.org/
@@ -69,7 +69,7 @@ GEM
69
69
  debug (1.10.0)
70
70
  irb (~> 1.10)
71
71
  reline (>= 0.3.8)
72
- diff-lcs (1.5.1)
72
+ diff-lcs (1.6.0)
73
73
  drb (2.2.1)
74
74
  dry-core (1.1.0)
75
75
  concurrent-ruby (~> 1.0)
@@ -82,7 +82,7 @@ GEM
82
82
  concurrent-ruby (~> 1.0)
83
83
  dry-core (~> 1.1)
84
84
  zeitwerk (~> 2.6)
85
- dry-types (1.8.1)
85
+ dry-types (1.8.2)
86
86
  bigdecimal (~> 3.0)
87
87
  concurrent-ruby (~> 1.0)
88
88
  dry-core (~> 1.0)
@@ -97,9 +97,10 @@ GEM
97
97
  pp (>= 0.6.0)
98
98
  rdoc (>= 4.0.0)
99
99
  reline (>= 0.4.2)
100
- json (2.9.1)
101
- language_server-protocol (3.17.0.3)
102
- logger (1.6.5)
100
+ json (2.10.1)
101
+ language_server-protocol (3.17.0.4)
102
+ lint_roller (1.1.0)
103
+ logger (1.6.6)
103
104
  loofah (2.24.0)
104
105
  crass (~> 1.0.2)
105
106
  nokogiri (>= 1.12.0)
@@ -107,45 +108,41 @@ GEM
107
108
  mini_mime (1.1.5)
108
109
  mini_portile2 (2.8.8)
109
110
  minitest (5.25.4)
110
- nokogiri (1.18.2)
111
+ nokogiri (1.18.3)
111
112
  mini_portile2 (~> 2.8.2)
112
113
  racc (~> 1.4)
113
- nokogiri (1.18.2-aarch64-linux-gnu)
114
+ nokogiri (1.18.3-aarch64-linux-gnu)
114
115
  racc (~> 1.4)
115
- nokogiri (1.18.2-arm-linux-gnu)
116
+ nokogiri (1.18.3-arm-linux-gnu)
116
117
  racc (~> 1.4)
117
- nokogiri (1.18.2-arm64-darwin)
118
+ nokogiri (1.18.3-arm64-darwin)
118
119
  racc (~> 1.4)
119
- nokogiri (1.18.2-x86_64-darwin)
120
+ nokogiri (1.18.3-x86_64-darwin)
120
121
  racc (~> 1.4)
121
- nokogiri (1.18.2-x86_64-linux-gnu)
122
+ nokogiri (1.18.3-x86_64-linux-gnu)
122
123
  racc (~> 1.4)
123
124
  parallel (1.26.3)
124
- parser (3.3.7.0)
125
+ parser (3.3.7.1)
125
126
  ast (~> 2.4.1)
126
127
  racc
127
- phlex (1.11.0)
128
- phlex-rails (1.2.2)
129
- phlex (>= 1.10, < 2)
128
+ phlex (2.0.2)
129
+ phlex-rails (2.0.2)
130
+ phlex (~> 2.0.2)
130
131
  railties (>= 6.1, < 9)
131
- phlex-testing-capybara (0.1.0)
132
- capybara (~> 3.38)
133
- phlex (>= 0.5)
134
132
  pp (0.6.2)
135
133
  prettyprint
136
134
  prettyprint (0.2.0)
137
- protos (0.7.0)
138
- dry-core (~> 1.0)
139
- dry-initializer (~> 3.1)
140
- dry-types (~> 1.7)
141
- phlex (~> 1.10)
142
- tailwind_merge (~> 0.10)
135
+ protos (1.0.1)
136
+ dry-initializer (~> 3.2)
137
+ dry-types (~> 1.8)
138
+ phlex (~> 2)
139
+ tailwind_merge (~> 1)
143
140
  psych (5.2.3)
144
141
  date
145
142
  stringio
146
143
  public_suffix (6.0.1)
147
144
  racc (1.8.1)
148
- rack (3.1.8)
145
+ rack (3.1.10)
149
146
  rack-session (2.1.0)
150
147
  base64 (>= 0.1.0)
151
148
  rack (>= 3.0.0)
@@ -170,7 +167,7 @@ GEM
170
167
  zeitwerk (~> 2.6)
171
168
  rainbow (3.1.1)
172
169
  rake (13.2.1)
173
- rdoc (6.11.0)
170
+ rdoc (6.12.0)
174
171
  psych (>= 4.0.0)
175
172
  regexp_parser (2.10.0)
176
173
  reline (0.6.0)
@@ -179,7 +176,7 @@ GEM
179
176
  rspec-core (~> 3.13.0)
180
177
  rspec-expectations (~> 3.13.0)
181
178
  rspec-mocks (~> 3.13.0)
182
- rspec-core (3.13.2)
179
+ rspec-core (3.13.3)
183
180
  rspec-support (~> 3.13.0)
184
181
  rspec-expectations (3.13.3)
185
182
  diff-lcs (>= 1.2.0, < 2.0)
@@ -188,51 +185,56 @@ GEM
188
185
  diff-lcs (>= 1.2.0, < 2.0)
189
186
  rspec-support (~> 3.13.0)
190
187
  rspec-support (3.13.2)
191
- rubocop (1.71.0)
188
+ rubocop (1.73.1)
192
189
  json (~> 2.3)
193
- language_server-protocol (>= 3.17.0)
190
+ language_server-protocol (~> 3.17.0.2)
191
+ lint_roller (~> 1.1.0)
194
192
  parallel (~> 1.10)
195
193
  parser (>= 3.3.0.2)
196
194
  rainbow (>= 2.2.2, < 4.0)
197
195
  regexp_parser (>= 2.9.3, < 3.0)
198
- rubocop-ast (>= 1.36.2, < 2.0)
196
+ rubocop-ast (>= 1.38.0, < 2.0)
199
197
  ruby-progressbar (~> 1.7)
200
198
  unicode-display_width (>= 2.4.0, < 4.0)
201
- rubocop-ast (1.37.0)
199
+ rubocop-ast (1.38.1)
202
200
  parser (>= 3.3.1.0)
203
201
  rubocop-capybara (2.21.0)
204
202
  rubocop (~> 1.41)
205
203
  rubocop-factory_bot (2.26.1)
206
204
  rubocop (~> 1.61)
207
- rubocop-inhouse (0.2.2)
208
- rubocop (>= 1.5)
209
- rubocop-capybara (>= 2.1)
210
- rubocop-factory_bot (>= 2.2)
211
- rubocop-performance (>= 1.1)
205
+ rubocop-inhouse (0.2.3)
206
+ rubocop (>= 1.72)
207
+ rubocop-capybara (>= 2.21)
208
+ rubocop-factory_bot (>= 2.26)
209
+ rubocop-performance (>= 1.24)
212
210
  rubocop-rails (>= 2.2)
213
- rubocop-rake (>= 0.6)
214
- rubocop-rspec (>= 2.2)
215
- rubocop-rspec_rails (>= 2.2)
216
- rubocop-performance (1.23.1)
217
- rubocop (>= 1.48.1, < 2.0)
218
- rubocop-ast (>= 1.31.1, < 2.0)
219
- rubocop-rails (2.29.1)
211
+ rubocop-rake (>= 0.7)
212
+ rubocop-rspec (>= 3.5)
213
+ rubocop-rspec_rails (>= 2.30)
214
+ rubocop-performance (1.24.0)
215
+ lint_roller (~> 1.1)
216
+ rubocop (>= 1.72.1, < 2.0)
217
+ rubocop-ast (>= 1.38.0, < 2.0)
218
+ rubocop-rails (2.30.2)
220
219
  activesupport (>= 4.2.0)
220
+ lint_roller (~> 1.1)
221
221
  rack (>= 1.1)
222
- rubocop (>= 1.52.0, < 2.0)
223
- rubocop-ast (>= 1.31.1, < 2.0)
224
- rubocop-rake (0.6.0)
225
- rubocop (~> 1.0)
226
- rubocop-rspec (3.4.0)
227
- rubocop (~> 1.61)
222
+ rubocop (>= 1.72.1, < 2.0)
223
+ rubocop-ast (>= 1.38.0, < 2.0)
224
+ rubocop-rake (0.7.1)
225
+ lint_roller (~> 1.1)
226
+ rubocop (>= 1.72.1)
227
+ rubocop-rspec (3.5.0)
228
+ lint_roller (~> 1.1)
229
+ rubocop (~> 1.72, >= 1.72.1)
228
230
  rubocop-rspec_rails (2.30.0)
229
231
  rubocop (~> 1.61)
230
232
  rubocop-rspec (~> 3, >= 3.0.1)
231
233
  ruby-progressbar (1.13.0)
232
234
  securerandom (0.4.1)
233
235
  sin_lru_redux (2.5.0)
234
- stringio (3.1.2)
235
- tailwind_merge (0.16.0)
236
+ stringio (3.1.5)
237
+ tailwind_merge (1.0.0)
236
238
  sin_lru_redux (~> 2.5)
237
239
  thor (1.3.2)
238
240
  timeout (0.4.3)
@@ -241,11 +243,11 @@ GEM
241
243
  unicode-display_width (3.1.4)
242
244
  unicode-emoji (~> 4.0, >= 4.0.4)
243
245
  unicode-emoji (4.0.4)
244
- uri (1.0.2)
246
+ uri (1.0.3)
245
247
  useragent (0.16.11)
246
248
  xpath (3.2.0)
247
249
  nokogiri (~> 1.8)
248
- zeitwerk (2.7.1)
250
+ zeitwerk (2.7.2)
249
251
 
250
252
  PLATFORMS
251
253
  aarch64-linux
@@ -257,8 +259,8 @@ PLATFORMS
257
259
 
258
260
  DEPENDENCIES
259
261
  activemodel
262
+ capybara
260
263
  debug
261
- phlex-testing-capybara
262
264
  protos-protoform!
263
265
  rake
264
266
  rspec
@@ -27,7 +27,7 @@ module Protoform
27
27
 
28
28
  def create_application_form
29
29
  template "application_form.rb",
30
- Rails.root.join("app/views/forms/application_form.rb")
30
+ Rails.root.join("app/views/forms/application_form.rb")
31
31
  end
32
32
 
33
33
  private
@@ -20,7 +20,7 @@ class ApplicationForm < Protoform::Rails::Form
20
20
  end
21
21
  end
22
22
 
23
- def around_template(&block)
23
+ def around_template(&)
24
24
  super do
25
25
  error_messages
26
26
  yield
@@ -34,7 +34,7 @@ class ApplicationForm < Protoform::Rails::Form
34
34
  div(style: "color: red;") do
35
35
  h2 do
36
36
  "#{pluralize model.errors.count,
37
- "error"} prohibited this post from being saved:"
37
+ "error"} prohibited this post from being saved:"
38
38
  end
39
39
  ul do
40
40
  model.errors.each do |error|
@@ -31,8 +31,8 @@ module Protoform
31
31
 
32
32
  # Wraps a field that's an array of values with a bunch of fields
33
33
  # that are indexed with the array's index.
34
- def collection(&block)
35
- @collection ||= FieldCollection.new(field: self, &block)
34
+ def collection(&)
35
+ @collection ||= FieldCollection.new(field: self, &)
36
36
  end
37
37
  end
38
38
  end
@@ -38,13 +38,13 @@ module Protoform
38
38
  # end
39
39
  # end
40
40
  # ```
41
- def namespace(key, &block)
41
+ def namespace(key, &)
42
42
  create_child(
43
43
  key:,
44
44
  child_class: self.class,
45
45
  field_class: @field_class,
46
46
  object: object_for(key:),
47
- &block
47
+ &
48
48
  )
49
49
  end
50
50
 
@@ -84,12 +84,12 @@ module Protoform
84
84
  # ```
85
85
  # The object within the block is a `Namespace` object that maps each object
86
86
  # within the enumerable to another `Namespace` or `Field`.
87
- def collection(key, &block)
87
+ def collection(key, &)
88
88
  create_child(
89
89
  key:,
90
90
  child_class: NamespaceCollection,
91
91
  field_class: @field_class,
92
- &block
92
+ &
93
93
  )
94
94
  end
95
95
 
@@ -106,8 +106,8 @@ module Protoform
106
106
 
107
107
  # Iterates through the children of the current namespace, which could be
108
108
  # `Namespace` or `Field` objects.
109
- def each(&block)
110
- @children.values.each(&block)
109
+ def each(&)
110
+ @children.values.each(&)
111
111
  end
112
112
 
113
113
  # Assigns a hash to the current namespace and children namespace.
@@ -120,8 +120,8 @@ module Protoform
120
120
  end
121
121
 
122
122
  # Creates a root Namespace, which is essentially a form.
123
- def self.root(*, **, &block)
124
- new(*, parent: nil, **, &block)
123
+ def self.root(*, **, &)
124
+ new(*, parent: nil, **, &)
125
125
  end
126
126
 
127
127
  protected
@@ -23,8 +23,8 @@ module Protoform
23
23
  end
24
24
  end
25
25
 
26
- def each(&block)
27
- @namespaces.each(&block)
26
+ def each(&)
27
+ @namespaces.each(&)
28
28
  end
29
29
 
30
30
  private
@@ -31,20 +31,28 @@ module Protoform
31
31
 
32
32
  def options(*collection)
33
33
  map_options(collection).each do |key, value|
34
- option(selected: selected_value_for(key), value: key) { value }
34
+ option(selected: selected_value_for(key), value: key.to_s) { value }
35
35
  end
36
36
  end
37
37
 
38
- def blank_option(&block)
39
- option(selected: field.value.nil?, &block)
38
+ def blank_option(&)
39
+ option(selected: field.value.nil?, &)
40
40
  end
41
41
 
42
- def true_option(&block)
43
- option(selected: field.value == true, value: true.to_s, &block)
42
+ def true_option(&)
43
+ option(
44
+ selected: field.value == true,
45
+ value: true.to_s,
46
+ &
47
+ )
44
48
  end
45
49
 
46
- def false_option(&block)
47
- option(selected: field.value == false, value: false.to_s, &block)
50
+ def false_option(&)
51
+ option(
52
+ selected: field.value == false,
53
+ value: false.to_s,
54
+ &
55
+ )
48
56
  end
49
57
 
50
58
  protected
@@ -60,12 +60,12 @@ module Protoform
60
60
  Components::Textarea.new(self, ...)
61
61
  end
62
62
 
63
- def select(*collection, **attributes, &block)
63
+ def select(*collection, **attributes, &)
64
64
  Components::Select.new(
65
65
  self,
66
66
  collection:,
67
67
  **attributes,
68
- &block
68
+ &
69
69
  )
70
70
  end
71
71
 
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "phlex-rails"
4
+
3
5
  module Protoform
4
6
  module Rails
5
7
  # A Protos::Component class that accepts a model and sets
@@ -14,13 +16,15 @@ module Protoform
14
16
  # `authenticity_toklen_field` method and the HTTP verb via the
15
17
  # `_method_field`.
16
18
  class Form < Component
19
+ include Phlex::Rails::Helpers::URLFor
20
+ include Phlex::Rails::Helpers::FormAuthenticityToken
21
+
17
22
  param :model, reader: false
18
23
  option :authenticity_token, reader: false, default: -> { true }
19
- option :helpers, reader: false, default: -> { }
20
24
  option :action, reader: false, default: -> { }
21
25
  option :method,
22
- reader: false,
23
- default: -> { }
26
+ reader: false,
27
+ default: -> { }
24
28
  option :namespace, reader: false, default: -> do
25
29
  Namespace.root(key, object: @model, field_class: self.class::Field)
26
30
  end
@@ -45,7 +49,7 @@ module Protoform
45
49
  @namespace.serialize(...)
46
50
  end
47
51
 
48
- def around_template(&block)
52
+ def around_template(&)
49
53
  form_tag do
50
54
  authenticity_token_field if authenticity_token?
51
55
  _method_field if method_field?
@@ -54,26 +58,25 @@ module Protoform
54
58
  end
55
59
  end
56
60
 
57
- def form_tag(&block)
61
+ def form_tag(&)
58
62
  form(
59
63
  action: form_action,
60
64
  method: form_method,
61
65
  **attrs,
62
- &block
66
+ &
63
67
  )
64
68
  end
65
69
 
66
- def view_template(&block)
67
- yield_content(&block)
70
+ def view_template(&)
71
+ yield_content(&)
68
72
  end
69
73
 
70
74
  def submit(value = submit_value, **attributes)
71
75
  input(
72
- **attributes.merge(
73
- name: "commit",
74
- type: "submit",
75
- value:
76
- )
76
+ **attributes,
77
+ name: "commit",
78
+ type: "submit",
79
+ value:
77
80
  )
78
81
  end
79
82
 
@@ -100,7 +103,7 @@ module Protoform
100
103
  input(
101
104
  name: "authenticity_token",
102
105
  type: "hidden",
103
- value: helpers.form_authenticity_token
106
+ value: @authenticity_token || form_authenticity_token
104
107
  )
105
108
  end
106
109
 
@@ -127,18 +130,12 @@ module Protoform
127
130
  end
128
131
 
129
132
  def form_action
130
- @form_action ||= @action || helpers.url_for(action: resource_action)
133
+ @form_action ||= @action || url_for(action: resource_action)
131
134
  end
132
135
 
133
136
  def form_method
134
137
  @method == :get ? :get : :post
135
138
  end
136
-
137
- private
138
-
139
- def helpers
140
- @helpers ||= super
141
- end
142
139
  end
143
140
  end
144
141
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Protoform
4
- VERSION = "0.1.1"
4
+ VERSION = "1.0.0"
5
5
  end
@@ -42,10 +42,10 @@ Gem::Specification.new do |spec|
42
42
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
43
43
  spec.require_paths = ["lib"]
44
44
 
45
- spec.add_dependency "activerecord", "~> 8.0"
46
- spec.add_dependency "activesupport", "~> 8.0"
47
- spec.add_dependency "phlex-rails", "~> 1.0"
48
- spec.add_dependency "protos", "~> 0.7"
49
- spec.add_dependency "zeitwerk", "~> 2.7"
45
+ spec.add_dependency "activerecord", "~> 8"
46
+ spec.add_dependency "activesupport", "~> 8"
47
+ spec.add_dependency "phlex-rails", "~> 2"
48
+ spec.add_dependency "protos", "~> 1"
49
+ spec.add_dependency "zeitwerk", "~> 2"
50
50
  spec.metadata["rubygems_mfa_required"] = "true"
51
51
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: protos-protoform
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nolan Tait
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-01-27 00:00:00.000000000 Z
10
+ date: 2025-03-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: activerecord
@@ -15,70 +15,70 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '8.0'
18
+ version: '8'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: '8.0'
25
+ version: '8'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: activesupport
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '8.0'
32
+ version: '8'
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: '8.0'
39
+ version: '8'
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: phlex-rails
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '1.0'
46
+ version: '2'
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '1.0'
53
+ version: '2'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: protos
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '0.7'
60
+ version: '1'
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '0.7'
67
+ version: '1'
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: zeitwerk
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: '2.7'
74
+ version: '2'
75
75
  type: :runtime
76
76
  prerelease: false
77
77
  version_requirements: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: '2.7'
81
+ version: '2'
82
82
  description: Build phlex based forms using Rails conventions
83
83
  email:
84
84
  - nolanjtait@gmail.com