Skip to content
This repository was archived by the owner on Oct 19, 2018. It is now read-only.

Commit 66f077c

Browse files
catmandozetachang
authored andcommitted
fixed spec
# Conflicts: # lib/reactive-ruby/version.rb
1 parent f9eb077 commit 66f077c

File tree

2 files changed

+39
-6
lines changed

2 files changed

+39
-6
lines changed

lib/react/top_level.rb

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -105,20 +105,29 @@ def self.unmount_component_at_node(node)
105105
end
106106

107107
Element.instance_eval do
108-
109-
class ::Element::DummyContext < React::Component::Base
108+
class Element
109+
class DummyContext < React::Component::Base
110+
end
110111
end
111112

112113
def self.find(selector)
113-
selector = selector.dom_node if selector.respond_to? :dom_node rescue selector
114+
selector = begin
115+
selector.dom_node
116+
rescue
117+
selector
118+
end if selector.respond_to? :dom_node
114119
`$(#{selector})`
115120
end
116121

117122
def self.[](selector)
118123
find(selector)
119124
end
120125

121-
def render(&block)
122-
React.render(React::RenderingContext.render(nil) {::Element::DummyContext.new.instance_eval &block}, self)
126+
define_method :render do |&block|
127+
React.render(
128+
React::RenderingContext.render(nil) do
129+
::Element::DummyContext.new.instance_eval(&block)
130+
end, self
131+
)
123132
end
124-
end if Object.const_defined?("Element")
133+
end if Object.const_defined?('Element')
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

0 commit comments

Comments
 (0)