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

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
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