hyper-store 1.0.alpha1.1 → 1.0.alpha1.6

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: f04957ec78bfaf502b596fba162164826efa8810ed8abb8cc8c1d2e738ad129c
4
- data.tar.gz: 64045f82f168a565f9b747a898aa1543560c8482bf49ba2d3eb66419872bc246
3
+ metadata.gz: 2c6946f009608487c8c97a425a74763dac988066853592eed50e30ea52a98adf
4
+ data.tar.gz: 9f2948cde58185eaeff43f8d02bfc0de64d1259c8d5a4c666c40744970630221
5
5
  SHA512:
6
- metadata.gz: c48eefc54a419a24d43ff5daa31747a71855f48c968b5571f1e9bcbf0b03b06092c196781b4d21996e6a9a505882131de8e74ee492b22032c5c7f5f62b61d652
7
- data.tar.gz: 7ad43493f161a85d4ac50abe34f83e7ae1ffe26413ad446103e9c04fe6cefb420081efd891504fe6d50a2ae0746e163fba43417d394267326dd7829cacfec778
6
+ metadata.gz: b5a6279f916c1cfe5c0b86e33f30ca22ff5bb105db5b447a53354dd435a89b8fd1e59450c8deff3b8832de1a4cde15282e1110d5dd97c6293972f677a871e663
7
+ data.tar.gz: f86f1dd53d122ccce1b2c6097da09910340464ace2701f84bd9671bc2bcfb2065b24b4ca977817c94cefc9d9b88325ebf1db91c70f9fd7202b9f4d76c64ea205
data/.gitignore CHANGED
@@ -11,7 +11,6 @@ capybara-*.html
11
11
  **.orig
12
12
  rerun.txt
13
13
  pickle-email-*.html
14
- Gemfile.lock
15
14
 
16
15
  # TODO Comment out these rules if you are OK with secrets being uploaded to the repo
17
16
  config/initializers/secret_token.rb
@@ -51,3 +50,7 @@ bower.json
51
50
 
52
51
  # ignore IDE files
53
52
  .idea
53
+
54
+ # ignore Gemfile.locks https://yehudakatz.com/2010/12/16/clarifying-the-roles-of-the-gemspec-and-gemfile/
55
+ /spec/test_app/Gemfile.lock
56
+ /Gemfile.lock
data/hyper-store.gemspec CHANGED
@@ -21,28 +21,28 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ['lib']
23
23
 
24
- spec.add_dependency 'hyperstack-config', Hyperstack::Legacy::Store::VERSION
25
24
  spec.add_dependency 'hyper-state', Hyperstack::Legacy::Store::VERSION
26
- spec.add_dependency 'opal', '>= 0.11.0', '< 0.12.0'
25
+ spec.add_dependency 'hyperstack-config', Hyperstack::Legacy::Store::VERSION
26
+
27
27
  spec.add_development_dependency 'bundler'
28
28
  spec.add_development_dependency 'chromedriver-helper'
29
29
  spec.add_development_dependency 'hyper-component', Hyperstack::Legacy::Store::VERSION
30
30
  spec.add_development_dependency 'hyper-spec', Hyperstack::Legacy::Store::VERSION
31
31
  spec.add_development_dependency 'listen'
32
- spec.add_development_dependency 'mini_racer', '~> 0.1.15'
32
+ # spec.add_development_dependency 'mini_racer', '~> 0.2.6'
33
33
  spec.add_development_dependency 'opal-browser', '~> 0.2.0'
34
- spec.add_development_dependency 'opal-rails', '~> 0.9.4'
35
- spec.add_development_dependency 'pry-byebug'
34
+ spec.add_development_dependency 'opal-rails', '>= 0.9.4', '< 2.0'
36
35
  spec.add_development_dependency 'pry-rescue'
36
+ spec.add_development_dependency 'pry-stack_explorer'
37
37
  spec.add_development_dependency 'puma'
38
- spec.add_development_dependency 'rails', '>= 4.0.0'
38
+ spec.add_development_dependency 'rails', ENV['RAILS_VERSION'] || '>= 5.0.0', '< 7.0'
39
39
  spec.add_development_dependency 'rake'
40
40
  spec.add_development_dependency 'react-rails', '>= 2.4.0', '< 2.5.0'
41
41
  spec.add_development_dependency 'rspec', '~> 3.7.0'
42
42
  spec.add_development_dependency 'rspec-rails'
43
43
  spec.add_development_dependency 'rspec-steps', '~> 2.1.1'
44
44
  spec.add_development_dependency 'rubocop', '~> 0.51.0'
45
- spec.add_development_dependency 'sqlite3'
45
+ spec.add_development_dependency 'sqlite3', '~> 1.4.2'
46
46
  spec.add_development_dependency 'timecop', '~> 0.8.1'
47
47
 
48
48
  end
data/lib/hyper-store.rb CHANGED
@@ -20,8 +20,6 @@ require 'hyperstack/internal/store/mutator_wrapper'
20
20
  require 'hyperstack/internal/store/observable'
21
21
  require 'hyperstack/internal/store/state_wrapper/argument_validator'
22
22
  require 'hyperstack/internal/store/state_wrapper'
23
- require 'hyperstack/internal/store/state'
24
-
25
23
  require 'hyperstack/legacy/store'
26
24
  require 'hyperstack/legacy/store/version'
27
25
 
@@ -8,15 +8,15 @@ module Hyperstack
8
8
  define_method(:"#{method_name}") do |*args|
9
9
  from = opts[:scope] == :shared ? klass.state.__from__ : __from__
10
10
  from.init_store if from.respond_to? :init_store
11
- current_value = State.get_state(from, method_name.to_s)
11
+ current_value = State::Variable.get(from, method_name.to_s)
12
12
 
13
13
  if args.count > 0
14
- State.set_state(from, method_name.to_s, args[0])
14
+ State::Variable.set(from, method_name.to_s, args[0])
15
15
  current_value
16
16
  else
17
- State.set_state(from, method_name.to_s, current_value)
17
+ State::Variable.set(from, method_name.to_s, current_value)
18
18
  Observable.new(current_value) do |update|
19
- State.set_state(from, method_name.to_s, update)
19
+ State::Variable.set(from, method_name.to_s, update)
20
20
  end
21
21
  end
22
22
  end
@@ -71,7 +71,7 @@ module Hyperstack
71
71
  define_method(:"#{method_name}") do
72
72
  from = opts[:scope] == :shared ? klass.state.__from__ : @__from__
73
73
  from.init_store if from.respond_to? :init_store
74
- State.get_state(from, method_name.to_s)
74
+ State::Variable.get(from, method_name.to_s)
75
75
  end
76
76
  end
77
77
 
@@ -1,7 +1,7 @@
1
1
  module Hyperstack
2
2
  module Legacy
3
3
  module Store
4
- VERSION = '1.0.alpha1.1'
4
+ VERSION = '1.0.alpha1.6'
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hyper-store
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.alpha1.1
4
+ version: 1.0.alpha1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mitch VanDuyn
@@ -10,56 +10,36 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2018-11-14 00:00:00.000000000 Z
13
+ date: 2021-03-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: hyperstack-config
16
+ name: hyper-state
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 1.0.alpha1.1
21
+ version: 1.0.alpha1.6
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - '='
27
27
  - !ruby/object:Gem::Version
28
- version: 1.0.alpha1.1
28
+ version: 1.0.alpha1.6
29
29
  - !ruby/object:Gem::Dependency
30
- name: hyper-state
30
+ name: hyperstack-config
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - '='
34
34
  - !ruby/object:Gem::Version
35
- version: 1.0.alpha1.1
35
+ version: 1.0.alpha1.6
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - '='
41
41
  - !ruby/object:Gem::Version
42
- version: 1.0.alpha1.1
43
- - !ruby/object:Gem::Dependency
44
- name: opal
45
- requirement: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: 0.11.0
50
- - - "<"
51
- - !ruby/object:Gem::Version
52
- version: 0.12.0
53
- type: :runtime
54
- prerelease: false
55
- version_requirements: !ruby/object:Gem::Requirement
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- version: 0.11.0
60
- - - "<"
61
- - !ruby/object:Gem::Version
62
- version: 0.12.0
42
+ version: 1.0.alpha1.6
63
43
  - !ruby/object:Gem::Dependency
64
44
  name: bundler
65
45
  requirement: !ruby/object:Gem::Requirement
@@ -94,28 +74,28 @@ dependencies:
94
74
  requirements:
95
75
  - - '='
96
76
  - !ruby/object:Gem::Version
97
- version: 1.0.alpha1.1
77
+ version: 1.0.alpha1.6
98
78
  type: :development
99
79
  prerelease: false
100
80
  version_requirements: !ruby/object:Gem::Requirement
101
81
  requirements:
102
82
  - - '='
103
83
  - !ruby/object:Gem::Version
104
- version: 1.0.alpha1.1
84
+ version: 1.0.alpha1.6
105
85
  - !ruby/object:Gem::Dependency
106
86
  name: hyper-spec
107
87
  requirement: !ruby/object:Gem::Requirement
108
88
  requirements:
109
89
  - - '='
110
90
  - !ruby/object:Gem::Version
111
- version: 1.0.alpha1.1
91
+ version: 1.0.alpha1.6
112
92
  type: :development
113
93
  prerelease: false
114
94
  version_requirements: !ruby/object:Gem::Requirement
115
95
  requirements:
116
96
  - - '='
117
97
  - !ruby/object:Gem::Version
118
- version: 1.0.alpha1.1
98
+ version: 1.0.alpha1.6
119
99
  - !ruby/object:Gem::Dependency
120
100
  name: listen
121
101
  requirement: !ruby/object:Gem::Requirement
@@ -130,20 +110,6 @@ dependencies:
130
110
  - - ">="
131
111
  - !ruby/object:Gem::Version
132
112
  version: '0'
133
- - !ruby/object:Gem::Dependency
134
- name: mini_racer
135
- requirement: !ruby/object:Gem::Requirement
136
- requirements:
137
- - - "~>"
138
- - !ruby/object:Gem::Version
139
- version: 0.1.15
140
- type: :development
141
- prerelease: false
142
- version_requirements: !ruby/object:Gem::Requirement
143
- requirements:
144
- - - "~>"
145
- - !ruby/object:Gem::Version
146
- version: 0.1.15
147
113
  - !ruby/object:Gem::Dependency
148
114
  name: opal-browser
149
115
  requirement: !ruby/object:Gem::Requirement
@@ -162,18 +128,24 @@ dependencies:
162
128
  name: opal-rails
163
129
  requirement: !ruby/object:Gem::Requirement
164
130
  requirements:
165
- - - "~>"
131
+ - - ">="
166
132
  - !ruby/object:Gem::Version
167
133
  version: 0.9.4
134
+ - - "<"
135
+ - !ruby/object:Gem::Version
136
+ version: '2.0'
168
137
  type: :development
169
138
  prerelease: false
170
139
  version_requirements: !ruby/object:Gem::Requirement
171
140
  requirements:
172
- - - "~>"
141
+ - - ">="
173
142
  - !ruby/object:Gem::Version
174
143
  version: 0.9.4
144
+ - - "<"
145
+ - !ruby/object:Gem::Version
146
+ version: '2.0'
175
147
  - !ruby/object:Gem::Dependency
176
- name: pry-byebug
148
+ name: pry-rescue
177
149
  requirement: !ruby/object:Gem::Requirement
178
150
  requirements:
179
151
  - - ">="
@@ -187,7 +159,7 @@ dependencies:
187
159
  - !ruby/object:Gem::Version
188
160
  version: '0'
189
161
  - !ruby/object:Gem::Dependency
190
- name: pry-rescue
162
+ name: pry-stack_explorer
191
163
  requirement: !ruby/object:Gem::Requirement
192
164
  requirements:
193
165
  - - ">="
@@ -220,14 +192,20 @@ dependencies:
220
192
  requirements:
221
193
  - - ">="
222
194
  - !ruby/object:Gem::Version
223
- version: 4.0.0
195
+ version: 5.0.0
196
+ - - "<"
197
+ - !ruby/object:Gem::Version
198
+ version: '7.0'
224
199
  type: :development
225
200
  prerelease: false
226
201
  version_requirements: !ruby/object:Gem::Requirement
227
202
  requirements:
228
203
  - - ">="
229
204
  - !ruby/object:Gem::Version
230
- version: 4.0.0
205
+ version: 5.0.0
206
+ - - "<"
207
+ - !ruby/object:Gem::Version
208
+ version: '7.0'
231
209
  - !ruby/object:Gem::Dependency
232
210
  name: rake
233
211
  requirement: !ruby/object:Gem::Requirement
@@ -322,16 +300,16 @@ dependencies:
322
300
  name: sqlite3
323
301
  requirement: !ruby/object:Gem::Requirement
324
302
  requirements:
325
- - - ">="
303
+ - - "~>"
326
304
  - !ruby/object:Gem::Version
327
- version: '0'
305
+ version: 1.4.2
328
306
  type: :development
329
307
  prerelease: false
330
308
  version_requirements: !ruby/object:Gem::Requirement
331
309
  requirements:
332
- - - ">="
310
+ - - "~>"
333
311
  - !ruby/object:Gem::Version
334
- version: '0'
312
+ version: 1.4.2
335
313
  - !ruby/object:Gem::Dependency
336
314
  name: timecop
337
315
  requirement: !ruby/object:Gem::Requirement
@@ -367,7 +345,6 @@ files:
367
345
  - lib/hyperstack/internal/store/instance_methods.rb
368
346
  - lib/hyperstack/internal/store/mutator_wrapper.rb
369
347
  - lib/hyperstack/internal/store/observable.rb
370
- - lib/hyperstack/internal/store/state.rb
371
348
  - lib/hyperstack/internal/store/state_wrapper.rb
372
349
  - lib/hyperstack/internal/store/state_wrapper/argument_validator.rb
373
350
  - lib/hyperstack/legacy/store.rb
@@ -391,8 +368,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
391
368
  - !ruby/object:Gem::Version
392
369
  version: 1.3.1
393
370
  requirements: []
394
- rubyforge_project:
395
- rubygems_version: 2.7.8
371
+ rubygems_version: 3.0.8
396
372
  signing_key:
397
373
  specification_version: 4
398
374
  summary: Flux Stores and more for Hyperloop
@@ -1,174 +0,0 @@
1
- module Hyperstack
2
- module Internal
3
- module Store
4
- class State
5
- class << self
6
- def legacy_map
7
- @legacy_map ||= Hash.new { |h, k| h[k] = Hash.new { |h2, k2| h2[k2] = Array.new }}
8
- end
9
-
10
- def get_state(obj, name)
11
- map_object = legacy_map[obj][name]
12
- Hyperstack::Internal::State::Mapper.observed!(map_object.object_id)
13
- map_object[0]
14
- end
15
-
16
- def set_state(obj, name, value)
17
- map_object = legacy_map[obj][name]
18
- map_object[0] = value
19
- Hyperstack::Internal::State::Mapper.mutated!(map_object.object_id)
20
- value
21
- end
22
-
23
- def observed?(obj, name)
24
- map_object = legacy_map[obj][name]
25
- Hyperstack::Internal::State::Mapper.observed?(map_object.object_id)
26
- end
27
- end
28
- end
29
- end
30
- end
31
- end
32
-
33
- # ALWAYS_UPDATE_STATE_AFTER_RENDER = Hyperstack.on_client? # if on server then we don't wait to update the state
34
- # @rendering_level = 0
35
- #
36
- # class << self
37
- # attr_reader :current_observer
38
- #
39
- # def has_observers?(object, name)
40
- # !observers_by_name[object][name].empty?
41
- # end
42
- #
43
- # def bulk_update
44
- # saved_bulk_update_flag = @bulk_update_flag
45
- # @bulk_update_flag = true
46
- # yield
47
- # ensure
48
- # @bulk_update_flag = saved_bulk_update_flag
49
- # end
50
- #
51
- # def set_state2(object, name, value, updates, exclusions = nil)
52
- # # set object's name state to value, tell all observers it has changed.
53
- # # Observers must implement update_react_js_state
54
- # object_needs_notification = object.respond_to?(:update_react_js_state)
55
- # observers_by_name[object][name].dup.each do |observer|
56
- # next if exclusions && exclusions.include?(observer)
57
- # updates[observer] += [object, name, value]
58
- # object_needs_notification = false if object == observer
59
- # end
60
- # updates[object] += [nil, name, value] if object_needs_notification
61
- # end
62
- #
63
- # def initialize_states(object, initial_values) # initialize objects' name/value pairs
64
- # states[object].merge!(initial_values || {})
65
- # end
66
- #
67
- # def get_state(object, name, current_observer = @current_observer)
68
- # # get current value of name for object, remember that the current object depends on this state,
69
- # # current observer can be overriden with last param
70
- # if current_observer && !new_observers[current_observer][object].include?(name)
71
- # new_observers[current_observer][object] << name
72
- # end
73
- # if @delayed_updates && @delayed_updates[object][name]
74
- # @delayed_updates[object][name][1] << current_observer
75
- # end
76
- # states[object][name]
77
- # end
78
- #
79
- # # ReactDOM.unstable_batchedUpdates does not seem to improve things here, ill leave it here commented for reference
80
- # # and later investigation
81
- # #if `ReactDOM.unstable_batchedUpdates !== undefined`
82
- # # %x{
83
- # # ReactDOM.unstable_batchedUpdates(function(){
84
- # # #{updates.each { |observer, args| observer.update_react_js_state(*args) }}
85
- # # });
86
- # # }
87
- # #else # run the other one
88
- # def set_state(object, name, value, delay=ALWAYS_UPDATE_STATE_AFTER_RENDER)
89
- # states[object][name] = value
90
- # delay = false if object.respond_to?(:set_state_synchronously?) && object.set_state_synchronously?
91
- # if delay || @bulk_update_flag
92
- # @delayed_updates ||= Hash.new { |h, k| h[k] = {} }
93
- # @delayed_updates[object][name] = [value, Set.new]
94
- # @delayed_updater ||= after(0.001) do
95
- # delayed_updates = @delayed_updates
96
- # @delayed_updates = Hash.new { |h, k| h[k] = {} } # could this be nil???
97
- # @delayed_updater = nil
98
- # updates = Hash.new { |hash, key| hash[key] = Array.new }
99
- # delayed_updates.each do |object, name_hash|
100
- # name_hash.each do |name, value_and_set|
101
- # set_state2(object, name, value_and_set[0], updates, value_and_set[1])
102
- # end
103
- # end
104
- # updates.each { |observer, args| observer.update_react_js_state(*args) }
105
- # end
106
- # elsif @rendering_level == 0
107
- # updates = Hash.new { |hash, key| hash[key] = Array.new }
108
- # set_state2(object, name, value, updates)
109
- # updates.each { |observer, args| observer.update_react_js_state(*args) }
110
- # end
111
- # value
112
- # end
113
- #
114
- # def will_be_observing?(object, name, current_observer)
115
- # current_observer && new_observers[current_observer][object].include?(name)
116
- # end
117
- #
118
- # def is_observing?(object, name, current_observer)
119
- # current_observer && observers_by_name[object][name].include?(current_observer)
120
- # end
121
- #
122
- # def update_states_to_observe(current_observer = @current_observer) # should be called after the last after_render callback, currently called after components render method
123
- # raise "update_states_to_observer called outside of watch block" unless current_observer
124
- # current_observers[current_observer].each do |object, names|
125
- # names.each do |name|
126
- # observers_by_name[object][name].delete(current_observer)
127
- # end
128
- # end
129
- # observers = current_observers[current_observer] = new_observers[current_observer]
130
- # new_observers.delete(current_observer)
131
- # observers.each do |object, names|
132
- # names.each do |name|
133
- # observers_by_name[object][name] << current_observer
134
- # end
135
- # end
136
- # end
137
- #
138
- # def remove # call after component is unmounted
139
- # raise "remove called outside of watch block" unless @current_observer
140
- # current_observers[@current_observer].each do |object, names|
141
- # names.each do |name|
142
- # observers_by_name[object][name].delete(@current_observer)
143
- # end
144
- # end
145
- # current_observers.delete(@current_observer)
146
- # end
147
- #
148
- # def set_state_context_to(observer, rendering = nil) # wrap all execution that may set or get states in a block so we know which observer is executing
149
- # saved_current_observer = @current_observer
150
- # @current_observer = observer
151
- # @rendering_level += 1 if rendering
152
- # return_value = yield
153
- # return_value
154
- # ensure
155
- # @current_observer = saved_current_observer
156
- # @rendering_level -= 1 if rendering
157
- # return_value
158
- # end
159
- #
160
- # def states
161
- # @states ||= Hash.new { |h, k| h[k] = {} }
162
- # end
163
- #
164
- # [:new_observers, :current_observers, :observers_by_name].each do |method_name|
165
- # define_method(method_name) do
166
- # instance_variable_get("@#{method_name}") ||
167
- # instance_variable_set("@#{method_name}", Hash.new { |h, k| h[k] = Hash.new { |h, k| h[k] = [] } })
168
- # end
169
- # end
170
- # end
171
- # end
172
- # end
173
- # end
174
- # end