hyper-react 1.0.0.lap22 → 1.0.0.lap23
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 +5 -5
- data/Appraisals +1 -1
- data/Gemfile +0 -1
- data/Rakefile +39 -25
- data/dciy.toml +2 -2
- data/hyper-react.gemspec +1 -1
- data/lib/react/api.rb +2 -2
- data/lib/react/event.rb +12 -12
- data/lib/react/ref_callback.rb +2 -2
- data/lib/reactive-ruby/version.rb +1 -1
- data/spec/react/refs_callback_spec.rb +30 -1
- metadata +9 -11
- data/dciy_prepare.sh +0 -8
- data/dciy_run.sh +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 86768c3348a431a1b97b43fddcced051f69aa697270ddc39baa5ebf249f4d0d6
|
4
|
+
data.tar.gz: 32a0527f8adef0613cf12b8eacbc805e832207fd2bc05cbc92d918aa41c3b97b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bcb9c31c77e0efae816a0a67a91c0fbc02f63ab06ea2e014e31f943aff6c15ccc8500d1eb5f1ccff30158d232a90f87ab089492395f76c93858fdb4127eb2f57
|
7
|
+
data.tar.gz: f53942a3396b92b43ddd7194e171ba759b5005d3fc31266714fa10d72af34fed92276ec1bcf4f69b870fae69c0b3101f080e2b3aab06c02b0190bdacd22e4fdf
|
data/Appraisals
CHANGED
@@ -26,6 +26,6 @@ appraise "opal-master-react-15" do
|
|
26
26
|
ruby '>= 2.0.0'
|
27
27
|
gem 'opal', git: 'https://github.com/opal/opal.git'
|
28
28
|
gem "opal-sprockets", git: 'https://github.com/opal/opal-sprockets.git'
|
29
|
-
gem 'opal-rails', '~> 0.9.
|
29
|
+
gem 'opal-rails', '~> 0.9.4'
|
30
30
|
gem 'react-rails', '~> 2.4.0', require: false
|
31
31
|
end
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -1,30 +1,44 @@
|
|
1
|
-
require 'bundler'
|
2
|
-
Bundler.require
|
3
|
-
Bundler::GemHelper.install_tasks
|
1
|
+
# require 'bundler'
|
2
|
+
# Bundler.require
|
3
|
+
# Bundler::GemHelper.install_tasks
|
4
|
+
#
|
5
|
+
# # Store the BUNDLE_GEMFILE env, since rake or rspec seems to clean it
|
6
|
+
# # while invoking task.
|
7
|
+
# ENV['REAL_BUNDLE_GEMFILE'] = ENV['BUNDLE_GEMFILE']
|
8
|
+
#
|
9
|
+
# require 'rspec/core/rake_task'
|
10
|
+
# require 'opal/rspec/rake_task'
|
11
|
+
#
|
12
|
+
# RSpec::Core::RakeTask.new('ruby:rspec')
|
13
|
+
#
|
14
|
+
# task :test do
|
15
|
+
# Rake::Task['ruby:rspec'].invoke
|
16
|
+
# end
|
17
|
+
#
|
18
|
+
# require 'generators/reactive_ruby/test_app/test_app_generator'
|
19
|
+
# desc "Generates a dummy app for testing"
|
20
|
+
# task :test_app do
|
21
|
+
# ReactiveRuby::TestAppGenerator.start
|
22
|
+
# puts "Setting up test app database..."
|
23
|
+
# system("bundle exec rake db:drop db:create db:migrate > #{File::NULL}")
|
24
|
+
# end
|
25
|
+
#
|
26
|
+
# task :test_prepare do
|
27
|
+
# system("./dciy_prepare.sh")
|
28
|
+
# end
|
29
|
+
#
|
30
|
+
# task default: [ :test ]
|
4
31
|
|
5
|
-
|
6
|
-
|
7
|
-
ENV['REAL_BUNDLE_GEMFILE'] = ENV['BUNDLE_GEMFILE']
|
32
|
+
require "bundler/gem_tasks"
|
33
|
+
require "rspec/core/rake_task"
|
8
34
|
|
9
|
-
|
10
|
-
require 'opal/rspec/rake_task'
|
35
|
+
RSpec::Core::RakeTask.new(:spec)
|
11
36
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
end
|
17
|
-
|
18
|
-
require 'generators/reactive_ruby/test_app/test_app_generator'
|
19
|
-
desc "Generates a dummy app for testing"
|
20
|
-
task :test_app do
|
21
|
-
ReactiveRuby::TestAppGenerator.start
|
22
|
-
puts "Setting up test app database..."
|
23
|
-
system("bundle exec rake db:drop db:create db:migrate > #{File::NULL}")
|
24
|
-
end
|
25
|
-
|
26
|
-
task :test_prepare do
|
27
|
-
system("./dciy_prepare.sh")
|
37
|
+
namespace :spec do
|
38
|
+
task :prepare do
|
39
|
+
sh %{bundle update}
|
40
|
+
sh %{cd spec/test_app; bundle update}
|
41
|
+
end
|
28
42
|
end
|
29
43
|
|
30
|
-
task default
|
44
|
+
task :default => :spec
|
data/dciy.toml
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
[dciy.commands]
|
2
|
-
prepare = ["
|
3
|
-
cibuild = ["
|
2
|
+
prepare = ["rake spec:prepare"]
|
3
|
+
cibuild = ["bundle exec rake"]
|
data/hyper-react.gemspec
CHANGED
@@ -33,7 +33,7 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.add_development_dependency 'mime-types'
|
34
34
|
spec.add_development_dependency 'nokogiri'
|
35
35
|
spec.add_development_dependency 'opal-jquery'
|
36
|
-
spec.add_development_dependency 'opal-rails', '~> 0.9.
|
36
|
+
spec.add_development_dependency 'opal-rails', '~> 0.9.4'
|
37
37
|
spec.add_development_dependency 'opal-rspec'
|
38
38
|
spec.add_development_dependency 'rails', '>= 4.0.0'
|
39
39
|
spec.add_development_dependency 'rails-controller-testing'
|
data/lib/react/api.rb
CHANGED
@@ -174,9 +174,9 @@ module React
|
|
174
174
|
elsif key == 'ref' && value.is_a?(Proc)
|
175
175
|
props[key] = %x{
|
176
176
|
function(dom_node){
|
177
|
-
if (dom_node.__opalInstance !== undefined && dom_node.__opalInstance !== null) {
|
177
|
+
if (dom_node !== null && dom_node.__opalInstance !== undefined && dom_node.__opalInstance !== null) {
|
178
178
|
#{ value.call(`dom_node.__opalInstance`) };
|
179
|
-
} else if(ReactDOM.findDOMNode !== undefined && dom_node.nodeType === undefined) {
|
179
|
+
} else if(dom_node !== null && ReactDOM.findDOMNode !== undefined && dom_node.nodeType === undefined) {
|
180
180
|
#{ value.call(`ReactDOM.findDOMNode(dom_node)`) };
|
181
181
|
} else {
|
182
182
|
#{ value.call(`dom_node`) };
|
data/lib/react/event.rb
CHANGED
@@ -31,27 +31,27 @@ module React
|
|
31
31
|
# Focus
|
32
32
|
alias_native :related_target, :relatedTarget
|
33
33
|
# Mouse
|
34
|
-
alias_native :alt_key, :altKey
|
34
|
+
# aliased above: alias_native :alt_key, :altKey
|
35
35
|
alias_native :button, :button
|
36
36
|
alias_native :buttons, :buttons
|
37
37
|
alias_native :client_x, :clientX
|
38
38
|
alias_native :client_y, :clientY
|
39
|
-
alias_native :ctrl_key, :ctrlKey
|
39
|
+
# aliased above: alias_native :ctrl_key, :ctrlKey
|
40
40
|
alias_native :get_modifier_state, :getModifierState
|
41
|
-
alias_native :meta_key, :metaKey
|
41
|
+
# aliased above: alias_native :meta_key, :metaKey
|
42
42
|
alias_native :page_x, :pageX
|
43
43
|
alias_native :page_y, :pageY
|
44
|
-
alias_native :related_target, :relatedTarget
|
44
|
+
# aliased above: alias_native :related_target, :relatedTarget
|
45
45
|
alias_native :screen_x, :screen_x
|
46
46
|
alias_native :screen_y, :screen_y
|
47
|
-
alias_native :shift_key, :shift_key
|
47
|
+
# aliased above: alias_native :shift_key, :shift_key
|
48
48
|
# Touch
|
49
|
-
alias_native :alt_key, :altKey
|
49
|
+
# aliased above: alias_native :alt_key, :altKey
|
50
50
|
alias_native :changed_touches, :changedTouches
|
51
|
-
alias_native :ctrl_key, :ctrlKey
|
52
|
-
alias_native :get_modifier_state, :getModifierState
|
53
|
-
alias_native :meta_key, :metaKey
|
54
|
-
alias_native :shift_key, :shiftKey
|
51
|
+
# aliased above: alias_native :ctrl_key, :ctrlKey
|
52
|
+
# aliased above: alias_native :get_modifier_state, :getModifierState
|
53
|
+
# aliased above: alias_native :meta_key, :metaKey
|
54
|
+
# aliased above: alias_native :shift_key, :shiftKey
|
55
55
|
alias_native :target_touches, :targetTouches
|
56
56
|
alias_native :touches, :touches
|
57
57
|
# UI
|
@@ -64,10 +64,10 @@ module React
|
|
64
64
|
alias_native :delta_z, :deltaZ
|
65
65
|
|
66
66
|
BUILT_IN_EVENTS = %w{onCopy onCut onPaste onKeyDown onKeyPress onKeyUp
|
67
|
-
onFocus onBlur onChange onInput onSubmit onClick onDoubleClick onDrag
|
67
|
+
onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick onDrag
|
68
68
|
onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop
|
69
69
|
onMouseDown onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver
|
70
|
-
onMouseUp onTouchCancel onTouchEnd onTouchMove onTouchStart onScroll}
|
70
|
+
onMouseUp onSelect onTouchCancel onTouchEnd onTouchMove onTouchStart onScroll onWheel}
|
71
71
|
|
72
72
|
def initialize(native_element)
|
73
73
|
@native = native_element
|
data/lib/react/ref_callback.rb
CHANGED
@@ -14,9 +14,9 @@ module React
|
|
14
14
|
props.map do |key, value|
|
15
15
|
if key == "ref" && value.is_a?(Proc)
|
16
16
|
new_proc = Proc.new do |native_inst|
|
17
|
-
if `#{native_inst}.__opalInstance !== undefined && #{native_inst}.__opalInstance !== null`
|
17
|
+
if `#{native_inst} !== null && #{native_inst}.__opalInstance !== undefined && #{native_inst}.__opalInstance !== null`
|
18
18
|
value.call(`#{native_inst}.__opalInstance`)
|
19
|
-
elsif
|
19
|
+
elsif `#{native_inst} !== null && ReactDOM.findDOMNode !== undefined && #{native_inst}.nodeType === undefined`
|
20
20
|
value.call(`ReactDOM.findDOMNode(#{native_inst})`) # react >= v0.15.`)
|
21
21
|
else
|
22
22
|
value.call(native_inst)
|
@@ -59,7 +59,36 @@ describe 'Refs callback', js: true do
|
|
59
59
|
|
60
60
|
element = React.create_element(Foo)
|
61
61
|
React::Test::Utils.render_into_document(element)
|
62
|
-
"#{Foo.bar.JS['nodeType']}" #
|
62
|
+
"#{Foo.bar.JS['nodeType']}" # avoids json serialisation errors by using "#{}"
|
63
63
|
end.to eq("1")
|
64
64
|
end
|
65
|
+
|
66
|
+
it "works, even when the component is unmounted" do
|
67
|
+
# was a bug, on unmount react calls the ref method with null instead of a dom node
|
68
|
+
# callback failed then
|
69
|
+
# ref is called two times, once on mount with dom_node, once on unmount with null
|
70
|
+
mount "Foo" do
|
71
|
+
class Unmountable < Hyperloop::Component
|
72
|
+
render do
|
73
|
+
DIV { "This is a Component" }
|
74
|
+
end
|
75
|
+
end
|
76
|
+
Foo.class_eval do
|
77
|
+
def ref_rec(dom_node)
|
78
|
+
@@rec_cnt ||= 0
|
79
|
+
@@rec_cnt += 1
|
80
|
+
end
|
81
|
+
def self.rec_cnt
|
82
|
+
@@rec_cnt
|
83
|
+
end
|
84
|
+
|
85
|
+
after_mount { mutate.unmount true }
|
86
|
+
|
87
|
+
render do
|
88
|
+
Unmountable(ref: method(:ref_rec).to_proc) unless state.unmount
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
expect_evaluate_ruby('Foo.rec_cnt').to eq(2)
|
93
|
+
end
|
65
94
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hyper-react
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.lap23
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Chang
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2018-02-
|
14
|
+
date: 2018-02-18 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: hyper-store
|
@@ -19,14 +19,14 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - '='
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.0.0.
|
22
|
+
version: 1.0.0.lap23
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - '='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 1.0.0.
|
29
|
+
version: 1.0.0.lap23
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: opal
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -81,14 +81,14 @@ dependencies:
|
|
81
81
|
requirements:
|
82
82
|
- - '='
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: 1.0.0.
|
84
|
+
version: 1.0.0.lap23
|
85
85
|
type: :development
|
86
86
|
prerelease: false
|
87
87
|
version_requirements: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
89
|
- - '='
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version: 1.0.0.
|
91
|
+
version: 1.0.0.lap23
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: jquery-rails
|
94
94
|
requirement: !ruby/object:Gem::Requirement
|
@@ -165,14 +165,14 @@ dependencies:
|
|
165
165
|
requirements:
|
166
166
|
- - "~>"
|
167
167
|
- !ruby/object:Gem::Version
|
168
|
-
version: 0.9.
|
168
|
+
version: 0.9.4
|
169
169
|
type: :development
|
170
170
|
prerelease: false
|
171
171
|
version_requirements: !ruby/object:Gem::Requirement
|
172
172
|
requirements:
|
173
173
|
- - "~>"
|
174
174
|
- !ruby/object:Gem::Version
|
175
|
-
version: 0.9.
|
175
|
+
version: 0.9.4
|
176
176
|
- !ruby/object:Gem::Dependency
|
177
177
|
name: opal-rspec
|
178
178
|
requirement: !ruby/object:Gem::Requirement
|
@@ -341,8 +341,6 @@ files:
|
|
341
341
|
- UPGRADING.md
|
342
342
|
- component-name-lookup.md
|
343
343
|
- dciy.toml
|
344
|
-
- dciy_prepare.sh
|
345
|
-
- dciy_run.sh
|
346
344
|
- hyper-react.gemspec
|
347
345
|
- lib/generators/reactive_ruby/test_app/templates/assets/javascripts/components.rb
|
348
346
|
- lib/generators/reactive_ruby/test_app/templates/assets/javascripts/server_rendering.js
|
@@ -530,7 +528,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
530
528
|
version: 1.3.1
|
531
529
|
requirements: []
|
532
530
|
rubyforge_project:
|
533
|
-
rubygems_version: 2.
|
531
|
+
rubygems_version: 2.7.3
|
534
532
|
signing_key:
|
535
533
|
specification_version: 4
|
536
534
|
summary: Opal Ruby wrapper of React.js library.
|
data/dciy_prepare.sh
DELETED
data/dciy_run.sh
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
export HYPER_DEV_GEM_SOURCE="https://gems.ruby-hyperloop.org"
|
3
|
-
export RAILS_ENV="test"
|
4
|
-
pwd
|
5
|
-
echo
|
6
|
-
echo "Running with Chrome headless"
|
7
|
-
DRIVER=headless bundle exec rspec
|
8
|
-
# echo
|
9
|
-
# echo "Running with Firefox headless"
|
10
|
-
# DRIVER=beheaded bundle exec rspec
|