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 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