hyper-state 1.0.alpha1.2 → 1.0.alpha1.3

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: 8a4e6861713a026b7878443bedaf51619c9c7152b62bc4a588d6ebd2744c6cb5
4
- data.tar.gz: 0d4bb03e324e82feb7b59706a8a07fa51eaae50ecbf2069ae6db37307c14056c
3
+ metadata.gz: 5b2e57db899fdc1cf26978b2a1bc65abe6e9e9394594be644163de6070c2376d
4
+ data.tar.gz: 014705ce36d24c695f5d104004dc70be1a2d8f9039d879ab36887bebfdd14c88
5
5
  SHA512:
6
- metadata.gz: '09092aa06c724440995f34445310cdf526f0c03003c6fd5fee9b7b0af0dd9eb30534c3674a6ce7a967251bd0359a888d79c5f7a1993c8086e17013fef15a44ff'
7
- data.tar.gz: '0081a14b941ccda9fcc54c5b2079e7dd384a9c20cac6ebbeb2884e151fd8803b26a90b77c619e3786c2dc2ce049954b5446ad060e925545100aaf6943a427447'
6
+ metadata.gz: bbc9b8724cb6cf3b0c82c081270d2bdba0cf1378261ce2abfcb62629a24af6e8a128e2a3cfe9ce7a71a293c0463e9c5e627602ddf092b9cc7c91088a8633b0e5
7
+ data.tar.gz: cb72f01f5629cff13064a0b125eb3a618bdef737f6413c9778ca4a6297b1ce4d30d176588d185cc8547ada050b620db45a217c919e620c34e8674ef5d15e443b
@@ -23,12 +23,12 @@ Gem::Specification.new do |spec|
23
23
 
24
24
  spec.add_dependency 'hyperstack-config', Hyperstack::State::VERSION
25
25
  spec.add_dependency 'opal', '>= 0.11.0', '< 0.12.0'
26
- spec.add_development_dependency 'bundler'
26
+ spec.add_development_dependency 'bundler', ['>= 1.17.3', '< 2.1']
27
27
  spec.add_development_dependency 'chromedriver-helper'
28
28
  spec.add_development_dependency 'hyper-component', Hyperstack::State::VERSION
29
29
  spec.add_development_dependency 'hyper-spec', Hyperstack::State::VERSION
30
30
  spec.add_development_dependency 'listen'
31
- spec.add_development_dependency 'mini_racer', '~> 0.1.15'
31
+ spec.add_development_dependency 'mini_racer', '~> 0.2.4'
32
32
  spec.add_development_dependency 'opal-browser', '~> 0.2.0'
33
33
  spec.add_development_dependency 'opal-rails', '~> 0.9.4'
34
34
  spec.add_development_dependency 'pry-byebug'
@@ -3,7 +3,7 @@ module Hyperstack
3
3
  module Callbacks
4
4
  if RUBY_ENGINE != 'opal'
5
5
  class Hyperstack::Hotloader
6
- def self.record(*args); end
6
+ def self.when_file_updates(&block); end
7
7
  end
8
8
  end
9
9
  def self.included(base)
@@ -11,13 +11,15 @@ module Hyperstack
11
11
  end
12
12
 
13
13
  def run_callback(name, *args)
14
- self.class.callbacks_for(name).each do |callback|
15
- if callback.is_a?(Proc)
16
- instance_exec(*args, &callback)
17
- else
18
- send(callback, *args)
19
- end
14
+ self.class.callbacks_for(name).flatten.each do |callback|
15
+ result = if callback.is_a?(Proc)
16
+ instance_exec(*args, &callback)
17
+ else
18
+ send(callback, *args)
19
+ end
20
+ args = yield(result) if block_given?
20
21
  end
22
+ args
21
23
  end
22
24
 
23
25
  module ClassMethods
@@ -27,9 +29,11 @@ module Hyperstack
27
29
  Context.set_var(self, "@#{wrapper_name}", force: true) { [] }
28
30
  end
29
31
  define_singleton_method(callback_name) do |*args, &block|
30
- send(wrapper_name).concat(args)
31
- send(wrapper_name).push(block) if block_given?
32
- Hotloader.record(self, "@#{wrapper_name}", 4, *args, block)
32
+ args << block if block_given?
33
+ send(wrapper_name).push args
34
+ Hotloader.when_file_updates do
35
+ send(wrapper_name).delete_if { |item| item.equal? args }
36
+ end
33
37
  after_define_hook.call(*args, &block) if after_define_hook
34
38
  end
35
39
  end
@@ -42,6 +46,10 @@ module Hyperstack
42
46
  []
43
47
  end + send(wrapper_name)
44
48
  end
49
+
50
+ def callbacks?(name)
51
+ callbacks_for(name).any?
52
+ end
45
53
  end
46
54
  end
47
55
  end
@@ -11,14 +11,14 @@ module Hyperstack
11
11
  base.send(:"define_#{kind}", :receives) do |*args, &block|
12
12
  Internal::Receiver.mount(self, *args, &block)
13
13
  end
14
- base.send(:"define_#{kind}", :observe) do |&block|
15
- result = block.call if block
14
+ base.send(:"define_#{kind}", :observe) do |*args, &block|
15
+ result = block && block.call || args.last
16
16
  Internal::State::Mapper.observed! self
17
17
  result
18
18
  end
19
- base.send(:"define_#{kind}", :mutate) do |*_args, &block|
19
+ base.send(:"define_#{kind}", :mutate) do |*args, &block|
20
20
  # any args will be ignored thus allowing us to say `mutate @foo = 123, @bar[:x] = 7` etc
21
- result = block.call if block
21
+ result = block && block.call || args.last
22
22
  Internal::State::Mapper.mutated! self
23
23
  result
24
24
  end
@@ -1,5 +1,5 @@
1
1
  module Hyperstack
2
2
  module State
3
- VERSION = '1.0.alpha1.2'
3
+ VERSION = '1.0.alpha1.3'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hyper-state
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.alpha1.2
4
+ version: 1.0.alpha1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mitch VanDuyn
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2018-11-16 00:00:00.000000000 Z
13
+ date: 2019-01-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: hyperstack-config
@@ -18,14 +18,14 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 1.0.alpha1.2
21
+ version: 1.0.alpha1.3
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.2
28
+ version: 1.0.alpha1.3
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: opal
31
31
  requirement: !ruby/object:Gem::Requirement
@@ -52,14 +52,20 @@ dependencies:
52
52
  requirements:
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: '0'
55
+ version: 1.17.3
56
+ - - "<"
57
+ - !ruby/object:Gem::Version
58
+ version: '2.1'
56
59
  type: :development
57
60
  prerelease: false
58
61
  version_requirements: !ruby/object:Gem::Requirement
59
62
  requirements:
60
63
  - - ">="
61
64
  - !ruby/object:Gem::Version
62
- version: '0'
65
+ version: 1.17.3
66
+ - - "<"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.1'
63
69
  - !ruby/object:Gem::Dependency
64
70
  name: chromedriver-helper
65
71
  requirement: !ruby/object:Gem::Requirement
@@ -80,28 +86,28 @@ dependencies:
80
86
  requirements:
81
87
  - - '='
82
88
  - !ruby/object:Gem::Version
83
- version: 1.0.alpha1.2
89
+ version: 1.0.alpha1.3
84
90
  type: :development
85
91
  prerelease: false
86
92
  version_requirements: !ruby/object:Gem::Requirement
87
93
  requirements:
88
94
  - - '='
89
95
  - !ruby/object:Gem::Version
90
- version: 1.0.alpha1.2
96
+ version: 1.0.alpha1.3
91
97
  - !ruby/object:Gem::Dependency
92
98
  name: hyper-spec
93
99
  requirement: !ruby/object:Gem::Requirement
94
100
  requirements:
95
101
  - - '='
96
102
  - !ruby/object:Gem::Version
97
- version: 1.0.alpha1.2
103
+ version: 1.0.alpha1.3
98
104
  type: :development
99
105
  prerelease: false
100
106
  version_requirements: !ruby/object:Gem::Requirement
101
107
  requirements:
102
108
  - - '='
103
109
  - !ruby/object:Gem::Version
104
- version: 1.0.alpha1.2
110
+ version: 1.0.alpha1.3
105
111
  - !ruby/object:Gem::Dependency
106
112
  name: listen
107
113
  requirement: !ruby/object:Gem::Requirement
@@ -122,14 +128,14 @@ dependencies:
122
128
  requirements:
123
129
  - - "~>"
124
130
  - !ruby/object:Gem::Version
125
- version: 0.1.15
131
+ version: 0.2.4
126
132
  type: :development
127
133
  prerelease: false
128
134
  version_requirements: !ruby/object:Gem::Requirement
129
135
  requirements:
130
136
  - - "~>"
131
137
  - !ruby/object:Gem::Version
132
- version: 0.1.15
138
+ version: 0.2.4
133
139
  - !ruby/object:Gem::Dependency
134
140
  name: opal-browser
135
141
  requirement: !ruby/object:Gem::Requirement
@@ -376,8 +382,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
376
382
  - !ruby/object:Gem::Version
377
383
  version: 1.3.1
378
384
  requirements: []
379
- rubyforge_project:
380
- rubygems_version: 2.7.8
385
+ rubygems_version: 3.0.2
381
386
  signing_key:
382
387
  specification_version: 4
383
388
  summary: Flux Stores and more for Hyperloop