hyper-component 1.0.alpha1.3 → 1.0.alpha1.8
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 +4 -4
- data/.gitignore +4 -0
- data/Gemfile +5 -0
- data/hyper-component.gemspec +8 -16
- data/lib/hyper-component.rb +8 -1
- data/lib/hyperstack/component.rb +46 -10
- data/lib/hyperstack/component/children.rb +1 -1
- data/lib/hyperstack/component/element.rb +93 -21
- data/lib/hyperstack/component/event.rb +1 -1
- data/lib/hyperstack/component/free_render.rb +21 -0
- data/lib/hyperstack/component/isomorphic_helpers.rb +13 -10
- data/lib/hyperstack/component/version.rb +1 -1
- data/lib/hyperstack/component/while_loading.rb +1 -1
- data/lib/hyperstack/ext/component/array.rb +20 -0
- data/lib/hyperstack/ext/component/element.rb +5 -7
- data/lib/hyperstack/ext/component/enumerable.rb +18 -0
- data/lib/hyperstack/ext/component/kernel.rb +7 -0
- data/lib/hyperstack/ext/component/time.rb +5 -0
- data/lib/hyperstack/internal/component/class_methods.rb +4 -3
- data/lib/hyperstack/internal/component/haml.rb +3 -12
- data/lib/hyperstack/internal/component/props_wrapper.rb +13 -11
- data/lib/hyperstack/internal/component/rails/component_mount.rb +12 -0
- data/lib/hyperstack/internal/component/rails/controller_helper.rb +1 -1
- data/lib/hyperstack/internal/component/rails/railtie.rb +3 -2
- data/lib/hyperstack/internal/component/rails/server_rendering/contextual_renderer.rb +5 -1
- data/lib/hyperstack/internal/component/rails/server_rendering/hyper_asset_container.rb +4 -2
- data/lib/hyperstack/internal/component/react_wrapper.rb +77 -60
- data/lib/hyperstack/internal/component/rendering_context.rb +80 -44
- data/lib/hyperstack/internal/component/rescue_wrapper.rb +1 -1
- data/lib/hyperstack/internal/component/tags.rb +12 -3
- data/lib/react/react-source.rb +2 -2
- metadata +51 -89
- data/Gemfile.lock +0 -364
@@ -19,27 +19,41 @@ module Hyperstack
|
|
19
19
|
raise NotQuiet.new("#{component} is waiting on resources")
|
20
20
|
end
|
21
21
|
|
22
|
+
def render_string(string)
|
23
|
+
@buffer ||= []
|
24
|
+
@buffer << string
|
25
|
+
end
|
26
|
+
|
22
27
|
def render(name, *args, &block)
|
23
28
|
was_outer_most = !@not_outer_most
|
24
29
|
@not_outer_most = true
|
25
30
|
remove_nodes_from_args(args)
|
26
|
-
@buffer ||= [] unless @buffer
|
31
|
+
@buffer ||= [] #unless @buffer
|
27
32
|
if block
|
28
33
|
element = build do
|
29
34
|
saved_waiting_on_resources = nil #waiting_on_resources what was the purpose of this its used below to or in with the current elements waiting_for_resources
|
30
35
|
self.waiting_on_resources = nil
|
31
|
-
run_child_block(
|
36
|
+
run_child_block(&block)
|
32
37
|
if name
|
33
38
|
buffer = @buffer.dup
|
34
39
|
ReactWrapper.create_element(name, *args) { buffer }.tap do |element|
|
35
40
|
element.waiting_on_resources = saved_waiting_on_resources || !!buffer.detect { |e| e.waiting_on_resources if e.respond_to?(:waiting_on_resources) }
|
36
41
|
element.waiting_on_resources ||= waiting_on_resources if buffer.last.is_a?(String)
|
37
42
|
end
|
38
|
-
elsif @buffer.last.is_a? Hyperstack::Component::Element
|
39
|
-
@buffer.last.tap { |element| element.waiting_on_resources ||= saved_waiting_on_resources }
|
40
43
|
else
|
41
|
-
|
42
|
-
|
44
|
+
buffer = @buffer.collect do |item|
|
45
|
+
if item.is_a? Hyperstack::Component::Element
|
46
|
+
item.waiting_on_resources ||= saved_waiting_on_resources
|
47
|
+
item
|
48
|
+
else
|
49
|
+
RenderingContext.render(:span) { item.to_s }.tap { |element| element.waiting_on_resources = saved_waiting_on_resources }
|
50
|
+
end
|
51
|
+
end
|
52
|
+
if buffer.length > 1
|
53
|
+
buffer
|
54
|
+
else
|
55
|
+
buffer.first
|
56
|
+
end
|
43
57
|
end
|
44
58
|
end
|
45
59
|
elsif name.is_a? Hyperstack::Component::Element
|
@@ -65,6 +79,7 @@ module Hyperstack
|
|
65
79
|
|
66
80
|
def delete(element)
|
67
81
|
@buffer.delete(element)
|
82
|
+
@last_deleted = element
|
68
83
|
element
|
69
84
|
end
|
70
85
|
alias as_node delete
|
@@ -86,55 +101,74 @@ module Hyperstack
|
|
86
101
|
end if args[0] && args[0].is_a?(Hash)
|
87
102
|
end
|
88
103
|
|
89
|
-
# run_child_block
|
104
|
+
# run_child_block yields to the child rendering block which will put any
|
105
|
+
# elements to be rendered into the current rendering buffer.
|
106
|
+
#
|
90
107
|
# for example when rendering this div: div { "hello".span; "goodby".span }
|
91
108
|
# two child Elements will be generated.
|
92
109
|
#
|
93
|
-
# the
|
94
|
-
#
|
95
|
-
#
|
96
|
-
#
|
97
|
-
# 4 or the last element pushed on the buffer
|
110
|
+
# However the block itself will return a value, which in some cases should
|
111
|
+
# also added to the buffer:
|
112
|
+
#
|
113
|
+
# If the final value of the block is a
|
98
114
|
#
|
99
|
-
#
|
100
|
-
#
|
101
|
-
#
|
102
|
-
#
|
115
|
+
# a hyper model dummy value that is being loaded, then wrap it in a span and add it to the buffer
|
116
|
+
# a string (or if the buffer is empty any value), then add it to the buffer
|
117
|
+
# an Element, then add it on the buffer unless it has been just deleted
|
118
|
+
# #
|
119
|
+
# Note that the reason we don't always allow Strings to be automatically pushed is
|
120
|
+
# to avoid confusing results in situations like this:
|
121
|
+
# DIV { collection.each { |item| SPAN { item } } }
|
122
|
+
# If we accepted any object to be rendered this would generate:
|
123
|
+
# DIV { SPAN { collection[0] } SPAN { collection[n] } collection.to_s }
|
124
|
+
# which is probably not the desired output. If it was you would just append to_s
|
125
|
+
# to the end of the expression, to force it to be added to the output buffer.
|
103
126
|
#
|
104
|
-
#
|
105
|
-
#
|
106
|
-
# so we insure that is the case, and also check to make sure that element in the buffer
|
107
|
-
# is the element returned
|
127
|
+
# However if the buffer is empty then it makes sense to automatically apply the `.to_s`
|
128
|
+
# to the value, and push it on the buffer, unless it is a falsy value or an array
|
108
129
|
|
109
|
-
def run_child_block
|
130
|
+
def run_child_block
|
110
131
|
result = yield
|
111
|
-
|
112
|
-
|
132
|
+
check_for_component_return(result)
|
133
|
+
if dummy_value?(result)
|
134
|
+
# hyper-mesh DummyValues must
|
113
135
|
# be converted to spans INSIDE the parent, otherwise the waiting_on_resources
|
114
136
|
# flag will get set in the wrong context
|
115
137
|
RenderingContext.render(:span) { result.to_s }
|
116
|
-
elsif result.is_a?(
|
117
|
-
@buffer << result
|
138
|
+
elsif result.is_a?(Hyperstack::Component::Element)
|
139
|
+
@buffer << result if @buffer.empty? unless @last_deleted == result
|
140
|
+
elsif pushable_string?(result)
|
141
|
+
@buffer << result.to_s
|
118
142
|
end
|
119
|
-
|
143
|
+
@last_deleted = nil
|
120
144
|
end
|
121
145
|
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
146
|
+
def check_for_component_return(result)
|
147
|
+
# check for a common error of saying (for example) DIV (without parens)
|
148
|
+
# which returns the DIV component class instead of a rendered DIV
|
149
|
+
return unless result.try :hyper_component?
|
150
|
+
|
151
|
+
Hyperstack::Component::IsomorphicHelpers.log(
|
152
|
+
"a component's render method returned the component class #{result}, did you mean to say #{result}()",
|
153
|
+
:warning
|
154
|
+
)
|
155
|
+
end
|
156
|
+
|
157
|
+
def dummy_value?(result)
|
158
|
+
result.respond_to?(:loading?) && result.loading?
|
159
|
+
end
|
160
|
+
|
161
|
+
def pushable_string?(result)
|
162
|
+
# if the buffer is not empty we will only push on strings, and ignore anything else
|
163
|
+
return result.is_a?(String) unless @buffer.empty?
|
164
|
+
|
165
|
+
# if the buffer IS empty then we can push on anything except we avoid nil, false and arrays
|
166
|
+
# as these are almost never what you want to render, and if you do there are mechanisms
|
167
|
+
# to render them explicitly
|
168
|
+
result && result.respond_to?(:to_n) && !result.is_a?(Array)
|
133
169
|
end
|
134
170
|
|
135
171
|
def improper_render(message, solution)
|
136
|
-
raise "a component's render method must generate and return exactly 1 element or a string.\n"\
|
137
|
-
" #{message} #{solution}"
|
138
172
|
end
|
139
173
|
end
|
140
174
|
end
|
@@ -143,7 +177,7 @@ module Hyperstack
|
|
143
177
|
end
|
144
178
|
|
145
179
|
class Object
|
146
|
-
[
|
180
|
+
%i[span td th].each do |tag|
|
147
181
|
define_method(tag) do |*args, &block|
|
148
182
|
args.unshift(tag)
|
149
183
|
# legacy hyperloop allowed tags to be lower case as well so if self is a component
|
@@ -155,24 +189,26 @@ class Object
|
|
155
189
|
# in the component.
|
156
190
|
# If we fully deprecate lowercase tags, then this next line can go...
|
157
191
|
return send(*args, &block) if respond_to?(:hyper_component?) && hyper_component?
|
192
|
+
|
158
193
|
Hyperstack::Internal::Component::RenderingContext.render(*args) { to_s }
|
159
194
|
end
|
160
195
|
end
|
161
196
|
|
162
|
-
|
163
197
|
def para(*args, &block)
|
164
198
|
args.unshift(:p)
|
165
199
|
# see above comment
|
166
200
|
return send(*args, &block) if respond_to?(:hyper_component?) && hyper_component?
|
201
|
+
|
167
202
|
Hyperstack::Internal::Component::RenderingContext.render(*args) { to_s }
|
168
203
|
end
|
169
204
|
|
170
205
|
def br
|
171
206
|
# see above comment
|
172
207
|
return send(:br) if respond_to?(:hyper_component?) && hyper_component?
|
173
|
-
|
174
|
-
|
175
|
-
Hyperstack::Internal::Component::RenderingContext.render(
|
208
|
+
|
209
|
+
Hyperstack::Internal::Component::RenderingContext.render(Hyperstack::Internal::Component::Tags::FRAGMENT) do
|
210
|
+
Hyperstack::Internal::Component::RenderingContext.render(Hyperstack::Internal::Component::Tags::FRAGMENT) { to_s }
|
211
|
+
Hyperstack::Internal::Component::RenderingContext.render(Hyperstack::Internal::Component::Tags::BR)
|
176
212
|
end
|
177
213
|
end
|
178
214
|
|
@@ -27,7 +27,7 @@ module Hyperstack
|
|
27
27
|
|
28
28
|
after_error do |error, info|
|
29
29
|
args = RescueWrapper.after_error_args || [error, info]
|
30
|
-
found, * = @Child.run_callback(:__hyperstack_component_rescue_hook, found, *args)
|
30
|
+
found, * = @Child.run_callback(:__hyperstack_component_rescue_hook, found, *args)
|
31
31
|
unless found
|
32
32
|
RescueWrapper.after_error_args = args
|
33
33
|
raise error
|
@@ -32,6 +32,14 @@ module Hyperstack
|
|
32
32
|
const_set tag.upcase, tag
|
33
33
|
end
|
34
34
|
|
35
|
+
const_set "FRAGMENT", (
|
36
|
+
Class.new do
|
37
|
+
include Hyperstack::Component
|
38
|
+
render {}
|
39
|
+
Hyperstack::Internal::Component::ReactWrapper.import_native_component(self, `React.Fragment`)
|
40
|
+
end
|
41
|
+
)
|
42
|
+
|
35
43
|
# this is used for haml style (i.e. DIV.foo.bar) class tags which is deprecated
|
36
44
|
def self.html_tag_class_for(tag)
|
37
45
|
downcased_tag = tag.downcase
|
@@ -85,11 +93,12 @@ module Hyperstack
|
|
85
93
|
|
86
94
|
def lookup_const(name)
|
87
95
|
return nil unless name =~ /^[A-Z]/
|
88
|
-
|
96
|
+
return Hyperstack::Internal::Component::Tags::FRAGMENT if name == "FRAGMENT"
|
97
|
+
scopes = self.class.name.to_s.split('::').inject([Object]) do |nesting, next_const|
|
89
98
|
nesting + [nesting.last.const_get(next_const)]
|
90
99
|
end.reverse
|
91
|
-
scope = scopes.detect { |s| s.const_defined?(name) }
|
92
|
-
scope.const_get(name) if scope
|
100
|
+
scope = scopes.detect { |s| s.const_defined?(name, false) }
|
101
|
+
scope.const_get(name, false) if scope
|
93
102
|
end
|
94
103
|
end
|
95
104
|
end
|
data/lib/react/react-source.rb
CHANGED
@@ -11,7 +11,7 @@ if RUBY_ENGINE == 'opal'
|
|
11
11
|
else
|
12
12
|
require "hyperstack/internal/component"
|
13
13
|
require "react/rails/asset_variant"
|
14
|
-
variant = Hyperstack.env.production? ?
|
15
|
-
react_directory = React::Rails::AssetVariant.new({
|
14
|
+
variant = Hyperstack.env.production? ? :production : :development
|
15
|
+
react_directory = React::Rails::AssetVariant.new({ variant: variant }).react_directory
|
16
16
|
Opal.append_path react_directory.untaint
|
17
17
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hyper-component
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.alpha1.
|
4
|
+
version: 1.0.alpha1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Chang
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date:
|
15
|
+
date: 2021-04-13 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: hyper-state
|
@@ -20,76 +20,28 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - '='
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 1.0.alpha1.
|
23
|
+
version: 1.0.alpha1.8
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
28
|
- - '='
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version: 1.0.alpha1.
|
30
|
+
version: 1.0.alpha1.8
|
31
31
|
- !ruby/object:Gem::Dependency
|
32
32
|
name: hyperstack-config
|
33
33
|
requirement: !ruby/object:Gem::Requirement
|
34
34
|
requirements:
|
35
35
|
- - '='
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: 1.0.alpha1.
|
37
|
+
version: 1.0.alpha1.8
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
requirements:
|
42
42
|
- - '='
|
43
43
|
- !ruby/object:Gem::Version
|
44
|
-
version: 1.0.alpha1.
|
45
|
-
- !ruby/object:Gem::Dependency
|
46
|
-
name: libv8
|
47
|
-
requirement: !ruby/object:Gem::Requirement
|
48
|
-
requirements:
|
49
|
-
- - "~>"
|
50
|
-
- !ruby/object:Gem::Version
|
51
|
-
version: 6.7.0
|
52
|
-
type: :runtime
|
53
|
-
prerelease: false
|
54
|
-
version_requirements: !ruby/object:Gem::Requirement
|
55
|
-
requirements:
|
56
|
-
- - "~>"
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
version: 6.7.0
|
59
|
-
- !ruby/object:Gem::Dependency
|
60
|
-
name: mini_racer
|
61
|
-
requirement: !ruby/object:Gem::Requirement
|
62
|
-
requirements:
|
63
|
-
- - "~>"
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
version: 0.2.4
|
66
|
-
type: :runtime
|
67
|
-
prerelease: false
|
68
|
-
version_requirements: !ruby/object:Gem::Requirement
|
69
|
-
requirements:
|
70
|
-
- - "~>"
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
version: 0.2.4
|
73
|
-
- !ruby/object:Gem::Dependency
|
74
|
-
name: opal
|
75
|
-
requirement: !ruby/object:Gem::Requirement
|
76
|
-
requirements:
|
77
|
-
- - ">="
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
version: 0.11.0
|
80
|
-
- - "<"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: 0.12.0
|
83
|
-
type: :runtime
|
84
|
-
prerelease: false
|
85
|
-
version_requirements: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 0.11.0
|
90
|
-
- - "<"
|
91
|
-
- !ruby/object:Gem::Version
|
92
|
-
version: 0.12.0
|
44
|
+
version: 1.0.alpha1.8
|
93
45
|
- !ruby/object:Gem::Dependency
|
94
46
|
name: opal-activesupport
|
95
47
|
requirement: !ruby/object:Gem::Requirement
|
@@ -130,20 +82,14 @@ dependencies:
|
|
130
82
|
requirements:
|
131
83
|
- - ">="
|
132
84
|
- !ruby/object:Gem::Version
|
133
|
-
version:
|
134
|
-
- - "<"
|
135
|
-
- !ruby/object:Gem::Version
|
136
|
-
version: '2.1'
|
85
|
+
version: '0'
|
137
86
|
type: :development
|
138
87
|
prerelease: false
|
139
88
|
version_requirements: !ruby/object:Gem::Requirement
|
140
89
|
requirements:
|
141
90
|
- - ">="
|
142
91
|
- !ruby/object:Gem::Version
|
143
|
-
version:
|
144
|
-
- - "<"
|
145
|
-
- !ruby/object:Gem::Version
|
146
|
-
version: '2.1'
|
92
|
+
version: '0'
|
147
93
|
- !ruby/object:Gem::Dependency
|
148
94
|
name: chromedriver-helper
|
149
95
|
requirement: !ruby/object:Gem::Requirement
|
@@ -164,14 +110,14 @@ dependencies:
|
|
164
110
|
requirements:
|
165
111
|
- - '='
|
166
112
|
- !ruby/object:Gem::Version
|
167
|
-
version: 1.0.alpha1.
|
113
|
+
version: 1.0.alpha1.8
|
168
114
|
type: :development
|
169
115
|
prerelease: false
|
170
116
|
version_requirements: !ruby/object:Gem::Requirement
|
171
117
|
requirements:
|
172
118
|
- - '='
|
173
119
|
- !ruby/object:Gem::Version
|
174
|
-
version: 1.0.alpha1.
|
120
|
+
version: 1.0.alpha1.8
|
175
121
|
- !ruby/object:Gem::Dependency
|
176
122
|
name: jquery-rails
|
177
123
|
requirement: !ruby/object:Gem::Requirement
|
@@ -215,7 +161,7 @@ dependencies:
|
|
215
161
|
- !ruby/object:Gem::Version
|
216
162
|
version: '0'
|
217
163
|
- !ruby/object:Gem::Dependency
|
218
|
-
name:
|
164
|
+
name: mini_racer
|
219
165
|
requirement: !ruby/object:Gem::Requirement
|
220
166
|
requirements:
|
221
167
|
- - ">="
|
@@ -229,7 +175,7 @@ dependencies:
|
|
229
175
|
- !ruby/object:Gem::Version
|
230
176
|
version: '0'
|
231
177
|
- !ruby/object:Gem::Dependency
|
232
|
-
name:
|
178
|
+
name: nokogiri
|
233
179
|
requirement: !ruby/object:Gem::Requirement
|
234
180
|
requirements:
|
235
181
|
- - ">="
|
@@ -243,35 +189,41 @@ dependencies:
|
|
243
189
|
- !ruby/object:Gem::Version
|
244
190
|
version: '0'
|
245
191
|
- !ruby/object:Gem::Dependency
|
246
|
-
name: opal-
|
192
|
+
name: opal-jquery
|
247
193
|
requirement: !ruby/object:Gem::Requirement
|
248
194
|
requirements:
|
249
|
-
- - "
|
195
|
+
- - ">="
|
250
196
|
- !ruby/object:Gem::Version
|
251
|
-
version: 0
|
197
|
+
version: '0'
|
252
198
|
type: :development
|
253
199
|
prerelease: false
|
254
200
|
version_requirements: !ruby/object:Gem::Requirement
|
255
201
|
requirements:
|
256
|
-
- - "
|
202
|
+
- - ">="
|
257
203
|
- !ruby/object:Gem::Version
|
258
|
-
version: 0
|
204
|
+
version: '0'
|
259
205
|
- !ruby/object:Gem::Dependency
|
260
|
-
name: opal-
|
206
|
+
name: opal-rails
|
261
207
|
requirement: !ruby/object:Gem::Requirement
|
262
208
|
requirements:
|
263
209
|
- - ">="
|
264
210
|
- !ruby/object:Gem::Version
|
265
|
-
version:
|
211
|
+
version: 0.9.4
|
212
|
+
- - "<"
|
213
|
+
- !ruby/object:Gem::Version
|
214
|
+
version: '2.0'
|
266
215
|
type: :development
|
267
216
|
prerelease: false
|
268
217
|
version_requirements: !ruby/object:Gem::Requirement
|
269
218
|
requirements:
|
270
219
|
- - ">="
|
271
220
|
- !ruby/object:Gem::Version
|
272
|
-
version:
|
221
|
+
version: 0.9.4
|
222
|
+
- - "<"
|
223
|
+
- !ruby/object:Gem::Version
|
224
|
+
version: '2.0'
|
273
225
|
- !ruby/object:Gem::Dependency
|
274
|
-
name: pry
|
226
|
+
name: pry-rescue
|
275
227
|
requirement: !ruby/object:Gem::Requirement
|
276
228
|
requirements:
|
277
229
|
- - ">="
|
@@ -285,7 +237,7 @@ dependencies:
|
|
285
237
|
- !ruby/object:Gem::Version
|
286
238
|
version: '0'
|
287
239
|
- !ruby/object:Gem::Dependency
|
288
|
-
name: pry-
|
240
|
+
name: pry-stack_explorer
|
289
241
|
requirement: !ruby/object:Gem::Requirement
|
290
242
|
requirements:
|
291
243
|
- - ">="
|
@@ -318,14 +270,20 @@ dependencies:
|
|
318
270
|
requirements:
|
319
271
|
- - ">="
|
320
272
|
- !ruby/object:Gem::Version
|
321
|
-
version:
|
273
|
+
version: 5.0.0
|
274
|
+
- - "<"
|
275
|
+
- !ruby/object:Gem::Version
|
276
|
+
version: '7.0'
|
322
277
|
type: :development
|
323
278
|
prerelease: false
|
324
279
|
version_requirements: !ruby/object:Gem::Requirement
|
325
280
|
requirements:
|
326
281
|
- - ">="
|
327
282
|
- !ruby/object:Gem::Version
|
328
|
-
version:
|
283
|
+
version: 5.0.0
|
284
|
+
- - "<"
|
285
|
+
- !ruby/object:Gem::Version
|
286
|
+
version: '7.0'
|
329
287
|
- !ruby/object:Gem::Dependency
|
330
288
|
name: rails-controller-testing
|
331
289
|
requirement: !ruby/object:Gem::Requirement
|
@@ -372,30 +330,30 @@ dependencies:
|
|
372
330
|
name: rubocop
|
373
331
|
requirement: !ruby/object:Gem::Requirement
|
374
332
|
requirements:
|
375
|
-
- - "
|
333
|
+
- - ">="
|
376
334
|
- !ruby/object:Gem::Version
|
377
|
-
version: 0
|
335
|
+
version: '0'
|
378
336
|
type: :development
|
379
337
|
prerelease: false
|
380
338
|
version_requirements: !ruby/object:Gem::Requirement
|
381
339
|
requirements:
|
382
|
-
- - "
|
340
|
+
- - ">="
|
383
341
|
- !ruby/object:Gem::Version
|
384
|
-
version: 0
|
342
|
+
version: '0'
|
385
343
|
- !ruby/object:Gem::Dependency
|
386
344
|
name: sqlite3
|
387
345
|
requirement: !ruby/object:Gem::Requirement
|
388
346
|
requirements:
|
389
|
-
- - "
|
347
|
+
- - "~>"
|
390
348
|
- !ruby/object:Gem::Version
|
391
|
-
version:
|
349
|
+
version: 1.4.2
|
392
350
|
type: :development
|
393
351
|
prerelease: false
|
394
352
|
version_requirements: !ruby/object:Gem::Requirement
|
395
353
|
requirements:
|
396
|
-
- - "
|
354
|
+
- - "~>"
|
397
355
|
- !ruby/object:Gem::Version
|
398
|
-
version:
|
356
|
+
version: 1.4.2
|
399
357
|
- !ruby/object:Gem::Dependency
|
400
358
|
name: timecop
|
401
359
|
requirement: !ruby/object:Gem::Requirement
|
@@ -422,7 +380,6 @@ files:
|
|
422
380
|
- ".travis.yml"
|
423
381
|
- CHANGELOG.md
|
424
382
|
- Gemfile
|
425
|
-
- Gemfile.lock
|
426
383
|
- Rakefile
|
427
384
|
- how-component-name-lookup-works.md
|
428
385
|
- hyper-component.gemspec
|
@@ -432,6 +389,7 @@ files:
|
|
432
389
|
- lib/hyperstack/component/children.rb
|
433
390
|
- lib/hyperstack/component/element.rb
|
434
391
|
- lib/hyperstack/component/event.rb
|
392
|
+
- lib/hyperstack/component/free_render.rb
|
435
393
|
- lib/hyperstack/component/haml.rb
|
436
394
|
- lib/hyperstack/component/isomorphic_helpers.rb
|
437
395
|
- lib/hyperstack/component/jquery.rb
|
@@ -440,13 +398,17 @@ files:
|
|
440
398
|
- lib/hyperstack/component/server.rb
|
441
399
|
- lib/hyperstack/component/version.rb
|
442
400
|
- lib/hyperstack/component/while_loading.rb
|
401
|
+
- lib/hyperstack/ext/component/array.rb
|
443
402
|
- lib/hyperstack/ext/component/boolean.rb
|
444
403
|
- lib/hyperstack/ext/component/element.rb
|
404
|
+
- lib/hyperstack/ext/component/enumerable.rb
|
445
405
|
- lib/hyperstack/ext/component/hash.rb
|
406
|
+
- lib/hyperstack/ext/component/kernel.rb
|
446
407
|
- lib/hyperstack/ext/component/number.rb
|
447
408
|
- lib/hyperstack/ext/component/object.rb
|
448
409
|
- lib/hyperstack/ext/component/serializers.rb
|
449
410
|
- lib/hyperstack/ext/component/string.rb
|
411
|
+
- lib/hyperstack/ext/component/time.rb
|
450
412
|
- lib/hyperstack/internal/component.rb
|
451
413
|
- lib/hyperstack/internal/component/class_methods.rb
|
452
414
|
- lib/hyperstack/internal/component/haml.rb
|
@@ -471,7 +433,7 @@ files:
|
|
471
433
|
- lib/react/react-source-server.rb
|
472
434
|
- lib/react/react-source.rb
|
473
435
|
- unmounting-objects.md
|
474
|
-
homepage: http://
|
436
|
+
homepage: http://hyperstack.org
|
475
437
|
licenses:
|
476
438
|
- MIT
|
477
439
|
metadata: {}
|
@@ -490,7 +452,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
490
452
|
- !ruby/object:Gem::Version
|
491
453
|
version: 1.3.1
|
492
454
|
requirements: []
|
493
|
-
rubygems_version: 3.0.
|
455
|
+
rubygems_version: 3.0.8
|
494
456
|
signing_key:
|
495
457
|
specification_version: 4
|
496
458
|
summary: Opal Ruby wrapper of React.js library.
|