superview 0.1.2 → 0.1.3

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: 185e73cab73c23d8de233721cde393cb453868e1cf3a6f5ef8b322b9b613ff32
4
- data.tar.gz: 6bca9e94731ecd625cf20f904f0cac42fe969ac63ac72913de75f6a176f18a1e
3
+ metadata.gz: 95b73938446d68225ef15422d94071e4cdf77856aedb64f9f9b96aca8dd75217
4
+ data.tar.gz: 27e686bdfacf05a9d265ba919cf5a2ad2d87a074975ccc33871f2f20498555df
5
5
  SHA512:
6
- metadata.gz: a4dfdc42e1697576ac22f8af14c0d6f75be71b198b19a5c6e3097c895db0eb114401af25cf30c39e3615999f4bb41907bde50bc70e22aa6520c1c9805a8eb230
7
- data.tar.gz: d00f990562345a341b69ac4c86ef72bf0deef57defbe4dcdfdfa0b9759079f8e43f57005d59c8058cec368fefa886090814517de823efc2dd7b94b84601dd896
6
+ metadata.gz: 6e7ddd62b1cbb25eb2e5a3f45f1b161c2973bb8ba33af94469141d2bad9f27f6925d2f3d6af3e777f338e1b9943111277e8250ff56ad7a7ee255ed8ad416ca95
7
+ data.tar.gz: 14549c8278d4d55f0f497c27ef26a7b5208d83e7b3c9e4d3cb98a175856986713109d3f630ba8feada62ea6da269f4bc9b006a58c0ac00b62329f49feeb11974
data/Gemfile CHANGED
@@ -7,6 +7,4 @@ gemspec
7
7
 
8
8
  gem "rake", "~> 13.0"
9
9
 
10
- gem "rspec", "~> 3.0"
11
-
12
- gem "rails", "~> 7.0"
10
+ gem "rspec-rails", "~> 7.0"
data/Gemfile.lock CHANGED
@@ -1,189 +1,138 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- superview (0.1.2)
5
- phlex-rails (~> 1.0)
4
+ superview (0.1.3)
5
+ phlex-rails (>= 1.0, < 3.0)
6
6
  zeitwerk (~> 2.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- actioncable (7.0.7)
12
- actionpack (= 7.0.7)
13
- activesupport (= 7.0.7)
14
- nio4r (~> 2.0)
15
- websocket-driver (>= 0.6.1)
16
- actionmailbox (7.0.7)
17
- actionpack (= 7.0.7)
18
- activejob (= 7.0.7)
19
- activerecord (= 7.0.7)
20
- activestorage (= 7.0.7)
21
- activesupport (= 7.0.7)
22
- mail (>= 2.7.1)
23
- net-imap
24
- net-pop
25
- net-smtp
26
- actionmailer (7.0.7)
27
- actionpack (= 7.0.7)
28
- actionview (= 7.0.7)
29
- activejob (= 7.0.7)
30
- activesupport (= 7.0.7)
31
- mail (~> 2.5, >= 2.5.4)
32
- net-imap
33
- net-pop
34
- net-smtp
35
- rails-dom-testing (~> 2.0)
36
- actionpack (7.0.7)
37
- actionview (= 7.0.7)
38
- activesupport (= 7.0.7)
39
- rack (~> 2.0, >= 2.2.4)
40
- rack-test (>= 0.6.3)
41
- rails-dom-testing (~> 2.0)
42
- rails-html-sanitizer (~> 1.0, >= 1.2.0)
43
- actiontext (7.0.7)
44
- actionpack (= 7.0.7)
45
- activerecord (= 7.0.7)
46
- activestorage (= 7.0.7)
47
- activesupport (= 7.0.7)
48
- globalid (>= 0.6.0)
11
+ actionpack (8.0.1)
12
+ actionview (= 8.0.1)
13
+ activesupport (= 8.0.1)
49
14
  nokogiri (>= 1.8.5)
50
- actionview (7.0.7)
51
- activesupport (= 7.0.7)
15
+ rack (>= 2.2.4)
16
+ rack-session (>= 1.0.1)
17
+ rack-test (>= 0.6.3)
18
+ rails-dom-testing (~> 2.2)
19
+ rails-html-sanitizer (~> 1.6)
20
+ useragent (~> 0.16)
21
+ actionview (8.0.1)
22
+ activesupport (= 8.0.1)
52
23
  builder (~> 3.1)
53
- erubi (~> 1.4)
54
- rails-dom-testing (~> 2.0)
55
- rails-html-sanitizer (~> 1.1, >= 1.2.0)
56
- activejob (7.0.7)
57
- activesupport (= 7.0.7)
58
- globalid (>= 0.3.6)
59
- activemodel (7.0.7)
60
- activesupport (= 7.0.7)
61
- activerecord (7.0.7)
62
- activemodel (= 7.0.7)
63
- activesupport (= 7.0.7)
64
- activestorage (7.0.7)
65
- actionpack (= 7.0.7)
66
- activejob (= 7.0.7)
67
- activerecord (= 7.0.7)
68
- activesupport (= 7.0.7)
69
- marcel (~> 1.0)
70
- mini_mime (>= 1.1.0)
71
- activesupport (7.0.7)
72
- concurrent-ruby (~> 1.0, >= 1.0.2)
24
+ erubi (~> 1.11)
25
+ rails-dom-testing (~> 2.2)
26
+ rails-html-sanitizer (~> 1.6)
27
+ activesupport (8.0.1)
28
+ base64
29
+ benchmark (>= 0.3)
30
+ bigdecimal
31
+ concurrent-ruby (~> 1.0, >= 1.3.1)
32
+ connection_pool (>= 2.2.5)
33
+ drb
73
34
  i18n (>= 1.6, < 2)
35
+ logger (>= 1.4.2)
74
36
  minitest (>= 5.1)
75
- tzinfo (~> 2.0)
76
- builder (3.2.4)
77
- cgi (0.3.6)
78
- concurrent-ruby (1.2.2)
37
+ securerandom (>= 0.3)
38
+ tzinfo (~> 2.0, >= 2.0.5)
39
+ uri (>= 0.13.1)
40
+ base64 (0.2.0)
41
+ benchmark (0.4.0)
42
+ bigdecimal (3.1.8)
43
+ builder (3.3.0)
44
+ concurrent-ruby (1.3.4)
45
+ connection_pool (2.4.1)
79
46
  crass (1.0.6)
80
- date (3.3.3)
81
- diff-lcs (1.5.0)
82
- erb (4.0.2)
83
- cgi (>= 0.3.3)
84
- erubi (1.12.0)
85
- globalid (1.1.0)
86
- activesupport (>= 5.0)
87
- i18n (1.14.1)
47
+ date (3.4.1)
48
+ diff-lcs (1.5.1)
49
+ drb (2.2.1)
50
+ erubi (1.13.0)
51
+ i18n (1.14.6)
88
52
  concurrent-ruby (~> 1.0)
89
- loofah (2.21.3)
53
+ io-console (0.8.0)
54
+ irb (1.14.2)
55
+ rdoc (>= 4.0.0)
56
+ reline (>= 0.4.2)
57
+ logger (1.6.3)
58
+ loofah (2.23.1)
90
59
  crass (~> 1.0.2)
91
60
  nokogiri (>= 1.12.0)
92
- mail (2.8.1)
93
- mini_mime (>= 0.1.1)
94
- net-imap
95
- net-pop
96
- net-smtp
97
- marcel (1.0.2)
98
- method_source (1.0.0)
99
- mini_mime (1.1.5)
100
- mini_portile2 (2.8.5)
101
- minitest (5.19.0)
102
- net-imap (0.3.7)
103
- date
104
- net-protocol
105
- net-pop (0.1.2)
106
- net-protocol
107
- net-protocol (0.2.1)
108
- timeout
109
- net-smtp (0.3.3)
110
- net-protocol
111
- nio4r (2.5.9)
112
- nokogiri (1.15.4)
113
- mini_portile2 (~> 2.8.2)
61
+ minitest (5.25.4)
62
+ nokogiri (1.17.2-arm64-darwin)
114
63
  racc (~> 1.4)
115
- phlex (1.8.1)
116
- concurrent-ruby (~> 1.2)
117
- erb (>= 4)
118
- zeitwerk (~> 2.6)
119
- phlex-rails (1.0.0)
120
- phlex (~> 1.7)
121
- rails (>= 6.1, < 8)
122
- zeitwerk (~> 2.6)
123
- racc (1.7.1)
124
- rack (2.2.8)
64
+ nokogiri (1.17.2-x86_64-linux)
65
+ racc (~> 1.4)
66
+ phlex (1.11.0)
67
+ phlex-rails (1.2.2)
68
+ phlex (>= 1.10, < 2)
69
+ railties (>= 6.1, < 9)
70
+ psych (5.2.1)
71
+ date
72
+ stringio
73
+ racc (1.8.1)
74
+ rack (3.1.8)
75
+ rack-session (2.0.0)
76
+ rack (>= 3.0.0)
125
77
  rack-test (2.1.0)
126
78
  rack (>= 1.3)
127
- rails (7.0.7)
128
- actioncable (= 7.0.7)
129
- actionmailbox (= 7.0.7)
130
- actionmailer (= 7.0.7)
131
- actionpack (= 7.0.7)
132
- actiontext (= 7.0.7)
133
- actionview (= 7.0.7)
134
- activejob (= 7.0.7)
135
- activemodel (= 7.0.7)
136
- activerecord (= 7.0.7)
137
- activestorage (= 7.0.7)
138
- activesupport (= 7.0.7)
139
- bundler (>= 1.15.0)
140
- railties (= 7.0.7)
79
+ rackup (2.2.1)
80
+ rack (>= 3)
141
81
  rails-dom-testing (2.2.0)
142
82
  activesupport (>= 5.0.0)
143
83
  minitest
144
84
  nokogiri (>= 1.6)
145
- rails-html-sanitizer (1.6.0)
85
+ rails-html-sanitizer (1.6.2)
146
86
  loofah (~> 2.21)
147
- nokogiri (~> 1.14)
148
- railties (7.0.7)
149
- actionpack (= 7.0.7)
150
- activesupport (= 7.0.7)
151
- method_source
87
+ nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
88
+ railties (8.0.1)
89
+ actionpack (= 8.0.1)
90
+ activesupport (= 8.0.1)
91
+ irb (~> 1.13)
92
+ rackup (>= 1.0.0)
152
93
  rake (>= 12.2)
153
- thor (~> 1.0)
154
- zeitwerk (~> 2.5)
155
- rake (13.0.6)
156
- rspec (3.12.0)
157
- rspec-core (~> 3.12.0)
158
- rspec-expectations (~> 3.12.0)
159
- rspec-mocks (~> 3.12.0)
160
- rspec-core (3.12.2)
161
- rspec-support (~> 3.12.0)
162
- rspec-expectations (3.12.3)
94
+ thor (~> 1.0, >= 1.2.2)
95
+ zeitwerk (~> 2.6)
96
+ rake (13.2.1)
97
+ rdoc (6.9.0)
98
+ psych (>= 4.0.0)
99
+ reline (0.5.12)
100
+ io-console (~> 0.5)
101
+ rspec-core (3.13.2)
102
+ rspec-support (~> 3.13.0)
103
+ rspec-expectations (3.13.3)
163
104
  diff-lcs (>= 1.2.0, < 2.0)
164
- rspec-support (~> 3.12.0)
165
- rspec-mocks (3.12.6)
105
+ rspec-support (~> 3.13.0)
106
+ rspec-mocks (3.13.2)
166
107
  diff-lcs (>= 1.2.0, < 2.0)
167
- rspec-support (~> 3.12.0)
168
- rspec-support (3.12.1)
169
- thor (1.2.2)
170
- timeout (0.4.0)
108
+ rspec-support (~> 3.13.0)
109
+ rspec-rails (7.1.0)
110
+ actionpack (>= 7.0)
111
+ activesupport (>= 7.0)
112
+ railties (>= 7.0)
113
+ rspec-core (~> 3.13)
114
+ rspec-expectations (~> 3.13)
115
+ rspec-mocks (~> 3.13)
116
+ rspec-support (~> 3.13)
117
+ rspec-support (3.13.2)
118
+ securerandom (0.4.0)
119
+ stringio (3.1.2)
120
+ thor (1.3.2)
171
121
  tzinfo (2.0.6)
172
122
  concurrent-ruby (~> 1.0)
173
- websocket-driver (0.7.6)
174
- websocket-extensions (>= 0.1.0)
175
- websocket-extensions (0.1.5)
176
- zeitwerk (2.6.11)
123
+ uri (1.0.2)
124
+ useragent (0.16.11)
125
+ zeitwerk (2.7.1)
177
126
 
178
127
  PLATFORMS
179
128
  arm64-darwin-22
180
129
  arm64-darwin-23
130
+ arm64-darwin-24
181
131
  x86_64-linux
182
132
 
183
133
  DEPENDENCIES
184
- rails (~> 7.0)
185
134
  rake (~> 13.0)
186
- rspec (~> 3.0)
135
+ rspec-rails (~> 7.0)
187
136
  superview!
188
137
 
189
138
  BUNDLED WITH
data/README.md CHANGED
@@ -11,7 +11,7 @@ class PostsController < ApplicationController
11
11
  class Show < ApplicationComponent
12
12
  attr_accessor :post
13
13
 
14
- def template(&)
14
+ def view_template(&)
15
15
  h1 { @post.title }
16
16
  div(class: "prose") { @post.body }
17
17
  end
@@ -56,7 +56,7 @@ class PostsController < ApplicationController
56
56
  class Show < ApplicationComponent
57
57
  attr_accessor :post
58
58
 
59
- def template(&)
59
+ def view_template(&)
60
60
  h1 { @post.title }
61
61
  div(class: "prose") { @post.body }
62
62
  end
@@ -80,7 +80,7 @@ class PostsController < ApplicationController
80
80
  class Show < ApplicationComponent
81
81
  attr_accessor :post
82
82
 
83
- def template(&)
83
+ def view_template(&)
84
84
  h1 { @post.title }
85
85
  div(class: "prose") { @post.body }
86
86
  end
@@ -88,7 +88,12 @@ class PostsController < ApplicationController
88
88
 
89
89
  def show
90
90
  respond_to do |format|
91
- format.html { render Show.new.tap { _1.post = @post } }
91
+ format.html { render phlex }
92
+ # These would also work...
93
+ # format.html { render Show.new.tap { _1.post = @post } }
94
+ # format.html { render phlex Show.new }
95
+ # format.html { render phlex Show }
96
+ # format.html { render phlex :show }
92
97
  format.json { render json: @post }
93
98
  end
94
99
  end
@@ -100,6 +105,37 @@ class PostsController < ApplicationController
100
105
  end
101
106
  ```
102
107
 
108
+ ### Rendering other Phlex actions from different actions
109
+
110
+ It's common to have to render form actions from other actions when forms are saved. In this example the `create` method renders the `phlex New` view when the form is invalid.
111
+
112
+ ```ruby
113
+ class PostsController < ApplicationController
114
+ include Superview::Actions
115
+
116
+ def create
117
+ @post = Post.new(post_params)
118
+
119
+ if @post.save
120
+ redirect_to @post
121
+ else
122
+ render phlex New
123
+ # These would also work...
124
+ # render New.new.tap { _1.post = @post }
125
+ # render phlex New.new
126
+ # render phlex New
127
+ # render phlex :new
128
+ end
129
+ end
130
+
131
+ private
132
+ def load_post
133
+ @post = Post.find(params[:id])
134
+ end
135
+ end
136
+
137
+ ```
138
+
103
139
  ### Extracting inline views into the `./app/views` folder
104
140
 
105
141
  Inline views are an amazingly productive way of prototyping apps, but as it matures you might be inclined to extract these views into the `./app/views` folders for organizational purposes or so you can share them between controllers.
@@ -112,7 +148,7 @@ module Posts
112
148
  class Show < ApplicationComponent
113
149
  attr_accessor :post
114
150
 
115
- def template(&)
151
+ def view_template(&)
116
152
  h1 { @post.title }
117
153
  div(class: "prose") { @post.body }
118
154
  end
@@ -16,7 +16,7 @@ module Superview
16
16
  # class Show < ApplicationComponent
17
17
  # attr_accessor :post
18
18
  #
19
- # def template(&)
19
+ # def view_template(&)
20
20
  # h1 { @post.title }
21
21
  # div(class: "prose") { @post.body }
22
22
  # end
@@ -49,8 +49,8 @@ module Superview
49
49
  # on Phlex. For example, if a controller defines @users and a Phlex class has
50
50
  # `attr_writer :users`, `attr_accessor :user`, or `def users=`, it will be automatically
51
51
  # set by this method.
52
- def assign_phlex_accessors(phlex_view)
53
- phlex_view.tap do |view|
52
+ def assign_phlex_accessors(view)
53
+ view.tap do |view|
54
54
  view_assigns.each do |variable, value|
55
55
  attr_writer_name = "#{variable}="
56
56
  view.send attr_writer_name, value if view.respond_to? attr_writer_name
@@ -58,24 +58,40 @@ module Superview
58
58
  end
59
59
  end
60
60
 
61
- # Initializers a Phlex view based on the action name, then assigns `view_assigns`
62
- # to the view.
61
+ # Initializers a Phlex view based on the action name and assigns accessors
63
62
  def phlex_action(action)
64
- assign_phlex_accessors self.class.phlex_action_class(action: action).new
63
+ phlex_view self.class.phlex_action_class(action: action)
64
+ end
65
+
66
+ # Initializes a phlex view class and assigns accessors.
67
+ def phlex_view(view_class)
68
+ assign_phlex_accessors view_class.new
65
69
  end
66
70
 
67
71
  # Phlex action for the current action.
68
- def phlex
69
- phlex_action(action_name)
72
+ def phlex(target = action_name)
73
+ case target
74
+ when Phlex::HTML
75
+ assign_phlex_accessors target
76
+ when Symbol, String
77
+ phlex_action target
78
+ when Class
79
+ phlex_view target
80
+ end
70
81
  end
71
82
 
72
- # Try rendering with the regular Rails rendering methods; if those don't work
73
- # then try finding the Phlex class that corresponds with the action_name. If that's
74
- # found then tell Rails to call `default_phlex_render`.
83
+ # Checks if a Phlex class name is present for a controller action name
84
+ def phlex_action_exists?(action)
85
+ self.class.phlex_action_class(action: action).present?
86
+ end
87
+
88
+ # This is a built-in Rails method resolves the method to call for an action.
89
+ # If it resolves a Phlex class in the controller, it will render that. If it's
90
+ # not found it continues with Rails method of resolving action names.
75
91
  def method_for_action(action_name)
76
- super || if self.class.phlex_action_class action: action_name
77
- "default_phlex_render"
78
- end
92
+ super || if phlex_action_exists? action_name
93
+ "default_phlex_render"
94
+ end
79
95
  end
80
96
 
81
97
  # Renders a Phlex view for the given action, if it's present.
@@ -83,4 +99,4 @@ module Superview
83
99
  render phlex
84
100
  end
85
101
  end
86
- end
102
+ end
@@ -53,9 +53,9 @@ module Superview
53
53
  class_attribute :model, :parent_model, :context_method_name
54
54
 
55
55
  before_action :assign_parent_collection, if: :has_parent_model?
56
- before_action :assign_parent_member, if: :has_parent_model?
57
- before_action :assign_collection
58
- before_action :assign_member
56
+ before_action :assign_parent_member, if: :has_parent_model_instance?
57
+ before_action :assign_collection, if: :has_model?
58
+ before_action :assign_member, if: :has_model?
59
59
  end
60
60
 
61
61
  protected
@@ -68,19 +68,31 @@ module Superview
68
68
  instance_variable_set "@#{parent_model.model_name.plural}", parent_model_scope
69
69
  end
70
70
 
71
- def model_scope
72
- if has_parent_model?
71
+ def model_association
72
+ if has_parent_model_instance?
73
73
  parent_model_instance.association(model.model_name.collection)
74
74
  elsif has_assignable_context?
75
- assignable_context.association(model.model_name.collection).scope
75
+ assignable_context.association(model.model_name.collection)
76
+ end
77
+ end
78
+
79
+ def model_scope
80
+ if association = model_association
81
+ association.scope
76
82
  else
77
83
  model.scope_for_association
78
84
  end
79
85
  end
80
86
 
81
- def parent_model_scope
87
+ def parent_model_association
82
88
  if has_assignable_context?
83
89
  assignable_context.association(parent_model.model_name.collection)
90
+ end
91
+ end
92
+
93
+ def parent_model_scope
94
+ if association = parent_model_association
95
+ association.scope
84
96
  else
85
97
  parent_model.scope_for_association
86
98
  end
@@ -98,6 +110,14 @@ module Superview
98
110
  parent_model.present?
99
111
  end
100
112
 
113
+ def has_parent_model_instance?
114
+ has_parent_model? && params.key?(parent_model_param_key)
115
+ end
116
+
117
+ def has_model?
118
+ model.present?
119
+ end
120
+
101
121
  def assign_member
102
122
  instance_variable_set "@#{model.model_name.singular}", model_instance
103
123
  end
@@ -3,7 +3,7 @@ module Superview::Components
3
3
  # collection of the table.
4
4
  #
5
5
  # ```ruby
6
- # render TableComponent.new(items: @posts) do |table|
6
+ # render TableComponent.new(@posts) do |table|
7
7
  # # This is how you'd usually render a table.
8
8
  # table.column("Title") { show(_1, :title) }
9
9
  #
@@ -19,8 +19,18 @@ module Superview::Components
19
19
  # end
20
20
  # end
21
21
  # ```
22
+
22
23
  class TableComponent < ApplicationComponent
23
- include Phlex::DeferredRender
24
+ if Phlex.const_defined?(:DeferredRender)
25
+ # Phlex 1.0
26
+ include Phlex::DeferredRender
27
+ else
28
+ # Phlex 2.0
29
+ def before_template(&)
30
+ vanish(&)
31
+ super
32
+ end
33
+ end
24
34
 
25
35
  class Column
26
36
  attr_accessor :title_template, :item_template
@@ -41,13 +51,14 @@ module Superview::Components
41
51
  end
42
52
  end
43
53
 
44
- def initialize(items: [])
54
+ def initialize(items = [], **attributes)
45
55
  @items = items
56
+ @attributes = attributes
46
57
  @columns = []
47
58
  end
48
59
 
49
- def template(&)
50
- table do
60
+ def view_template(&)
61
+ table(**@attributes) do
51
62
  thead do
52
63
  tr do
53
64
  @columns.each do |column|
@@ -75,4 +86,4 @@ module Superview::Components
75
86
  end
76
87
  end
77
88
  end
78
- end
89
+ end
@@ -20,7 +20,7 @@ module Superview
20
20
  @page_requires_reload = page_requires_reload
21
21
  end
22
22
 
23
- def template
23
+ def view_template
24
24
  meta(name: "turbo-refresh-method", content: @method)
25
25
  meta(name: "turbo-refresh-scroll", content: @scroll)
26
26
  meta(name: "turbo-cache-control", content: "no-cache") if @exempts_page_from_cache
@@ -45,4 +45,4 @@ module Superview
45
45
  end
46
46
  end
47
47
  end
48
- end
48
+ end
@@ -7,17 +7,6 @@ module Superview
7
7
  register_element :turbo_cable_stream_source
8
8
  end
9
9
 
10
- class_methods do
11
- def turbo(*args, **kwargs, &block)
12
- @turbo_meta_tags = MetaTags.new(*args, **kwargs)
13
- define_method(:turbo, &block) if block
14
- end
15
-
16
- def turbo_meta_tags
17
- @turbo_meta_tags ||= MetaTags.new
18
- end
19
- end
20
-
21
10
  def turbo_stream_from(*streamables, **attributes)
22
11
  attributes[:channel] = attributes[:channel]&.to_s || "Turbo::StreamsChannel"
23
12
  attributes[:"signed-stream-name"] = ::Turbo::StreamsChannel.signed_stream_name(streamables)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Superview
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.3"
5
5
  end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: superview
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brad Gessler
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-02-28 00:00:00.000000000 Z
11
+ date: 2024-12-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: phlex-rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '3.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '1.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '3.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: zeitwerk
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -85,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
85
91
  - !ruby/object:Gem::Version
86
92
  version: '0'
87
93
  requirements: []
88
- rubygems_version: 3.5.3
94
+ rubygems_version: 3.5.16
89
95
  signing_key:
90
96
  specification_version: 4
91
97
  summary: Build Rails applications entirely out of Phlex components.