reactrb 0.8.1 → 0.8.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0c7c553310c819ca91fadbba5cf5f19cd118bae9
4
- data.tar.gz: 38dca74d91eab8f2271b048ca1f3782cd888be82
3
+ metadata.gz: d1c3ebf7952a5d8a3c923961b2c0d58b6c0ecf85
4
+ data.tar.gz: 5aa6a7e1fa5dfee1160e2bb0931f316b3d80aa4d
5
5
  SHA512:
6
- metadata.gz: 6583de4e46ea0460ce2ff2a0f3c1e3e2a686f8f30ae7f29b2beaebac5006483ab5eff3013432d6073625a51373df348e14d59eaadda5e442ad2326f3dcaa23ec
7
- data.tar.gz: 00c24c09bb98d0dcb5d80f9def713019b04cf388422e44ef73d9064745e82278c9df8dbfc668307349acf6397551fb61620b335637696ec43c15bf5d76fb642a
6
+ metadata.gz: 11064c43d167ff250020f53fe3ffa3e84dfc1477b06014d2c11703ecc0265601214991e5d9576a362bf2aa027efd81e523833a946cdc729cd747dccdfec682a8
7
+ data.tar.gz: 8b8c60d6b48489c5f0008133ef431e0b282f4218c69059f61b07b2ef680cb4629837058ea30b9ee26bbab4e6cf7418e10cd15c3591da4cf15567e0f3b824ae88
data/Gemfile CHANGED
@@ -3,5 +3,5 @@ source 'https://rubygems.org'
3
3
  #gem 'opal', "~> 0.9.x"
4
4
  #gem 'opal-rails', git: "https://github.com/reactrb/opal-rails.git"
5
5
  #gem 'opal-rspec-rails', git: 'https://github.com/reactrb/opal-rspec-rails.git'
6
-
6
+ gem 'pry'
7
7
  gemspec
@@ -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
@@ -78,12 +78,17 @@ module React
78
78
  end
79
79
 
80
80
  Element.instance_eval do
81
-
82
- class ::Element::DummyContext < React::Component::Base
81
+ class Element
82
+ class DummyContext < React::Component::Base
83
+ end
83
84
  end
84
85
 
85
86
  def self.find(selector)
86
- selector = selector.dom_node if selector.respond_to? :dom_node rescue 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
- def render(&block)
95
- React.render(React::RenderingContext.render(nil) {::Element::DummyContext.new.instance_eval &block}, self)
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?("Element")
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 = (args[0].is_a? Hash) ? args[0] : {}
9
- render inline: "<%= react_component @component_name, @render_params, { prerender: !params[:no_prerender] } %>", layout: 'application'
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
@@ -1,3 +1,3 @@
1
1
  module React
2
- VERSION = "0.8.1"
2
+ VERSION = '0.8.3'
3
3
  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 application layout' do
23
+ it 'renders with the default layout' do
17
24
  get :index, no_prerender: true
18
- expect(response).to render_template(layout: :application)
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.1
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-09 00:00:00.000000000 Z
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