nacelle 0.4.2 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,238 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ nacelle (0.5.0)
5
+ rails
6
+ sprockets-rails
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ actioncable (7.2.1)
12
+ actionpack (= 7.2.1)
13
+ activesupport (= 7.2.1)
14
+ nio4r (~> 2.0)
15
+ websocket-driver (>= 0.6.1)
16
+ zeitwerk (~> 2.6)
17
+ actionmailbox (7.2.1)
18
+ actionpack (= 7.2.1)
19
+ activejob (= 7.2.1)
20
+ activerecord (= 7.2.1)
21
+ activestorage (= 7.2.1)
22
+ activesupport (= 7.2.1)
23
+ mail (>= 2.8.0)
24
+ actionmailer (7.2.1)
25
+ actionpack (= 7.2.1)
26
+ actionview (= 7.2.1)
27
+ activejob (= 7.2.1)
28
+ activesupport (= 7.2.1)
29
+ mail (>= 2.8.0)
30
+ rails-dom-testing (~> 2.2)
31
+ actionpack (7.2.1)
32
+ actionview (= 7.2.1)
33
+ activesupport (= 7.2.1)
34
+ nokogiri (>= 1.8.5)
35
+ racc
36
+ rack (>= 2.2.4, < 3.2)
37
+ rack-session (>= 1.0.1)
38
+ rack-test (>= 0.6.3)
39
+ rails-dom-testing (~> 2.2)
40
+ rails-html-sanitizer (~> 1.6)
41
+ useragent (~> 0.16)
42
+ actiontext (7.2.1)
43
+ actionpack (= 7.2.1)
44
+ activerecord (= 7.2.1)
45
+ activestorage (= 7.2.1)
46
+ activesupport (= 7.2.1)
47
+ globalid (>= 0.6.0)
48
+ nokogiri (>= 1.8.5)
49
+ actionview (7.2.1)
50
+ activesupport (= 7.2.1)
51
+ builder (~> 3.1)
52
+ erubi (~> 1.11)
53
+ rails-dom-testing (~> 2.2)
54
+ rails-html-sanitizer (~> 1.6)
55
+ activejob (7.2.1)
56
+ activesupport (= 7.2.1)
57
+ globalid (>= 0.3.6)
58
+ activemodel (7.2.1)
59
+ activesupport (= 7.2.1)
60
+ activerecord (7.2.1)
61
+ activemodel (= 7.2.1)
62
+ activesupport (= 7.2.1)
63
+ timeout (>= 0.4.0)
64
+ activestorage (7.2.1)
65
+ actionpack (= 7.2.1)
66
+ activejob (= 7.2.1)
67
+ activerecord (= 7.2.1)
68
+ activesupport (= 7.2.1)
69
+ marcel (~> 1.0)
70
+ activesupport (7.2.1)
71
+ base64
72
+ bigdecimal
73
+ concurrent-ruby (~> 1.0, >= 1.3.1)
74
+ connection_pool (>= 2.2.5)
75
+ drb
76
+ i18n (>= 1.6, < 2)
77
+ logger (>= 1.4.2)
78
+ minitest (>= 5.1)
79
+ securerandom (>= 0.3)
80
+ tzinfo (~> 2.0, >= 2.0.5)
81
+ addressable (2.8.7)
82
+ public_suffix (>= 2.0.2, < 7.0)
83
+ appraisal (2.5.0)
84
+ bundler
85
+ rake
86
+ thor (>= 0.14.0)
87
+ base64 (0.2.0)
88
+ bigdecimal (3.1.8)
89
+ builder (3.3.0)
90
+ byebug (11.1.3)
91
+ capybara (3.40.0)
92
+ addressable
93
+ matrix
94
+ mini_mime (>= 0.1.3)
95
+ nokogiri (~> 1.11)
96
+ rack (>= 1.6.0)
97
+ rack-test (>= 0.6.3)
98
+ regexp_parser (>= 1.5, < 3.0)
99
+ xpath (~> 3.2)
100
+ concurrent-ruby (1.3.4)
101
+ connection_pool (2.4.1)
102
+ crass (1.0.6)
103
+ date (3.3.4)
104
+ diff-lcs (1.5.1)
105
+ drb (2.2.1)
106
+ erubi (1.13.0)
107
+ globalid (1.2.1)
108
+ activesupport (>= 6.1)
109
+ i18n (1.14.5)
110
+ concurrent-ruby (~> 1.0)
111
+ io-console (0.7.2)
112
+ irb (1.14.0)
113
+ rdoc (>= 4.0.0)
114
+ reline (>= 0.4.2)
115
+ logger (1.6.0)
116
+ loofah (2.22.0)
117
+ crass (~> 1.0.2)
118
+ nokogiri (>= 1.12.0)
119
+ mail (2.8.1)
120
+ mini_mime (>= 0.1.1)
121
+ net-imap
122
+ net-pop
123
+ net-smtp
124
+ marcel (1.0.4)
125
+ matrix (0.4.2)
126
+ mini_mime (1.1.5)
127
+ minitest (5.25.1)
128
+ net-imap (0.4.14)
129
+ date
130
+ net-protocol
131
+ net-pop (0.1.2)
132
+ net-protocol
133
+ net-protocol (0.2.2)
134
+ timeout
135
+ net-smtp (0.5.0)
136
+ net-protocol
137
+ nio4r (2.7.3)
138
+ nokogiri (1.16.7-x86_64-linux)
139
+ racc (~> 1.4)
140
+ psych (5.1.2)
141
+ stringio
142
+ public_suffix (6.0.1)
143
+ racc (1.8.1)
144
+ rack (2.2.9)
145
+ rack-session (1.0.2)
146
+ rack (< 3)
147
+ rack-test (2.1.0)
148
+ rack (>= 1.3)
149
+ rackup (1.0.0)
150
+ rack (< 3)
151
+ webrick
152
+ rails (7.2.1)
153
+ actioncable (= 7.2.1)
154
+ actionmailbox (= 7.2.1)
155
+ actionmailer (= 7.2.1)
156
+ actionpack (= 7.2.1)
157
+ actiontext (= 7.2.1)
158
+ actionview (= 7.2.1)
159
+ activejob (= 7.2.1)
160
+ activemodel (= 7.2.1)
161
+ activerecord (= 7.2.1)
162
+ activestorage (= 7.2.1)
163
+ activesupport (= 7.2.1)
164
+ bundler (>= 1.15.0)
165
+ railties (= 7.2.1)
166
+ rails-dom-testing (2.2.0)
167
+ activesupport (>= 5.0.0)
168
+ minitest
169
+ nokogiri (>= 1.6)
170
+ rails-html-sanitizer (1.6.0)
171
+ loofah (~> 2.21)
172
+ nokogiri (~> 1.14)
173
+ railties (7.2.1)
174
+ actionpack (= 7.2.1)
175
+ activesupport (= 7.2.1)
176
+ irb (~> 1.13)
177
+ rackup (>= 1.0.0)
178
+ rake (>= 12.2)
179
+ thor (~> 1.0, >= 1.2.2)
180
+ zeitwerk (~> 2.6)
181
+ rake (13.2.1)
182
+ rdoc (6.7.0)
183
+ psych (>= 4.0.0)
184
+ regexp_parser (2.9.2)
185
+ reline (0.5.9)
186
+ io-console (~> 0.5)
187
+ rspec (3.13.0)
188
+ rspec-core (~> 3.13.0)
189
+ rspec-expectations (~> 3.13.0)
190
+ rspec-mocks (~> 3.13.0)
191
+ rspec-core (3.13.0)
192
+ rspec-support (~> 3.13.0)
193
+ rspec-expectations (3.13.2)
194
+ diff-lcs (>= 1.2.0, < 2.0)
195
+ rspec-support (~> 3.13.0)
196
+ rspec-mocks (3.13.1)
197
+ diff-lcs (>= 1.2.0, < 2.0)
198
+ rspec-support (~> 3.13.0)
199
+ rspec-support (3.13.1)
200
+ securerandom (0.3.1)
201
+ sprockets (3.7.3)
202
+ base64
203
+ concurrent-ruby (~> 1.0)
204
+ rack (> 1, < 3)
205
+ sprockets-rails (3.5.2)
206
+ actionpack (>= 6.1)
207
+ activesupport (>= 6.1)
208
+ sprockets (>= 3.0.0)
209
+ stringio (3.1.1)
210
+ thor (1.3.1)
211
+ timeout (0.4.1)
212
+ tzinfo (2.0.6)
213
+ concurrent-ruby (~> 1.0)
214
+ useragent (0.16.10)
215
+ webrick (1.8.1)
216
+ websocket-driver (0.7.6)
217
+ websocket-extensions (>= 0.1.0)
218
+ websocket-extensions (0.1.5)
219
+ xpath (3.2.0)
220
+ nokogiri (~> 1.8)
221
+ zeitwerk (2.6.17)
222
+
223
+ PLATFORMS
224
+ x86_64-linux
225
+
226
+ DEPENDENCIES
227
+ appraisal
228
+ bundler
229
+ byebug
230
+ capybara
231
+ nacelle!
232
+ rails (~> 7.2.0)
233
+ rake
234
+ rspec
235
+ sprockets (~> 3.0)
236
+
237
+ BUNDLED WITH
238
+ 2.4.19
@@ -0,0 +1,49 @@
1
+ require "active_support/xml_mini/nokogiri"
2
+ ActiveSupport::XmlMini.backend = "Nokogiri"
3
+ require "active_support/core_ext/hash"
4
+ # we need all this for Hash.from_xml
5
+
6
+ module Nacelle
7
+ class AfterFilter < Struct.new(:controller)
8
+ def self.after controller
9
+ if controller.content_type&.include?("text/html")
10
+ new(controller).call
11
+ end
12
+ end
13
+
14
+ def call
15
+ cells = cells controller.response.body
16
+
17
+ controller.response.body.gsub!(/(#{cells.keys.join('|')})/) do |tag|
18
+ name, action, attrs = cells[tag]
19
+ action = action.to_sym
20
+ attrs = HashWithIndifferentAccess.new(attrs)
21
+ cell = "#{name.camelize}Cell".constantize.new_with_controller(controller)
22
+ attrs.delete "class" # ignore styling class
23
+ if cell.class.action_methods.include?(action)
24
+ cell.action = action
25
+ if cell.method(action).arity.zero? && attrs.empty?
26
+ cell.send(action)
27
+ else
28
+ cell.send(action, attrs)
29
+ end
30
+ else
31
+ "<strong>Cell “#{name.capitalize} #{action}” not found!</strong>"
32
+ end
33
+ end unless cells.empty?
34
+ end
35
+
36
+ private
37
+
38
+ def cells html
39
+ html.scan(/(<cell[^>]*\/\s*>|<cell[^>]*>.*?<\/cell>)/m).inject({}) do |cells, matches|
40
+ tag = matches.first
41
+ attrs = Hash.from_xml(tag)['cell']
42
+ name, state = attrs.delete('name').split('/')
43
+ cells[tag] = [name, state, attrs]
44
+ cells
45
+ end
46
+ end
47
+ end
48
+ end
49
+
data/lib/nacelle/cell.rb CHANGED
@@ -1,23 +1,68 @@
1
- require "cells"
2
-
3
1
  module Nacelle
4
- class Cell < Cell::Base
5
- self.view_paths += %w[app/cells app/views]
2
+ class Cell
3
+ def self.new_with_controller controller
4
+ new.tap do |cell|
5
+ cell.instance_variable_set :@controller, controller
6
+ cell.instance_variable_set :@request, controller.request
7
+ cell.instance_variable_set :@session, controller.session
8
+ cell.instance_variable_set :@cookies, controller.send(:cookies)
9
+ end
10
+ end
6
11
 
7
- def self.new_with_request request
8
- new.tap { |cell| cell.instance_variable_set :@request, request }
12
+ def self.updated_at
13
+ Time.new(2000) # can be overriden to bust caches
9
14
  end
10
15
 
11
- private def request
12
- @request
16
+ def self.cache_key
17
+ to_s # can be overriden to bust caches
13
18
  end
14
- end
15
- end
16
19
 
17
- if Rails.version >= "6.1.0"
18
- Cell::Base::View.class_eval do
19
- def compiled_method_container
20
- ActionView::Base
20
+ attr_reader :request, :session, :cookies
21
+
22
+ delegate :perform_caching, :read_fragment, :write_fragment, to: :@controller
23
+
24
+ def self.action_methods
25
+ instance_methods - Class.new(superclass).instance_methods
26
+ end
27
+
28
+ def self.name
29
+ to_s.underscore.sub("_cell","")
30
+ end
31
+
32
+ cattr_accessor(:view_path) { "app/cells" }
33
+ attr_accessor :action
34
+
35
+ class_attribute :helpers, default: []
36
+ def self.helper mod
37
+ helpers << mod
38
+ end
39
+
40
+ class_attribute :helper_methods, default: []
41
+ def self.helper_method meth
42
+ helper_methods << meth
43
+ end
44
+
45
+ def render template: nil
46
+ template ||= "#{self.class.name}/#{action}"
47
+ assigns = instance_variables.reduce({}) do |hash, key|
48
+ new_key = key.to_s.split("@").last.to_sym
49
+ value = instance_variable_get(key)
50
+ hash.merge(new_key => value)
51
+ end
52
+ view_context = @controller.view_context.dup
53
+ paths = view_context.lookup_context.view_paths + [view_path]
54
+ view_context.lookup_context.instance_variable_set :@view_paths, paths
55
+ view_context.assign assigns
56
+ cell = self
57
+
58
+ helper_methods.each do |meth|
59
+ view_context.compiled_method_container.define_method meth do
60
+ cell.send(meth)
61
+ end
62
+ end
63
+
64
+ view_context.render template: template
21
65
  end
22
66
  end
23
67
  end
68
+
@@ -9,7 +9,7 @@ class Nacelle::CellsSerializer
9
9
  cell = klass.to_s.sub("Cell", "").underscore
10
10
  cell_name = cell.humanize
11
11
 
12
- klass.action_methods.map do |action|
12
+ klass.action_methods.sort.map do |action|
13
13
  action_name = action.to_s.humanize
14
14
  {
15
15
  id: "#{cell}/#{action}",
@@ -0,0 +1,17 @@
1
+ module Nacelle
2
+ module HasCells
3
+ def has_cells *columns
4
+ define_method :cells do
5
+ columns.flat_map do |column|
6
+ send(column).to_s.scan(/(<cell[^>]*\/\s*>|<cell[^>]*>.*?<\/cell>)/m).map do |matches|
7
+ tag = matches.first
8
+ attrs = Hash.from_xml(tag)['cell']
9
+ name, _ = attrs.delete('name').split('/')
10
+ "#{name.camelize}Cell".constantize
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+
@@ -1,3 +1,3 @@
1
1
  module Nacelle
2
- VERSION = "0.4.2"
2
+ VERSION = "0.6.0"
3
3
  end
data/lib/nacelle.rb CHANGED
@@ -2,12 +2,14 @@ require "nacelle/version"
2
2
  require "action_controller/railtie"
3
3
  require "sprockets/railtie"
4
4
  require "nacelle/cell"
5
- require "nacelle/middleware"
5
+ require "nacelle/has_cells"
6
+ require "nacelle/after_filter"
6
7
 
7
8
  module Nacelle
8
9
  class Engine < ::Rails::Engine
9
10
  initializer "nacelle.init" do |app|
10
- app.config.middleware.use Nacelle::Middleware
11
+ ActionController::Base.after_action AfterFilter
12
+ ActiveRecord::Base.extend HasCells if defined?(ActiveRecord)
11
13
  end
12
14
 
13
15
  initializer "nacelle.assets.precompile" do |app|
data/nacelle.gemspec CHANGED
@@ -28,5 +28,4 @@ Gem::Specification.new do |spec|
28
28
 
29
29
  spec.add_dependency "rails"
30
30
  spec.add_dependency "sprockets-rails"
31
- spec.add_dependency "cells", "~>3.0"
32
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nacelle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Micah Geisel
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-03-28 00:00:00.000000000 Z
11
+ date: 2024-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -122,20 +122,6 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: cells
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '3.0'
132
- type: :runtime
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '3.0'
139
125
  description: Embed cells in the markup of your CMS.
140
126
  email:
141
127
  - micah@botandrose.com
@@ -151,6 +137,7 @@ files:
151
137
  - LICENSE.txt
152
138
  - README.md
153
139
  - Rakefile
140
+ - app/assets/config/manifest.js
154
141
  - app/assets/javascripts/ckeditor/plugins/cells.js
155
142
  - app/assets/javascripts/ckeditor/plugins/cells/dialogs/cells.js
156
143
  - app/assets/javascripts/ckeditor/plugins/cells/icons/insertcell.png
@@ -161,16 +148,17 @@ files:
161
148
  - bin/setup
162
149
  - config/routes.rb
163
150
  - gemfiles/.bundle/config
164
- - gemfiles/rails_6.0.gemfile
165
- - gemfiles/rails_6.0.gemfile.lock
166
- - gemfiles/rails_6.1.gemfile
167
- - gemfiles/rails_6.1.gemfile.lock
168
151
  - gemfiles/rails_7.0.gemfile
169
152
  - gemfiles/rails_7.0.gemfile.lock
153
+ - gemfiles/rails_7.1.gemfile
154
+ - gemfiles/rails_7.1.gemfile.lock
155
+ - gemfiles/rails_7.2.gemfile
156
+ - gemfiles/rails_7.2.gemfile.lock
170
157
  - lib/nacelle.rb
158
+ - lib/nacelle/after_filter.rb
171
159
  - lib/nacelle/cell.rb
172
160
  - lib/nacelle/cells_serializer.rb
173
- - lib/nacelle/middleware.rb
161
+ - lib/nacelle/has_cells.rb
174
162
  - lib/nacelle/version.rb
175
163
  - nacelle.gemspec
176
164
  homepage: https://github.com/botandrose/nacelle
@@ -192,7 +180,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
180
  - !ruby/object:Gem::Version
193
181
  version: '0'
194
182
  requirements: []
195
- rubygems_version: 3.2.32
183
+ rubygems_version: 3.4.19
196
184
  signing_key:
197
185
  specification_version: 4
198
186
  summary: Embed cells in the markup of your CMS.
@@ -1,189 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- nacelle (0.4.2)
5
- cells (~> 3.0)
6
- rails
7
- sprockets-rails
8
-
9
- GEM
10
- remote: https://rubygems.org/
11
- specs:
12
- actioncable (6.0.4.4)
13
- actionpack (= 6.0.4.4)
14
- nio4r (~> 2.0)
15
- websocket-driver (>= 0.6.1)
16
- actionmailbox (6.0.4.4)
17
- actionpack (= 6.0.4.4)
18
- activejob (= 6.0.4.4)
19
- activerecord (= 6.0.4.4)
20
- activestorage (= 6.0.4.4)
21
- activesupport (= 6.0.4.4)
22
- mail (>= 2.7.1)
23
- actionmailer (6.0.4.4)
24
- actionpack (= 6.0.4.4)
25
- actionview (= 6.0.4.4)
26
- activejob (= 6.0.4.4)
27
- mail (~> 2.5, >= 2.5.4)
28
- rails-dom-testing (~> 2.0)
29
- actionpack (6.0.4.4)
30
- actionview (= 6.0.4.4)
31
- activesupport (= 6.0.4.4)
32
- rack (~> 2.0, >= 2.0.8)
33
- rack-test (>= 0.6.3)
34
- rails-dom-testing (~> 2.0)
35
- rails-html-sanitizer (~> 1.0, >= 1.2.0)
36
- actiontext (6.0.4.4)
37
- actionpack (= 6.0.4.4)
38
- activerecord (= 6.0.4.4)
39
- activestorage (= 6.0.4.4)
40
- activesupport (= 6.0.4.4)
41
- nokogiri (>= 1.8.5)
42
- actionview (6.0.4.4)
43
- activesupport (= 6.0.4.4)
44
- builder (~> 3.1)
45
- erubi (~> 1.4)
46
- rails-dom-testing (~> 2.0)
47
- rails-html-sanitizer (~> 1.1, >= 1.2.0)
48
- activejob (6.0.4.4)
49
- activesupport (= 6.0.4.4)
50
- globalid (>= 0.3.6)
51
- activemodel (6.0.4.4)
52
- activesupport (= 6.0.4.4)
53
- activerecord (6.0.4.4)
54
- activemodel (= 6.0.4.4)
55
- activesupport (= 6.0.4.4)
56
- activestorage (6.0.4.4)
57
- actionpack (= 6.0.4.4)
58
- activejob (= 6.0.4.4)
59
- activerecord (= 6.0.4.4)
60
- marcel (~> 1.0.0)
61
- activesupport (6.0.4.4)
62
- concurrent-ruby (~> 1.0, >= 1.0.2)
63
- i18n (>= 0.7, < 2)
64
- minitest (~> 5.1)
65
- tzinfo (~> 1.1)
66
- zeitwerk (~> 2.2, >= 2.2.2)
67
- addressable (2.8.0)
68
- public_suffix (>= 2.0.2, < 5.0)
69
- appraisal (2.4.1)
70
- bundler
71
- rake
72
- thor (>= 0.14.0)
73
- builder (3.2.4)
74
- byebug (11.1.3)
75
- capybara (3.35.3)
76
- addressable
77
- mini_mime (>= 0.1.3)
78
- nokogiri (~> 1.8)
79
- rack (>= 1.6.0)
80
- rack-test (>= 0.6.3)
81
- regexp_parser (>= 1.5, < 3.0)
82
- xpath (~> 3.2)
83
- cells (3.11.3)
84
- actionpack (>= 3.0)
85
- railties (>= 3.0)
86
- uber (~> 0.0.8)
87
- concurrent-ruby (1.1.9)
88
- crass (1.0.6)
89
- diff-lcs (1.5.0)
90
- erubi (1.10.0)
91
- globalid (1.0.0)
92
- activesupport (>= 5.0)
93
- i18n (1.8.11)
94
- concurrent-ruby (~> 1.0)
95
- loofah (2.13.0)
96
- crass (~> 1.0.2)
97
- nokogiri (>= 1.5.9)
98
- mail (2.7.1)
99
- mini_mime (>= 0.1.1)
100
- marcel (1.0.2)
101
- method_source (1.0.0)
102
- mini_mime (1.1.2)
103
- mini_portile2 (2.6.1)
104
- minitest (5.15.0)
105
- nio4r (2.5.8)
106
- nokogiri (1.12.5)
107
- mini_portile2 (~> 2.6.1)
108
- racc (~> 1.4)
109
- public_suffix (4.0.6)
110
- racc (1.6.0)
111
- rack (2.2.3)
112
- rack-test (1.1.0)
113
- rack (>= 1.0, < 3)
114
- rails (6.0.4.4)
115
- actioncable (= 6.0.4.4)
116
- actionmailbox (= 6.0.4.4)
117
- actionmailer (= 6.0.4.4)
118
- actionpack (= 6.0.4.4)
119
- actiontext (= 6.0.4.4)
120
- actionview (= 6.0.4.4)
121
- activejob (= 6.0.4.4)
122
- activemodel (= 6.0.4.4)
123
- activerecord (= 6.0.4.4)
124
- activestorage (= 6.0.4.4)
125
- activesupport (= 6.0.4.4)
126
- bundler (>= 1.3.0)
127
- railties (= 6.0.4.4)
128
- sprockets-rails (>= 2.0.0)
129
- rails-dom-testing (2.0.3)
130
- activesupport (>= 4.2.0)
131
- nokogiri (>= 1.6)
132
- rails-html-sanitizer (1.4.2)
133
- loofah (~> 2.3)
134
- railties (6.0.4.4)
135
- actionpack (= 6.0.4.4)
136
- activesupport (= 6.0.4.4)
137
- method_source
138
- rake (>= 0.8.7)
139
- thor (>= 0.20.3, < 2.0)
140
- rake (13.0.6)
141
- regexp_parser (2.2.0)
142
- rspec (3.10.0)
143
- rspec-core (~> 3.10.0)
144
- rspec-expectations (~> 3.10.0)
145
- rspec-mocks (~> 3.10.0)
146
- rspec-core (3.10.1)
147
- rspec-support (~> 3.10.0)
148
- rspec-expectations (3.10.1)
149
- diff-lcs (>= 1.2.0, < 2.0)
150
- rspec-support (~> 3.10.0)
151
- rspec-mocks (3.10.2)
152
- diff-lcs (>= 1.2.0, < 2.0)
153
- rspec-support (~> 3.10.0)
154
- rspec-support (3.10.3)
155
- sprockets (3.7.2)
156
- concurrent-ruby (~> 1.0)
157
- rack (> 1, < 3)
158
- sprockets-rails (3.4.2)
159
- actionpack (>= 5.2)
160
- activesupport (>= 5.2)
161
- sprockets (>= 3.0.0)
162
- thor (1.1.0)
163
- thread_safe (0.3.6)
164
- tzinfo (1.2.9)
165
- thread_safe (~> 0.1)
166
- uber (0.0.15)
167
- websocket-driver (0.7.5)
168
- websocket-extensions (>= 0.1.0)
169
- websocket-extensions (0.1.5)
170
- xpath (3.2.0)
171
- nokogiri (~> 1.8)
172
- zeitwerk (2.5.2)
173
-
174
- PLATFORMS
175
- ruby
176
-
177
- DEPENDENCIES
178
- appraisal
179
- bundler
180
- byebug
181
- capybara (~> 3.35.0)
182
- nacelle!
183
- rails (~> 6.0.0)
184
- rake
185
- rspec
186
- sprockets (~> 3.0)
187
-
188
- BUNDLED WITH
189
- 2.2.32