opal-react 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +15 -0
- data/Gemfile +4 -0
- data/LICENSE +21 -0
- data/LICENSE.txt +22 -0
- data/README.md +78 -0
- data/Rakefile +24 -0
- data/config.ru +12 -0
- data/dist/opal-react.js +1325 -0
- data/dist/opal-react.js.map +1 -0
- data/examples/todoapp/Gemfile +6 -0
- data/examples/todoapp/Rakefile +11 -0
- data/examples/todoapp/application.rb +44 -0
- data/examples/todoapp/index.html +12 -0
- data/lib/opal/react.rb +16 -0
- data/lib/opal/react/component.rb +201 -0
- data/lib/opal/react/version.rb +5 -0
- data/opal-react.gemspec +25 -0
- data/spec/index.html.erb +8 -0
- data/tutorial/package.json +15 -0
- data/tutorial/tutorial1.html +36 -0
- data/tutorial/tutorial1.rb +19 -0
- metadata +122 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":null,"mappings":"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","sources":["native.rb","opal/react/react.rb","opal/react/dom.rb","opal/react/window.rb","opal/react/component.rb","opal/react/version.rb","opal/react.rb"],"names":["is_a?","try_convert","convert","call","proc","alias_native","native_reader","native_writer","native_accessor","included","initialize","to_n","native?","Native","Array","==","has_key?","each","[]","[]=","merge!","respond_to?","respond_to_missing?","method_missing","nil?","instance_of?","class","to_a","inspect","last","length","native_module","native_alias","native_class","render","renderToString","renderToStaticMarkup","fix_props","fix_state","inherited","dsl_name","bridge","default_props","initial_state","prop_types","component_will_mount","component_did_mount","component_will_receive_props","component_will_update","component_did_update","component_will_unmount","props","state","set_state","replace_state","force_update","mounted?","defer"]}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'bundler/setup'
|
2
|
+
Bundler.require
|
3
|
+
|
4
|
+
desc "Build bundle"
|
5
|
+
task :build do
|
6
|
+
Opal.append_path "."
|
7
|
+
build = Opal::Builder.build("application")
|
8
|
+
File.binwrite "build/bundle.js", build.to_s << "\n//# sourceMappingURL=bundle.js.map"
|
9
|
+
File.binwrite "build/bundle.js.map", build.source_map
|
10
|
+
end
|
11
|
+
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'react'
|
2
|
+
|
3
|
+
class TodoList < React::Component
|
4
|
+
def render
|
5
|
+
ul(
|
6
|
+
props[:items].map { |item|
|
7
|
+
li({key: item[:id]}, [ item[:text] ])
|
8
|
+
}
|
9
|
+
)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class TodoApp < React::Component
|
14
|
+
|
15
|
+
def initial_state
|
16
|
+
{ items: [], text: '' }
|
17
|
+
end
|
18
|
+
|
19
|
+
def onChange(e)
|
20
|
+
set_state({text: e.target.value})
|
21
|
+
end
|
22
|
+
|
23
|
+
def handleSubmit(e)
|
24
|
+
e.preventDefault()
|
25
|
+
now = Time.now
|
26
|
+
nextItems = state[:items] + [{ text: state[:text], id: now.to_i * 1e6 + now.usec }]
|
27
|
+
nextText = ''
|
28
|
+
set_state({items: nextItems, text: nextText})
|
29
|
+
end
|
30
|
+
|
31
|
+
def render
|
32
|
+
div([
|
33
|
+
h3('TODO'),
|
34
|
+
TodoList(items: state[:items]),
|
35
|
+
form({onSubmit: method(:handleSubmit)}, [
|
36
|
+
input(onChange: method(:onChange), value: state[:text]),
|
37
|
+
button("Add ##{state[:items].count+1}")
|
38
|
+
])
|
39
|
+
])
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
TodoApp.run()
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8"/>
|
5
|
+
<script src="https://unpkg.com/react@15.3.2/dist/react-with-addons.min.js"></script>
|
6
|
+
<script src="https://unpkg.com/react-dom@15.3.2/dist/react-dom.min.js"></script>
|
7
|
+
<script src="http://cdn.opalrb.org/opal/0.10.1/opal.min.js"></script>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<script src="build/bundle.js"></script>
|
11
|
+
</body>
|
12
|
+
</html>
|
data/lib/opal/react.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
if RUBY_ENGINE == 'opal'
|
2
|
+
|
3
|
+
require 'native'
|
4
|
+
|
5
|
+
require_relative "react/react.rb"
|
6
|
+
require_relative "react/dom.rb"
|
7
|
+
require_relative "react/window.rb"
|
8
|
+
require_relative "react/component.rb"
|
9
|
+
require_relative "react/version"
|
10
|
+
|
11
|
+
else
|
12
|
+
|
13
|
+
require 'opal'
|
14
|
+
Opal.append_path File.expand_path('..', __FILE__).untaint
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,201 @@
|
|
1
|
+
module React
|
2
|
+
|
3
|
+
class ShallowWrapper
|
4
|
+
|
5
|
+
def initialize(native)
|
6
|
+
@native = native
|
7
|
+
end
|
8
|
+
|
9
|
+
def [](key)
|
10
|
+
`return #{@native}[key] || #{nil};`
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.fix_props(props)
|
15
|
+
return `null` if props.nil?
|
16
|
+
%x{
|
17
|
+
const jsProps = {};
|
18
|
+
#{
|
19
|
+
props.each { |key, value|
|
20
|
+
if key.start_with?('on')
|
21
|
+
chain = value
|
22
|
+
value = -> (event) { chain.call(Native(event)) }
|
23
|
+
elsif key == 'style'
|
24
|
+
value = value.to_n
|
25
|
+
end
|
26
|
+
`jsProps[key] = value;`
|
27
|
+
}
|
28
|
+
}
|
29
|
+
return jsProps;
|
30
|
+
}
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.fix_state(state)
|
34
|
+
return `null` if state.nil?
|
35
|
+
%x{
|
36
|
+
const jsState = {};
|
37
|
+
#{ state.each { |key, value| `jsState[key] = value;` } }
|
38
|
+
return jsState;
|
39
|
+
}
|
40
|
+
end
|
41
|
+
|
42
|
+
class Component
|
43
|
+
|
44
|
+
include DOM
|
45
|
+
include Window
|
46
|
+
|
47
|
+
def self.inherited(subclass)
|
48
|
+
super
|
49
|
+
_class = `
|
50
|
+
class extends React.Component {
|
51
|
+
|
52
|
+
static get defaultProps() {
|
53
|
+
return #{React.fix_props(`#{subclass}.$default_props()`)};
|
54
|
+
}
|
55
|
+
|
56
|
+
constructor(props) {
|
57
|
+
super(props);
|
58
|
+
this.self = #{subclass.new(`props`)};
|
59
|
+
this.state = #{React.fix_state(`this.self.$initial_state()`)};
|
60
|
+
}
|
61
|
+
|
62
|
+
render() {
|
63
|
+
return this.self.$bridge(this).self.$render();
|
64
|
+
}
|
65
|
+
|
66
|
+
componentWillMount() {
|
67
|
+
this.self.$bridge(this).self.$component_will_mount();
|
68
|
+
}
|
69
|
+
|
70
|
+
componentDidMount() {
|
71
|
+
this.self.$bridge(this).self.$component_did_mount();
|
72
|
+
}
|
73
|
+
|
74
|
+
componentWillReceiveProps(nextProps) {
|
75
|
+
this.self.$bridge(this).self.$component_will_receive_props(nextProps);
|
76
|
+
}
|
77
|
+
|
78
|
+
shouldComponentUpdate(nextProps, nextState) {
|
79
|
+
return ("$should_component_update?" in this.self)
|
80
|
+
? this.self.$bridge(this).self["$should_component_update?"](nextProps, nextState)
|
81
|
+
: shallowCompare(this, nextProps, nextState);
|
82
|
+
}
|
83
|
+
|
84
|
+
componentWillUpdate(nextProps, nextState) {
|
85
|
+
this.self.$bridge(this).self.$component_will_update(nextProps, nextState);
|
86
|
+
}
|
87
|
+
|
88
|
+
componentDidUpdate(prevProps, prevState) {
|
89
|
+
this.self.$bridge(this).self.$component_did_update(prevProps, prevState);
|
90
|
+
}
|
91
|
+
|
92
|
+
componentWillUnmount() {
|
93
|
+
this.self.$bridge(this).self.$component_will_unmount();
|
94
|
+
}
|
95
|
+
}
|
96
|
+
`
|
97
|
+
|
98
|
+
_create = Proc.new { |props = nil, children = nil, &block|
|
99
|
+
if children.nil?
|
100
|
+
if `Array.isArray(props)`
|
101
|
+
children = props
|
102
|
+
props = nil
|
103
|
+
elsif !props.nil? && `typeof props !== 'object'`
|
104
|
+
children = [props]
|
105
|
+
props = nil
|
106
|
+
end
|
107
|
+
end
|
108
|
+
`return React.createElement( #{_class}, #{React.fix_props(props)}, #{children.to_n} );`
|
109
|
+
}
|
110
|
+
|
111
|
+
name = subclass.dsl_name(subclass.name)
|
112
|
+
DOM.define_method(name, _create)
|
113
|
+
|
114
|
+
subclass.class.define_method('run') do |props: nil, container: nil|
|
115
|
+
if container
|
116
|
+
ReactDOM.render(_create.call(props), container)
|
117
|
+
else
|
118
|
+
ReactDOM.render(_create.call(props), container = $$.document.createElement('div')) do
|
119
|
+
$$.document.body.appendChild(container)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
def self.dsl_name(name)
|
126
|
+
name.gsub( /Component$/, '')
|
127
|
+
end
|
128
|
+
|
129
|
+
def bridge(value)
|
130
|
+
@this = value
|
131
|
+
end
|
132
|
+
|
133
|
+
def self.default_props
|
134
|
+
nil
|
135
|
+
end
|
136
|
+
|
137
|
+
def initial_state
|
138
|
+
nil
|
139
|
+
end
|
140
|
+
|
141
|
+
def prop_types
|
142
|
+
nil
|
143
|
+
end
|
144
|
+
|
145
|
+
def component_will_mount()
|
146
|
+
end
|
147
|
+
|
148
|
+
def component_did_mount()
|
149
|
+
end
|
150
|
+
|
151
|
+
def component_will_receive_props(next_props)
|
152
|
+
end
|
153
|
+
|
154
|
+
# def should_component_update?(next_props, next_state)
|
155
|
+
# true
|
156
|
+
# end
|
157
|
+
|
158
|
+
def component_will_update(next_props, next_state)
|
159
|
+
end
|
160
|
+
|
161
|
+
def component_did_update(next_props, next_state)
|
162
|
+
end
|
163
|
+
|
164
|
+
def component_will_unmount()
|
165
|
+
end
|
166
|
+
|
167
|
+
def render()
|
168
|
+
end
|
169
|
+
|
170
|
+
def props
|
171
|
+
ShallowWrapper.new(`#{@this}.props`)
|
172
|
+
end
|
173
|
+
|
174
|
+
def state
|
175
|
+
ShallowWrapper.new(`#{@this}.state`)
|
176
|
+
end
|
177
|
+
|
178
|
+
def set_state(next_state, &block)
|
179
|
+
block = `null` if block.nil?
|
180
|
+
`#{@this}.setState(#{React.fix_state(next_state)}, block);`
|
181
|
+
end
|
182
|
+
|
183
|
+
def replace_state(next_state, &block)
|
184
|
+
block = `null` if block.nil?
|
185
|
+
`#{@this}.replaceState(#{React.fix_state(next_state)}, block);`
|
186
|
+
end
|
187
|
+
|
188
|
+
def force_update
|
189
|
+
`#{@this}.forceUpdate();`
|
190
|
+
end
|
191
|
+
|
192
|
+
# deprecated (more or less)
|
193
|
+
def mounted?
|
194
|
+
`return #{@this}.isMounted();`
|
195
|
+
end
|
196
|
+
|
197
|
+
def defer(ms=0)
|
198
|
+
$$[:setTimeout].call( -> { yield if block_given? }, ms)
|
199
|
+
end
|
200
|
+
end
|
201
|
+
end
|
data/opal-react.gemspec
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'opal/react/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "opal-react"
|
8
|
+
spec.version = Opal::React::VERSION
|
9
|
+
spec.authors = ["John Susi"]
|
10
|
+
spec.email = ["john@susi.se"]
|
11
|
+
spec.summary = %q{Proper port of ReactJS to Opal.}
|
12
|
+
spec.description = %q{}
|
13
|
+
spec.homepage = "https://github.com/johnsusi/opal-react"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_development_dependency "bundler"
|
22
|
+
spec.add_development_dependency "rake"
|
23
|
+
spec.add_development_dependency "opal-rspec"
|
24
|
+
spec.add_development_dependency "opal"
|
25
|
+
end
|
data/spec/index.html.erb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
{
|
2
|
+
"name": "tutorial",
|
3
|
+
"version": "1.0.0",
|
4
|
+
"description": "",
|
5
|
+
"main": "opal.js",
|
6
|
+
"scripts": {
|
7
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
8
|
+
},
|
9
|
+
"author": "",
|
10
|
+
"license": "ISC",
|
11
|
+
"dependencies": {
|
12
|
+
"react": "^15.0.1",
|
13
|
+
"react-dom": "^15.0.1"
|
14
|
+
}
|
15
|
+
}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="UTF-8" />
|
5
|
+
<title>Hello React!</title>
|
6
|
+
<script src="https://fb.me/react-15.0.1.js"></script>
|
7
|
+
<script src="https://fb.me/react-dom-15.0.1.js"></script>
|
8
|
+
<script src="http://cdn.opalrb.org/opal/0.9.2/opal.js"></script>
|
9
|
+
<script src="http://cdn.opalrb.org/opal/0.9.2/opal-parser.js"></script>
|
10
|
+
<script src="../dist/opal-react.js"></script>
|
11
|
+
<script type="text/javascript">Opal.load('opal-parser')</script>
|
12
|
+
|
13
|
+
</head>
|
14
|
+
<body>
|
15
|
+
<div id="content"></div>
|
16
|
+
<script type="text/ruby">
|
17
|
+
# tutorial1.rb
|
18
|
+
|
19
|
+
class CommentBox < React::Component
|
20
|
+
|
21
|
+
def render
|
22
|
+
div(className: 'commentBox') do
|
23
|
+
'Hello, world! I am a CommentBox.'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
include React::DOM
|
29
|
+
|
30
|
+
ReactDOM.render(
|
31
|
+
CommentBox(),
|
32
|
+
$$.document.getElementById('content')
|
33
|
+
)
|
34
|
+
</script>
|
35
|
+
</body>
|
36
|
+
</html>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# tutorial1.rb
|
2
|
+
|
3
|
+
require 'opal'
|
4
|
+
require 'opal/react'
|
5
|
+
|
6
|
+
class CommentBox < React::Component
|
7
|
+
|
8
|
+
def render
|
9
|
+
div(className: 'commentBox') do
|
10
|
+
'Hello, world! I am a CommentBox.'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
include React::DOM
|
16
|
+
|
17
|
+
$$.console.log ReactDOMServer.renderToStaticMarkup(
|
18
|
+
CommentBox()
|
19
|
+
)
|
metadata
ADDED
@@ -0,0 +1,122 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: opal-react
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- John Susi
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-09-20 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: opal-rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: opal
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
description: ''
|
70
|
+
email:
|
71
|
+
- john@susi.se
|
72
|
+
executables: []
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files: []
|
75
|
+
files:
|
76
|
+
- ".gitignore"
|
77
|
+
- Gemfile
|
78
|
+
- LICENSE
|
79
|
+
- LICENSE.txt
|
80
|
+
- README.md
|
81
|
+
- Rakefile
|
82
|
+
- config.ru
|
83
|
+
- dist/opal-react.js
|
84
|
+
- dist/opal-react.js.map
|
85
|
+
- examples/todoapp/Gemfile
|
86
|
+
- examples/todoapp/Rakefile
|
87
|
+
- examples/todoapp/application.rb
|
88
|
+
- examples/todoapp/index.html
|
89
|
+
- lib/opal/react.rb
|
90
|
+
- lib/opal/react/component.rb
|
91
|
+
- lib/opal/react/version.rb
|
92
|
+
- opal-react.gemspec
|
93
|
+
- spec/index.html.erb
|
94
|
+
- tutorial/package.json
|
95
|
+
- tutorial/tutorial1.html
|
96
|
+
- tutorial/tutorial1.rb
|
97
|
+
homepage: https://github.com/johnsusi/opal-react
|
98
|
+
licenses:
|
99
|
+
- MIT
|
100
|
+
metadata: {}
|
101
|
+
post_install_message:
|
102
|
+
rdoc_options: []
|
103
|
+
require_paths:
|
104
|
+
- lib
|
105
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
|
+
requirements:
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: '0'
|
115
|
+
requirements: []
|
116
|
+
rubyforge_project:
|
117
|
+
rubygems_version: 2.4.8
|
118
|
+
signing_key:
|
119
|
+
specification_version: 4
|
120
|
+
summary: Proper port of ReactJS to Opal.
|
121
|
+
test_files:
|
122
|
+
- spec/index.html.erb
|