observer 0.1.0 → 0.1.1
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/lib/observer.rb +26 -1
- data/observer.gemspec +11 -8
- metadata +7 -7
- data/lib/observer/version.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e5ed7cfbd45f9cdb1aa8cdb4d034f698d8c32db099779a79938f2ad6113de4c7
|
4
|
+
data.tar.gz: 7e4f82ed29989ba629de36307c4d86035dd6a754354b1a28fec3e44fe0144c62
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd296486efd6f7eb515a206eadd3e5ac243625aa98ad7e189a2a7cdaaef9752656d474eca431054ba21b8973dc0ffd288a142fa531c59759c035695580fe2f00
|
7
|
+
data.tar.gz: af2eca1b8d7b67d2fc7fbb69345c7450286b0fa47507a96d18109f2586897f223c52c260408bebbf90211d736e1bf6863f1c4214e6989ea040683732a8cba1eb
|
data/lib/observer.rb
CHANGED
@@ -111,7 +111,32 @@
|
|
111
111
|
# Current price: 112
|
112
112
|
# Current price: 79
|
113
113
|
# --- Sun Jun 09 00:10:25 CDT 2002: Price below 80: 79
|
114
|
+
#
|
115
|
+
# === Usage with procs
|
116
|
+
#
|
117
|
+
# The +#notify_observers+ method can also be used with +proc+s by using
|
118
|
+
# the +:call+ as +func+ parameter.
|
119
|
+
#
|
120
|
+
# The following example illustrates the use of a lambda:
|
121
|
+
#
|
122
|
+
# require 'observer'
|
123
|
+
#
|
124
|
+
# class Ticker
|
125
|
+
# include Observable
|
126
|
+
#
|
127
|
+
# def run
|
128
|
+
# # logic to retrieve the price (here 77.0)
|
129
|
+
# changed
|
130
|
+
# notify_observers(77.0)
|
131
|
+
# end
|
132
|
+
# end
|
133
|
+
#
|
134
|
+
# ticker = Ticker.new
|
135
|
+
# warner = ->(price) { puts "New price received: #{price}" }
|
136
|
+
# ticker.add_observer(warner, :call)
|
137
|
+
# ticker.run
|
114
138
|
module Observable
|
139
|
+
VERSION = "0.1.1"
|
115
140
|
|
116
141
|
#
|
117
142
|
# Add +observer+ as an observer on this object. So that it will receive
|
@@ -194,7 +219,7 @@ module Observable
|
|
194
219
|
if defined? @observer_state and @observer_state
|
195
220
|
if defined? @observer_peers
|
196
221
|
@observer_peers.each do |k, v|
|
197
|
-
k.
|
222
|
+
k.__send__(v, *arg)
|
198
223
|
end
|
199
224
|
end
|
200
225
|
@observer_state = false
|
data/observer.gemspec
CHANGED
@@ -1,19 +1,22 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
name = File.basename(__FILE__, ".gemspec")
|
4
|
+
version = ["lib", Array.new(name.count("-")+1, "..").join("/")].find do |dir|
|
5
|
+
break File.foreach(File.join(__dir__, dir, "#{name.tr('-', '/')}.rb")) do |line|
|
6
|
+
/^\s*VERSION\s*=\s*"(.*)"/ =~ line and break $1
|
7
|
+
end rescue nil
|
5
8
|
end
|
6
9
|
|
7
10
|
Gem::Specification.new do |spec|
|
8
|
-
spec.name =
|
9
|
-
spec.version =
|
11
|
+
spec.name = name
|
12
|
+
spec.version = version
|
10
13
|
spec.authors = ["Yukihiro Matsumoto"]
|
11
14
|
spec.email = ["matz@ruby-lang.org"]
|
12
15
|
|
13
16
|
spec.summary = %q{Implementation of the Observer object-oriented design pattern.}
|
14
17
|
spec.description = spec.summary
|
15
18
|
spec.homepage = "https://github.com/ruby/observer"
|
16
|
-
spec.
|
19
|
+
spec.licenses = ["Ruby", "BSD-2-Clause"]
|
17
20
|
|
18
21
|
spec.metadata["homepage_uri"] = spec.homepage
|
19
22
|
spec.metadata["source_code_uri"] = spec.homepage
|
@@ -21,7 +24,7 @@ Gem::Specification.new do |spec|
|
|
21
24
|
# Specify which files should be added to the gem when it is released.
|
22
25
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
23
26
|
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
24
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
27
|
+
`git ls-files -z 2>/dev/null`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
25
28
|
end
|
26
29
|
spec.bindir = "exe"
|
27
30
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: observer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yukihiro Matsumoto
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-12-22 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Implementation of the Observer object-oriented design pattern.
|
14
14
|
email:
|
@@ -26,15 +26,15 @@ files:
|
|
26
26
|
- bin/console
|
27
27
|
- bin/setup
|
28
28
|
- lib/observer.rb
|
29
|
-
- lib/observer/version.rb
|
30
29
|
- observer.gemspec
|
31
30
|
homepage: https://github.com/ruby/observer
|
32
31
|
licenses:
|
32
|
+
- Ruby
|
33
33
|
- BSD-2-Clause
|
34
34
|
metadata:
|
35
35
|
homepage_uri: https://github.com/ruby/observer
|
36
36
|
source_code_uri: https://github.com/ruby/observer
|
37
|
-
post_install_message:
|
37
|
+
post_install_message:
|
38
38
|
rdoc_options: []
|
39
39
|
require_paths:
|
40
40
|
- lib
|
@@ -49,8 +49,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
49
49
|
- !ruby/object:Gem::Version
|
50
50
|
version: '0'
|
51
51
|
requirements: []
|
52
|
-
rubygems_version: 3.2.
|
53
|
-
signing_key:
|
52
|
+
rubygems_version: 3.2.2
|
53
|
+
signing_key:
|
54
54
|
specification_version: 4
|
55
55
|
summary: Implementation of the Observer object-oriented design pattern.
|
56
56
|
test_files: []
|
data/lib/observer/version.rb
DELETED