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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 314d1859d8e8e051b18b90484662ae2526e3be84
4
- data.tar.gz: 29c7e619fc9b697cb3ff46c789263a02885f83aa
2
+ SHA256:
3
+ metadata.gz: 86768c3348a431a1b97b43fddcced051f69aa697270ddc39baa5ebf249f4d0d6
4
+ data.tar.gz: 32a0527f8adef0613cf12b8eacbc805e832207fd2bc05cbc92d918aa41c3b97b
5
5
  SHA512:
6
- metadata.gz: 7990411e5e26fc997a3d1eed87fe34637e2b4b4e26e50b3baf9bba293e838b589d2caa37b24113c0249d8dc4c9b40e22441198fdcb4cc16ea478a713f2975719
7
- data.tar.gz: efb54ea4ffa7d33616dcfea439774bfee7bbfdd5a1718340c3c92358677b4e46cdaa4cc803e95180f7903dcf9c7dc8b5384ec7dac14bb48f12c4d16b38075615
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.0'
29
+ gem 'opal-rails', '~> 0.9.4'
30
30
  gem 'react-rails', '~> 2.4.0', require: false
31
31
  end
data/Gemfile CHANGED
@@ -1,4 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
  gem "opal-jquery", git: "https://github.com/opal/opal-jquery.git", branch: "master"
3
- gem "opal-rails", git: "https://github.com/opal/opal-rails.git", branch: "master"
4
3
  gemspec
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
- # 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']
32
+ require "bundler/gem_tasks"
33
+ require "rspec/core/rake_task"
8
34
 
9
- require 'rspec/core/rake_task'
10
- require 'opal/rspec/rake_task'
35
+ RSpec::Core::RakeTask.new(:spec)
11
36
 
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")
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: [ :test ]
44
+ task :default => :spec
data/dciy.toml CHANGED
@@ -1,3 +1,3 @@
1
1
  [dciy.commands]
2
- prepare = ["./dciy_prepare.sh"]
3
- cibuild = ["./dciy_run.sh"]
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.3'
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
@@ -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 `ReactDOM.findDOMNode !== undefined && #{native_inst}.nodeType === undefined`
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)
@@ -1,3 +1,3 @@
1
1
  module React
2
- VERSION = '1.0.0.lap22'
2
+ VERSION = '1.0.0.lap23'
3
3
  end
@@ -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']}" # aboids json serialisation errors by using "#{}"
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.lap22
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-15 00:00:00.000000000 Z
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.lap22
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.lap22
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.lap22
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.lap22
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.3
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.3
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.6.12
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
@@ -1,8 +0,0 @@
1
- #!/bin/bash
2
- export HYPER_DEV_GEM_SOURCE='https://gems.ruby-hyperloop.org'
3
- export RAILS_ENV="test"
4
- bundle update
5
- cd spec/test_app
6
- bundle update
7
- bundle exec rails db:setup
8
- cd ../..
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