hyper-react 1.0.0.lap27 → 1.0.0.lap28
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 +4 -4
- data/hyper-react.gemspec +4 -3
- data/lib/hyper-react.rb +1 -0
- data/lib/react/api.rb +10 -2
- data/lib/react/component/api.rb +4 -3
- data/lib/react/element.rb +11 -2
- data/lib/react/ext/opal-jquery/element.rb +11 -0
- data/lib/react/object.rb +0 -16
- data/lib/react/to_key.rb +26 -0
- data/lib/reactive-ruby/rails/component_mount.rb +3 -3
- data/lib/reactive-ruby/serializers.rb +11 -3
- data/lib/reactive-ruby/server_rendering/contextual_renderer.rb +5 -0
- data/lib/reactive-ruby/version.rb +1 -1
- data/spec/react/component_spec.rb +43 -2
- data/spec/react/dsl_spec.rb +2 -2
- data/spec/react/element_spec.rb +3 -3
- data/spec/react/opal_jquery_extensions_spec.rb +23 -0
- metadata +66 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9576218218234fed776182c5bd4814d2214d0bccb8102713c9dfcb5c02896f7
|
4
|
+
data.tar.gz: 2459b76e64f90a64ebae1d995b823b9518eec3a3a11344f49f370506cebe9796
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aef37ff1d4521bde8476c00f98b312c17f72db9a36694dd7a3427d17dcc8572205cd2524c53a1e312e8250c18f8341d384dab85e0bb43fff86197a0980de1a02
|
7
|
+
data.tar.gz: d39a312fe4ba268ca680411ff37c6ee981501c4cccc382d432387e2fd31d486e2e2aa8e01b1743b43c7af846e5631c68c602e8364c1a58b4f13a697de947284b
|
data/hyper-react.gemspec
CHANGED
@@ -18,7 +18,6 @@ Gem::Specification.new do |spec|
|
|
18
18
|
# }
|
19
19
|
|
20
20
|
spec.files = `git ls-files`.split("\n").reject { |f| f.match(%r{^(gemfiles|spec)/}) }
|
21
|
-
spec.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
22
21
|
spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
23
22
|
spec.require_paths = ['lib']
|
24
23
|
|
@@ -26,6 +25,8 @@ Gem::Specification.new do |spec|
|
|
26
25
|
spec.add_dependency 'opal', '>= 0.11.0', '< 0.12.0'
|
27
26
|
spec.add_dependency 'opal-activesupport', '~> 0.3.1'
|
28
27
|
spec.add_dependency 'hyperloop-config', React::VERSION
|
28
|
+
spec.add_dependency 'mini_racer', '~> 0.1.15'
|
29
|
+
spec.add_dependency 'react-rails', '>= 2.4.0', '< 2.5.0'
|
29
30
|
|
30
31
|
spec.add_development_dependency 'chromedriver-helper'
|
31
32
|
spec.add_development_dependency 'hyper-spec', React::VERSION
|
@@ -36,13 +37,13 @@ Gem::Specification.new do |spec|
|
|
36
37
|
spec.add_development_dependency 'opal-jquery'
|
37
38
|
spec.add_development_dependency 'opal-rails', '~> 0.9.4'
|
38
39
|
spec.add_development_dependency 'opal-rspec'
|
40
|
+
spec.add_development_dependency 'puma'
|
41
|
+
spec.add_development_dependency 'pry'
|
39
42
|
spec.add_development_dependency 'rails', '>= 4.0.0'
|
40
43
|
spec.add_development_dependency 'rails-controller-testing'
|
41
44
|
spec.add_development_dependency 'rake'
|
42
|
-
spec.add_development_dependency 'react-rails', '>= 2.4.0', '< 2.5.0'
|
43
45
|
spec.add_development_dependency 'rspec-rails'
|
44
46
|
spec.add_development_dependency 'rubocop', '~> 0.51.0'
|
45
47
|
spec.add_development_dependency 'sqlite3'
|
46
|
-
spec.add_development_dependency 'mini_racer', '~> 0.1.15'
|
47
48
|
spec.add_development_dependency 'timecop', '~> 0.8.1'
|
48
49
|
end
|
data/lib/hyper-react.rb
CHANGED
@@ -39,6 +39,7 @@ if RUBY_ENGINE == 'opal'
|
|
39
39
|
require 'react/rendering_context'
|
40
40
|
require 'react/state'
|
41
41
|
require 'react/object'
|
42
|
+
require 'react/to_key'
|
42
43
|
require 'react/ext/opal-jquery/element'
|
43
44
|
require 'reactive-ruby/isomorphic_helpers'
|
44
45
|
require 'rails-helpers/top_level_rails_component'
|
data/lib/react/api.rb
CHANGED
@@ -56,9 +56,17 @@ module React
|
|
56
56
|
this.__opalInstance = #{type.new(`this`)};
|
57
57
|
this.__opalInstanceInitializedState = true;
|
58
58
|
this.__opalInstanceSyncSetState = false;
|
59
|
+
this.__name = #{type.name};
|
59
60
|
}
|
60
61
|
static get displayName() {
|
61
|
-
|
62
|
+
if (typeof this.__name != "undefined") {
|
63
|
+
return this.__name;
|
64
|
+
} else {
|
65
|
+
return #{type.name};
|
66
|
+
}
|
67
|
+
}
|
68
|
+
static set displayName(name) {
|
69
|
+
this.__name = name;
|
62
70
|
}
|
63
71
|
static get defaultProps() {
|
64
72
|
return #{type.respond_to?(:default_props) ? type.default_props.to_n : `{}`};
|
@@ -106,11 +114,11 @@ module React
|
|
106
114
|
}
|
107
115
|
}
|
108
116
|
componentWillUnmount() {
|
109
|
-
this.__opalInstance.is_mounted = false;
|
110
117
|
if (#{type.method_defined? :component_will_unmount}) {
|
111
118
|
this.__opalInstanceSyncSetState = false;
|
112
119
|
this.__opalInstance.$component_will_unmount();
|
113
120
|
}
|
121
|
+
this.__opalInstance.is_mounted = false;
|
114
122
|
}
|
115
123
|
componentDidCatch(error, info) {
|
116
124
|
if (#{type.method_defined? :component_did_catch}) {
|
data/lib/react/component/api.rb
CHANGED
@@ -11,6 +11,7 @@ module React
|
|
11
11
|
|
12
12
|
def force_update!
|
13
13
|
`#{self}.native.forceUpdate()`
|
14
|
+
self
|
14
15
|
end
|
15
16
|
|
16
17
|
def set_props(prop, &block)
|
@@ -32,15 +33,15 @@ module React
|
|
32
33
|
def set_or_replace_state_or_prop(state_or_prop, method, &block)
|
33
34
|
raise "No native ReactComponent associated" unless @native
|
34
35
|
`var state_prop_n = #{state_or_prop.shallow_to_n}`
|
35
|
-
# the state object is initalized when the ruby component is
|
36
|
+
# the state object is initalized when the ruby component is instantiated
|
36
37
|
# this is detected by self.native.__opalInstanceInitializedState
|
37
|
-
# which is set in the
|
38
|
+
# which is set in the native component constructor in react/api.rb
|
38
39
|
# the setState update callback is not called when initalizing initial state
|
39
40
|
if block
|
40
41
|
%x{
|
41
42
|
if (#{@native}.__opalInstanceInitializedState === true) {
|
42
43
|
#{@native}[method](state_prop_n, function(){
|
43
|
-
|
44
|
+
block.$call();
|
44
45
|
});
|
45
46
|
} else {
|
46
47
|
for (var sp in state_prop_n) {
|
data/lib/react/element.rb
CHANGED
@@ -130,8 +130,17 @@ module React
|
|
130
130
|
def merge_built_in_event_prop!(prop_name)
|
131
131
|
@properties.merge!(
|
132
132
|
prop_name => %x{
|
133
|
-
function(
|
134
|
-
|
133
|
+
function(){
|
134
|
+
var react_event = arguments[0];
|
135
|
+
var all_args;
|
136
|
+
var other_args;
|
137
|
+
if (arguments.length > 1) {
|
138
|
+
all_args = Array.prototype.slice.call(arguments);
|
139
|
+
other_args = all_args.slice(1, arguments.length);
|
140
|
+
return #{yield(React::Event.new(`react_event`), *(`other_args`))};
|
141
|
+
} else {
|
142
|
+
return #{yield(React::Event.new(`react_event`))};
|
143
|
+
}
|
135
144
|
}
|
136
145
|
}
|
137
146
|
)
|
@@ -23,4 +23,15 @@ Element.instance_eval do
|
|
23
23
|
|
24
24
|
React.render(React.create_element(`#{self.to_n}._reactrb_component_class`), self)
|
25
25
|
end
|
26
|
+
|
27
|
+
# mount_components is useful for dynamically generated page segments for example
|
28
|
+
# see react-rails documentation for more details
|
29
|
+
|
30
|
+
%x{
|
31
|
+
$.fn.mount_components = function() {
|
32
|
+
this.each(function(e) { ReactRailsUJS.mountComponents(e[0]) })
|
33
|
+
return this;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
Element.expose :mount_components
|
26
37
|
end if Object.const_defined?('Element')
|
data/lib/react/object.rb
CHANGED
@@ -12,20 +12,4 @@ class Object
|
|
12
12
|
React::Component::Tags.html_tag_class_for(const_name) || raise(e)
|
13
13
|
end
|
14
14
|
end
|
15
|
-
|
16
|
-
def to_key
|
17
|
-
object_id
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
class Number
|
22
|
-
def to_key
|
23
|
-
self
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
class Boolean
|
28
|
-
def to_key
|
29
|
-
self
|
30
|
-
end
|
31
15
|
end
|
data/lib/react/to_key.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# to_key method returns a suitable unique id that can be used as
|
2
|
+
# a react `key`. Other classes may override to_key as needed
|
3
|
+
# for example hyper_mesh returns the object id of the internal
|
4
|
+
# backing record.
|
5
|
+
#
|
6
|
+
# to_key is automatically called on objects passed as keys for
|
7
|
+
# example Foo(key: my_object) results in Foo(key: my_object.to_key)
|
8
|
+
class Object
|
9
|
+
def to_key
|
10
|
+
object_id
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
# for Number to_key can just be the number itself
|
15
|
+
class Number
|
16
|
+
def to_key
|
17
|
+
self
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# for Boolean to_key can be true or false
|
22
|
+
class Boolean
|
23
|
+
def to_key
|
24
|
+
self
|
25
|
+
end
|
26
|
+
end
|
@@ -12,9 +12,9 @@ module ReactiveRuby
|
|
12
12
|
options = context_initializer_options(options, name)
|
13
13
|
end
|
14
14
|
props = serialized_props(props, name, controller)
|
15
|
-
super(top_level_name, props, options, &block).gsub("\n","")
|
16
|
-
|
17
|
-
|
15
|
+
result = super(top_level_name, props, options, &block).gsub("\n","")
|
16
|
+
result = result.gsub(/(<script.*<\/script>)<\/div>$/,'</div>\1').html_safe
|
17
|
+
result + footers
|
18
18
|
end
|
19
19
|
|
20
20
|
private
|
@@ -1,12 +1,20 @@
|
|
1
|
-
[
|
2
|
-
klass.send(:define_method, :react_serializer) do
|
1
|
+
[FalseClass, Float, Integer, NilClass, String, Symbol, Time, TrueClass].each do |klass|
|
2
|
+
klass.send(:define_method, :react_serializer) do
|
3
3
|
as_json
|
4
4
|
end
|
5
5
|
end
|
6
6
|
|
7
|
+
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.4.0')
|
8
|
+
[Bignum, Fixnum].each do |klass|
|
9
|
+
klass.send(:define_method, :react_serializer) do
|
10
|
+
as_json
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
7
15
|
BigDecimal.send(:define_method, :react_serializer) { as_json } rescue nil
|
8
16
|
|
9
|
-
Array.send(:define_method, :react_serializer) do
|
17
|
+
Array.send(:define_method, :react_serializer) do
|
10
18
|
self.collect { |e| e.react_serializer }.as_json
|
11
19
|
end
|
12
20
|
|
@@ -14,6 +14,11 @@ module ReactiveRuby
|
|
14
14
|
ComponentLoader.new(v8_context).load
|
15
15
|
end
|
16
16
|
|
17
|
+
def before_render(*args)
|
18
|
+
# the base class clears the log history... we don't want that as it is taken
|
19
|
+
# care of in IsomorphicHelpers.load_context
|
20
|
+
end
|
21
|
+
|
17
22
|
def render(component_name, props, prerender_options)
|
18
23
|
if prerender_options.is_a?(Hash)
|
19
24
|
if !v8_runtime? && prerender_options[:context_initializer]
|
@@ -116,7 +116,7 @@ describe 'React::Component', js: true do
|
|
116
116
|
def self.get_error
|
117
117
|
@@error
|
118
118
|
end
|
119
|
-
|
119
|
+
|
120
120
|
def self.get_info
|
121
121
|
@@info
|
122
122
|
end
|
@@ -136,6 +136,48 @@ describe 'React::Component', js: true do
|
|
136
136
|
end
|
137
137
|
end
|
138
138
|
|
139
|
+
describe 'Misc Methods' do
|
140
|
+
it 'has a force_update! method' do
|
141
|
+
mount 'Foo' do
|
142
|
+
class Foo < Hyperloop::Component
|
143
|
+
class << self
|
144
|
+
attr_accessor :render_counter
|
145
|
+
attr_accessor :instance
|
146
|
+
end
|
147
|
+
before_mount do
|
148
|
+
Foo.render_counter = 0
|
149
|
+
Foo.instance = self
|
150
|
+
end
|
151
|
+
def render
|
152
|
+
Foo.render_counter += 1
|
153
|
+
DIV { "I have been rendered #{Foo.render_counter} times" }
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
expect_evaluate_ruby do
|
158
|
+
Foo.instance.force_update!
|
159
|
+
Foo.render_counter
|
160
|
+
end.to eq(2)
|
161
|
+
end
|
162
|
+
|
163
|
+
it 'has its force_update! method return itself' do
|
164
|
+
mount 'Foo' do
|
165
|
+
class Foo < Hyperloop::Component
|
166
|
+
class << self
|
167
|
+
attr_accessor :instance
|
168
|
+
end
|
169
|
+
before_mount do
|
170
|
+
Foo.instance = self
|
171
|
+
end
|
172
|
+
def render
|
173
|
+
DIV { "I have been rendered" }
|
174
|
+
end
|
175
|
+
end
|
176
|
+
end
|
177
|
+
expect_evaluate_ruby('Foo.instance == Foo.instance.force_update!').to be_truthy
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
139
181
|
describe 'New style setter & getter' do
|
140
182
|
before(:each) do
|
141
183
|
on_client do
|
@@ -843,7 +885,6 @@ describe 'React::Component', js: true do
|
|
843
885
|
|
844
886
|
it 'only overrides `p` in render context' do
|
845
887
|
mount 'Foo' do
|
846
|
-
|
847
888
|
class Foo
|
848
889
|
include React::Component
|
849
890
|
|
data/spec/react/dsl_spec.rb
CHANGED
@@ -103,7 +103,7 @@ describe 'the React DSL', js: true do
|
|
103
103
|
end
|
104
104
|
end
|
105
105
|
end
|
106
|
-
expect(page.body[-
|
106
|
+
expect(page.body[-285..-233]).to match(/(<div data-reactroot=""|<div)><span>hello<(br|br\/|br \/)><\/span><\/div>/)
|
107
107
|
end
|
108
108
|
|
109
109
|
it "has a .td short hand String method" do
|
@@ -197,7 +197,7 @@ describe 'the React DSL', js: true do
|
|
197
197
|
'raised for sure!'
|
198
198
|
end
|
199
199
|
end.to eq('raised for sure!')
|
200
|
-
|
200
|
+
|
201
201
|
end
|
202
202
|
|
203
203
|
it "will treat the component class name as a first class component name" do
|
data/spec/react/element_spec.rb
CHANGED
@@ -28,7 +28,7 @@ describe 'React::Element', js: true do
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
end
|
31
|
-
expect(page.body[-
|
31
|
+
expect(page.body[-285..-233]).to match(/<input (type="text" value=""|value="" type="text").*\/>/)
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
@@ -62,7 +62,7 @@ describe 'React::Element', js: true do
|
|
62
62
|
end
|
63
63
|
|
64
64
|
it 'will subscribe to a native components event param' do
|
65
|
-
|
65
|
+
|
66
66
|
evaluate_ruby do
|
67
67
|
"this makes sure everything is loaded"
|
68
68
|
end
|
@@ -84,7 +84,7 @@ describe 'React::Element', js: true do
|
|
84
84
|
end
|
85
85
|
|
86
86
|
it 'will subscribe to a component event param with a non-default name' do
|
87
|
-
|
87
|
+
|
88
88
|
evaluate_ruby do
|
89
89
|
class Foo < React::Component::Base
|
90
90
|
param :my_event, type: Proc, default: nil, allow_nil: true
|
@@ -67,5 +67,28 @@ describe 'opal-jquery extensions', js: true do
|
|
67
67
|
expect(page.driver.browser.manage.logs.get(:browser).map { |m| m.message.gsub(/\\n/, "\n") }.to_a.join("\n"))
|
68
68
|
.not_to match(/Exception|Error/)
|
69
69
|
end
|
70
|
+
|
71
|
+
it "can dynamically mount components" do
|
72
|
+
on_client do
|
73
|
+
class DynoMount < Hyperloop::Component
|
74
|
+
render(DIV) { 'I got rendered' }
|
75
|
+
end
|
76
|
+
end
|
77
|
+
mount 'MountPoint' do
|
78
|
+
class MountPoint < Hyperloop::Component
|
79
|
+
render(DIV) do
|
80
|
+
# simulate what react-rails render_component output
|
81
|
+
DIV(
|
82
|
+
'data-react-class' => 'React.TopLevelRailsComponent',
|
83
|
+
'data-react-props' => '{"render_params": {}, "component_name": "DynoMount", "controller": ""}'
|
84
|
+
)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
evaluate_ruby do
|
89
|
+
Element['body'].mount_components
|
90
|
+
end
|
91
|
+
expect(page).to have_content('I got rendered')
|
92
|
+
end
|
70
93
|
end
|
71
94
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hyper-react
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.lap28
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Chang
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2018-
|
14
|
+
date: 2018-05-06 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: hyper-store
|
@@ -19,14 +19,14 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - '='
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.0.0.
|
22
|
+
version: 1.0.0.lap28
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - '='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 1.0.0.
|
29
|
+
version: 1.0.0.lap28
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: opal
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,14 +67,48 @@ dependencies:
|
|
67
67
|
requirements:
|
68
68
|
- - '='
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: 1.0.0.
|
70
|
+
version: 1.0.0.lap28
|
71
71
|
type: :runtime
|
72
72
|
prerelease: false
|
73
73
|
version_requirements: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
75
|
- - '='
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: 1.0.0.
|
77
|
+
version: 1.0.0.lap28
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: mini_racer
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - "~>"
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: 0.1.15
|
85
|
+
type: :runtime
|
86
|
+
prerelease: false
|
87
|
+
version_requirements: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - "~>"
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: 0.1.15
|
92
|
+
- !ruby/object:Gem::Dependency
|
93
|
+
name: react-rails
|
94
|
+
requirement: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: 2.4.0
|
99
|
+
- - "<"
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 2.5.0
|
102
|
+
type: :runtime
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: 2.4.0
|
109
|
+
- - "<"
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: 2.5.0
|
78
112
|
- !ruby/object:Gem::Dependency
|
79
113
|
name: chromedriver-helper
|
80
114
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,14 +129,14 @@ dependencies:
|
|
95
129
|
requirements:
|
96
130
|
- - '='
|
97
131
|
- !ruby/object:Gem::Version
|
98
|
-
version: 1.0.0.
|
132
|
+
version: 1.0.0.lap28
|
99
133
|
type: :development
|
100
134
|
prerelease: false
|
101
135
|
version_requirements: !ruby/object:Gem::Requirement
|
102
136
|
requirements:
|
103
137
|
- - '='
|
104
138
|
- !ruby/object:Gem::Version
|
105
|
-
version: 1.0.0.
|
139
|
+
version: 1.0.0.lap28
|
106
140
|
- !ruby/object:Gem::Dependency
|
107
141
|
name: jquery-rails
|
108
142
|
requirement: !ruby/object:Gem::Requirement
|
@@ -202,21 +236,21 @@ dependencies:
|
|
202
236
|
- !ruby/object:Gem::Version
|
203
237
|
version: '0'
|
204
238
|
- !ruby/object:Gem::Dependency
|
205
|
-
name:
|
239
|
+
name: puma
|
206
240
|
requirement: !ruby/object:Gem::Requirement
|
207
241
|
requirements:
|
208
242
|
- - ">="
|
209
243
|
- !ruby/object:Gem::Version
|
210
|
-
version:
|
244
|
+
version: '0'
|
211
245
|
type: :development
|
212
246
|
prerelease: false
|
213
247
|
version_requirements: !ruby/object:Gem::Requirement
|
214
248
|
requirements:
|
215
249
|
- - ">="
|
216
250
|
- !ruby/object:Gem::Version
|
217
|
-
version:
|
251
|
+
version: '0'
|
218
252
|
- !ruby/object:Gem::Dependency
|
219
|
-
name:
|
253
|
+
name: pry
|
220
254
|
requirement: !ruby/object:Gem::Requirement
|
221
255
|
requirements:
|
222
256
|
- - ">="
|
@@ -230,7 +264,21 @@ dependencies:
|
|
230
264
|
- !ruby/object:Gem::Version
|
231
265
|
version: '0'
|
232
266
|
- !ruby/object:Gem::Dependency
|
233
|
-
name:
|
267
|
+
name: rails
|
268
|
+
requirement: !ruby/object:Gem::Requirement
|
269
|
+
requirements:
|
270
|
+
- - ">="
|
271
|
+
- !ruby/object:Gem::Version
|
272
|
+
version: 4.0.0
|
273
|
+
type: :development
|
274
|
+
prerelease: false
|
275
|
+
version_requirements: !ruby/object:Gem::Requirement
|
276
|
+
requirements:
|
277
|
+
- - ">="
|
278
|
+
- !ruby/object:Gem::Version
|
279
|
+
version: 4.0.0
|
280
|
+
- !ruby/object:Gem::Dependency
|
281
|
+
name: rails-controller-testing
|
234
282
|
requirement: !ruby/object:Gem::Requirement
|
235
283
|
requirements:
|
236
284
|
- - ">="
|
@@ -244,25 +292,19 @@ dependencies:
|
|
244
292
|
- !ruby/object:Gem::Version
|
245
293
|
version: '0'
|
246
294
|
- !ruby/object:Gem::Dependency
|
247
|
-
name:
|
295
|
+
name: rake
|
248
296
|
requirement: !ruby/object:Gem::Requirement
|
249
297
|
requirements:
|
250
298
|
- - ">="
|
251
299
|
- !ruby/object:Gem::Version
|
252
|
-
version:
|
253
|
-
- - "<"
|
254
|
-
- !ruby/object:Gem::Version
|
255
|
-
version: 2.5.0
|
300
|
+
version: '0'
|
256
301
|
type: :development
|
257
302
|
prerelease: false
|
258
303
|
version_requirements: !ruby/object:Gem::Requirement
|
259
304
|
requirements:
|
260
305
|
- - ">="
|
261
306
|
- !ruby/object:Gem::Version
|
262
|
-
version:
|
263
|
-
- - "<"
|
264
|
-
- !ruby/object:Gem::Version
|
265
|
-
version: 2.5.0
|
307
|
+
version: '0'
|
266
308
|
- !ruby/object:Gem::Dependency
|
267
309
|
name: rspec-rails
|
268
310
|
requirement: !ruby/object:Gem::Requirement
|
@@ -305,20 +347,6 @@ dependencies:
|
|
305
347
|
- - ">="
|
306
348
|
- !ruby/object:Gem::Version
|
307
349
|
version: '0'
|
308
|
-
- !ruby/object:Gem::Dependency
|
309
|
-
name: mini_racer
|
310
|
-
requirement: !ruby/object:Gem::Requirement
|
311
|
-
requirements:
|
312
|
-
- - "~>"
|
313
|
-
- !ruby/object:Gem::Version
|
314
|
-
version: 0.1.15
|
315
|
-
type: :development
|
316
|
-
prerelease: false
|
317
|
-
version_requirements: !ruby/object:Gem::Requirement
|
318
|
-
requirements:
|
319
|
-
- - "~>"
|
320
|
-
- !ruby/object:Gem::Version
|
321
|
-
version: 0.1.15
|
322
350
|
- !ruby/object:Gem::Dependency
|
323
351
|
name: timecop
|
324
352
|
requirement: !ruby/object:Gem::Requirement
|
@@ -401,6 +429,7 @@ files:
|
|
401
429
|
- lib/react/test/rspec.rb
|
402
430
|
- lib/react/test/session.rb
|
403
431
|
- lib/react/test/utils.rb
|
432
|
+
- lib/react/to_key.rb
|
404
433
|
- lib/react/top_level.rb
|
405
434
|
- lib/react/top_level_render.rb
|
406
435
|
- lib/react/validator.rb
|
@@ -540,7 +569,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
540
569
|
version: 1.3.1
|
541
570
|
requirements: []
|
542
571
|
rubyforge_project:
|
543
|
-
rubygems_version: 2.7.
|
572
|
+
rubygems_version: 2.7.6
|
544
573
|
signing_key:
|
545
574
|
specification_version: 4
|
546
575
|
summary: Opal Ruby wrapper of React.js library.
|