reactrb 0.8.1 → 0.8.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 +4 -4
- data/Gemfile +1 -1
- data/lib/generators/reactive_ruby/test_app/templates/views/layouts/test_layout.html.erb +0 -0
- data/lib/generators/reactive_ruby/test_app/test_app_generator.rb +4 -0
- data/lib/react/top_level.rb +15 -6
- data/lib/reactive-ruby/rails/controller_helper.rb +4 -2
- data/lib/reactive-ruby/version.rb +1 -1
- data/reactrb.gemspec +1 -0
- data/spec/controller_helper_spec.rb +14 -2
- data/spec/react/opal_jquery_extensions_spec.rb +24 -0
- metadata +19 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1c3ebf7952a5d8a3c923961b2c0d58b6c0ecf85
|
4
|
+
data.tar.gz: 5aa6a7e1fa5dfee1160e2bb0931f316b3d80aa4d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 11064c43d167ff250020f53fe3ffa3e84dfc1477b06014d2c11703ecc0265601214991e5d9576a362bf2aa027efd81e523833a946cdc729cd747dccdfec682a8
|
7
|
+
data.tar.gz: 8b8c60d6b48489c5f0008133ef431e0b282f4218c69059f61b07b2ef680cb4629837058ea30b9ee26bbab4e6cf7418e10cd15c3591da4cf15567e0f3b824ae88
|
data/Gemfile
CHANGED
File without changes
|
@@ -34,6 +34,10 @@ module ReactiveRuby
|
|
34
34
|
"#{test_app_path}/app/views/components/hello_world.rb", force: true
|
35
35
|
template 'views/components/todo.rb',
|
36
36
|
"#{test_app_path}/app/views/components/todo.rb", force: true
|
37
|
+
template 'views/layouts/test_layout.html.erb',
|
38
|
+
"#{test_app_path}/app/views/layouts/test_layout.html.erb", force: true
|
39
|
+
template 'views/layouts/test_layout.html.erb',
|
40
|
+
"#{test_app_path}/app/views/layouts/explicit_layout.html.erb", force: true
|
37
41
|
end
|
38
42
|
|
39
43
|
def clean_superfluous_files
|
data/lib/react/top_level.rb
CHANGED
@@ -78,12 +78,17 @@ module React
|
|
78
78
|
end
|
79
79
|
|
80
80
|
Element.instance_eval do
|
81
|
-
|
82
|
-
|
81
|
+
class Element
|
82
|
+
class DummyContext < React::Component::Base
|
83
|
+
end
|
83
84
|
end
|
84
85
|
|
85
86
|
def self.find(selector)
|
86
|
-
selector =
|
87
|
+
selector = begin
|
88
|
+
selector.dom_node
|
89
|
+
rescue
|
90
|
+
selector
|
91
|
+
end if selector.respond_to? :dom_node
|
87
92
|
`$(#{selector})`
|
88
93
|
end
|
89
94
|
|
@@ -91,7 +96,11 @@ Element.instance_eval do
|
|
91
96
|
find(selector)
|
92
97
|
end
|
93
98
|
|
94
|
-
|
95
|
-
React.render(
|
99
|
+
define_method :render do |&block|
|
100
|
+
React.render(
|
101
|
+
React::RenderingContext.render(nil) do
|
102
|
+
::Element::DummyContext.new.instance_eval(&block)
|
103
|
+
end, self
|
104
|
+
)
|
96
105
|
end
|
97
|
-
end if Object.const_defined?(
|
106
|
+
end if Object.const_defined?('Element')
|
@@ -5,8 +5,10 @@ module ReactiveRuby
|
|
5
5
|
class ActionController::Base
|
6
6
|
def render_component(*args)
|
7
7
|
@component_name = ((args[0].is_a? Hash) || args.empty?) ? params[:action].camelize : args.shift
|
8
|
-
@render_params =
|
9
|
-
|
8
|
+
@render_params = args.shift || {}
|
9
|
+
options = args[0] || {}
|
10
|
+
layout = options.key?(:layout) ? options[:layout].to_s : :default
|
11
|
+
render inline: "<%= react_component @component_name, @render_params, { prerender: !params[:no_prerender] } %>", layout: layout
|
10
12
|
end
|
11
13
|
end
|
12
14
|
end
|
data/reactrb.gemspec
CHANGED
@@ -32,6 +32,7 @@ Gem::Specification.new do |s|
|
|
32
32
|
s.add_development_dependency 'rails', '4.2.4'
|
33
33
|
s.add_development_dependency 'react-rails'
|
34
34
|
s.add_development_dependency 'opal-rails'
|
35
|
+
s.add_development_dependency 'pry'
|
35
36
|
if RUBY_PLATFORM == 'java'
|
36
37
|
s.add_development_dependency 'jdbc-sqlite3'
|
37
38
|
s.add_development_dependency 'activerecord-jdbcsqlite3-adapter'
|
@@ -8,14 +8,26 @@ RSpec.describe TestController, type: :controller do
|
|
8
8
|
|
9
9
|
describe '#render_component' do
|
10
10
|
controller do
|
11
|
+
|
12
|
+
layout "test_layout"
|
13
|
+
|
11
14
|
def index
|
12
15
|
render_component
|
13
16
|
end
|
17
|
+
|
18
|
+
def new
|
19
|
+
render_component "Index", {}, layout: :explicit_layout
|
20
|
+
end
|
14
21
|
end
|
15
22
|
|
16
|
-
it 'renders the
|
23
|
+
it 'renders with the default layout' do
|
17
24
|
get :index, no_prerender: true
|
18
|
-
expect(response).to render_template(layout: :
|
25
|
+
expect(response).to render_template(layout: :test_layout)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "renders with a specified layout" do
|
29
|
+
get :new, no_prerender: true
|
30
|
+
expect(response).to render_template(layout: :explicit_layout)
|
19
31
|
end
|
20
32
|
end
|
21
33
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
if opal?
|
4
|
+
describe 'Element' do
|
5
|
+
after(:each) do
|
6
|
+
React::API.clear_component_class_cache
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'responds to render' do
|
10
|
+
expect(Element['body']).to respond_to :render
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'will find the DOM node given a react element' do
|
14
|
+
stub_const 'Foo', Class.new(React::Component::Base)
|
15
|
+
Foo.class_eval do
|
16
|
+
def render
|
17
|
+
div { 'hello' }
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
expect(Element[renderToDocument(Foo)].html).to eq('hello')
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reactrb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Chang
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-06-
|
13
|
+
date: 2016-06-27 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: opal
|
@@ -180,6 +180,20 @@ dependencies:
|
|
180
180
|
- - ">="
|
181
181
|
- !ruby/object:Gem::Version
|
182
182
|
version: '0'
|
183
|
+
- !ruby/object:Gem::Dependency
|
184
|
+
name: pry
|
185
|
+
requirement: !ruby/object:Gem::Requirement
|
186
|
+
requirements:
|
187
|
+
- - ">="
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0'
|
190
|
+
type: :development
|
191
|
+
prerelease: false
|
192
|
+
version_requirements: !ruby/object:Gem::Requirement
|
193
|
+
requirements:
|
194
|
+
- - ">="
|
195
|
+
- !ruby/object:Gem::Version
|
196
|
+
version: '0'
|
183
197
|
- !ruby/object:Gem::Dependency
|
184
198
|
name: sqlite3
|
185
199
|
requirement: !ruby/object:Gem::Requirement
|
@@ -326,6 +340,7 @@ files:
|
|
326
340
|
- lib/generators/reactive_ruby/test_app/templates/test_application.rb.erb
|
327
341
|
- lib/generators/reactive_ruby/test_app/templates/views/components/hello_world.rb
|
328
342
|
- lib/generators/reactive_ruby/test_app/templates/views/components/todo.rb
|
343
|
+
- lib/generators/reactive_ruby/test_app/templates/views/layouts/test_layout.html.erb
|
329
344
|
- lib/generators/reactive_ruby/test_app/test_app_generator.rb
|
330
345
|
- lib/rails-helpers/top_level_rails_component.rb
|
331
346
|
- lib/react/api.rb
|
@@ -372,6 +387,7 @@ files:
|
|
372
387
|
- spec/react/event_spec.rb
|
373
388
|
- spec/react/native_library_spec.rb
|
374
389
|
- spec/react/observable_spec.rb
|
390
|
+
- spec/react/opal_jquery_extensions_spec.rb
|
375
391
|
- spec/react/param_declaration_spec.rb
|
376
392
|
- spec/react/react_spec.rb
|
377
393
|
- spec/react/state_spec.rb
|
@@ -422,6 +438,7 @@ test_files:
|
|
422
438
|
- spec/react/event_spec.rb
|
423
439
|
- spec/react/native_library_spec.rb
|
424
440
|
- spec/react/observable_spec.rb
|
441
|
+
- spec/react/opal_jquery_extensions_spec.rb
|
425
442
|
- spec/react/param_declaration_spec.rb
|
426
443
|
- spec/react/react_spec.rb
|
427
444
|
- spec/react/state_spec.rb
|