isomorfeus-react 16.12.19 → 16.12.20

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 132a99117abaac3fec23a796fc8ecfcbf5345e3958610a1f99e323121c585bd7
4
- data.tar.gz: 819016d219fbb375aa3099fe42ab632b25482de9d4994c17cc566d86b9ecf2b6
3
+ metadata.gz: 5cd560bbc4d738f45fc2fc376accd70646fea4e685125fa625f36cda2951325e
4
+ data.tar.gz: 18316ba50bcef63a799ed6840f034948a93f1aacf89f0f6f5f46f9459b28f902
5
5
  SHA512:
6
- metadata.gz: a15c75fcc3c20763f875572b36bd65eb98d756675f83beeab24272804911febf0e76e9cc975e8d8319478d0103f7c1cd2e49942131b3821b833d2dbfa2679412
7
- data.tar.gz: 49436125dcab5c7fb04a4ad8201b20e6f242cfe83110d4319db06a2e347302188e6f46562c213789ee31954ea30b91a764334eddef9873186a5603a4593d0ed3
6
+ metadata.gz: 71819e7ad7d0832eabb0428ef7aa7758bd79cc6db7ef18d4d9175599852cd4ccb9b39a244780b4f3b6863db41d779921d9608b721febeca0e73e62ae7201a1ad
7
+ data.tar.gz: d0fece0bcb479b7f24639fc1599024e82530060205b5cf35cac5200366ad352be64978ce4dd323221a597b317eb731674b251d5e5829a2b1935eb3623739967f
@@ -126,6 +126,7 @@ if RUBY_ENGINE == 'opal'
126
126
 
127
127
  Isomorfeus.zeitwerk.push_dir('components')
128
128
  else
129
+ require 'uri'
129
130
  require 'oj'
130
131
  require 'opal'
131
132
  require 'opal-activesupport'
@@ -150,18 +150,7 @@ module Isomorfeus
150
150
  }
151
151
  }
152
152
  else
153
- unless @v.match? /\A([a-zA-Z][\-+.a-zA-Z\d]*):(?:((?:[\-_.!~*'()a-zA-Z\d;?:@&=+$,]|%[a-fA-F\d]{2})(?:[\-_.!~*'()a-zA-Z\d;\/?:@&=+$,\[\]]|
154
- %[a-fA-F\d]{2})*)|(?:(?:\/\/(?:(?:(?:((?:[\-_.!~*'()a-zA-Z\d;:&=+$,]|%[a-fA-F\d]{2})*)@)?(?:((?:(?:[a-zA-Z0-9\-.]|
155
- %\h\h)+|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|\[(?:(?:[a-fA-F\d]{1,4}:)*(?:[a-fA-F\d]{1,4}|
156
- \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})|
157
- (?:(?:[a-fA-F\d]{1,4}:)*[a-fA-F\d]{1,4})?::(?:(?:[a-fA-F\d]{1,4}:)*(?:[a-fA-F\d]{1,4}|
158
- \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}))?)\]))(?::(\d*))?))?|((?:[\-_.!~*'()a-zA-Z\d$,;:@&=+]|%[a-fA-F\d]{2})+))|
159
- (?!\/\/))(\/(?:[\-_.!~*'()a-zA-Z\d:@&=+$,]|%[a-fA-F\d]{2})*(?:;(?:[\-_.!~*'()a-zA-Z\d:@&=+$,]|
160
- %[a-fA-F\d]{2})*)*(?:\/(?:[\-_.!~*'()a-zA-Z\d:@&=+$,]|%[a-fA-F\d]{2})*(?:;(?:[\-_.!~*'()a-zA-Z\d:@&=+$,]|
161
- %[a-fA-F\d]{2})*)*)*)?)(?:\?((?:[\-_.!~*'()a-zA-Z\d;\/?:@&=+$,\[\]]|
162
- %[a-fA-F\d]{2})*))?)(?:\#((?:[\-_.!~*'()a-zA-Z\d;\/?:@&=+$,\[\]]|%[a-fA-F\d]{2})*))?\z/x
163
- Isomorfeus.raise_error(message: "#{@c}: #{@p} is not a valid uri")
164
- end
153
+ Isomorfeus.raise_error(message: "#{@c}: #{@p} is not a valid uri") unless @v.match? /\A#{URI.regexp}\z/
165
154
  end
166
155
  end
167
156
  end
data/lib/react.rb CHANGED
@@ -28,6 +28,12 @@ module React
28
28
  return element;
29
29
  };
30
30
 
31
+ self.native_to_ruby_event = function(event) {
32
+ if (event.hasOwnProperty('target')) { return #{::React::SyntheticEvent.new(`event`)}; }
33
+ else if (Array.isArray(event)) { return event; }
34
+ else { return Opal.Hash.$new(event); }
35
+ };
36
+
31
37
  self.to_native_react_props = function(ruby_style_props) {
32
38
  let result = {};
33
39
  let keys = ruby_style_props.$keys();
@@ -41,18 +47,14 @@ module React
41
47
  if (type === "function") {
42
48
  let active_c = self.active_component();
43
49
  result[Opal.React.lower_camelize(key)] = function(event, info) {
44
- let ruby_event;
45
- if (typeof event === "object") { #{ruby_event = ::React::SyntheticEvent.new(`event`)}; }
46
- else { ruby_event = event; }
47
- #{`active_c.__ruby_instance`.instance_exec(ruby_event, `info`, &`handler`)};
50
+ let ruby_event = Opal.React.native_to_ruby_event(event);
51
+ #{`active_c.__ruby_instance`.instance_exec(`ruby_event`, `info`, &`handler`)};
48
52
  }
49
53
  } else if (type === "object" && typeof handler.$call === "function" ) {
50
54
  if (!handler.react_event_handler_function) {
51
55
  handler.react_event_handler_function = function(event, info) {
52
- let ruby_event;
53
- if (typeof event === "object") { #{ruby_event = ::React::SyntheticEvent.new(`event`)}; }
54
- else { ruby_event = event; }
55
- handler.$call(ruby_event, `info`)
56
+ let ruby_event = Opal.React.native_to_ruby_event(event);
57
+ handler.$call(ruby_event, info)
56
58
  };
57
59
  }
58
60
  result[Opal.React.lower_camelize(key)] = handler.react_event_handler_function;
@@ -73,10 +75,8 @@ module React
73
75
  if (method_ref) {
74
76
  if (!method_ref.react_event_handler_function) {
75
77
  method_ref.react_event_handler_function = function(event, info) {
76
- let ruby_event;
77
- if (typeof event === "object") { #{ruby_event = ::React::SyntheticEvent.new(`event`)}; }
78
- else { ruby_event = event; }
79
- method_ref.$call(ruby_event, `info`)
78
+ let ruby_event = Opal.React.native_to_ruby_event(event);
79
+ method_ref.$call(ruby_event, info)
80
80
  };
81
81
  }
82
82
  result[Opal.React.lower_camelize(key)] = method_ref.react_event_handler_function;
data/lib/react/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module React
2
- VERSION = '16.12.19'
2
+ VERSION = '16.12.20'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isomorfeus-react
3
3
  version: !ruby/object:Gem::Version
4
- version: 16.12.19
4
+ version: 16.12.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Biedermann
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 4.0.17
103
+ version: 4.0.18
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 4.0.17
110
+ version: 4.0.18
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: isomorfeus-speednode
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -275,13 +275,7 @@ licenses:
275
275
  - MIT
276
276
  metadata:
277
277
  github_repo: ssh://github.com/isomorfeus/gems
278
- post_install_message: |2+
279
-
280
- isomorfeus-react 16.12.19:
281
- Breaking change:
282
- The event_handler DSL is gone. Instead use normal methods and method_ref, see:
283
- https://github.com/isomorfeus/isomorfeus-react/blob/master/ruby/docs/events.md
284
-
278
+ post_install_message:
285
279
  rdoc_options: []
286
280
  require_paths:
287
281
  - lib