unobservable 0.5.1 → 0.6.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.
- data/Gemfile +1 -1
- data/Rakefile +7 -7
- data/VERSION +1 -1
- data/spec/event_spec.rb +6 -0
- data/spec/spec_helper.rb +11 -0
- data/spec/unobservable_spec.rb +72 -0
- metadata +22 -3
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -32,13 +32,13 @@ Rake::TestTask.new(:test) do |test|
|
|
32
32
|
test.verbose = true
|
33
33
|
end
|
34
34
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
35
|
+
|
36
|
+
require 'rspec/core'
|
37
|
+
require 'rspec/core/rake_task'
|
38
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
39
|
+
spec.pattern = FileList['spec/**/*_spec.rb']
|
40
|
+
end
|
41
|
+
|
42
42
|
|
43
43
|
task :default => :test
|
44
44
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.6.1
|
data/spec/event_spec.rb
ADDED
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'unobservable'
|
3
|
+
|
4
|
+
# Requires supporting files with custom matchers and macros, etc,
|
5
|
+
# in ./support/ and its subdirectories.
|
6
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
7
|
+
|
8
|
+
RSpec.configure do |config|
|
9
|
+
|
10
|
+
end
|
11
|
+
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
describe Unobservable do
|
6
|
+
|
7
|
+
describe "#instance_events_for" do
|
8
|
+
|
9
|
+
it "raises a type error when it receives a non-Module" do
|
10
|
+
expect do
|
11
|
+
Unobservable.instance_events_for(Object.new)
|
12
|
+
end.to raise_error(TypeError)
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
it "returns an empty list when given a Module that does not support events" do
|
18
|
+
plain_module = Module.new
|
19
|
+
Unobservable.instance_events_for(plain_module, true).should be_empty
|
20
|
+
Unobservable.instance_events_for(plain_module, false).should be_empty
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
it "returns an empty list when given a Module that does not have any instance events defined" do
|
25
|
+
module_without_events = Module.new { include Unobservable::Support }
|
26
|
+
Unobservable.instance_events_for(module_without_events, true).should be_empty
|
27
|
+
Unobservable.instance_events_for(module_without_events, false).should be_empty
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
context "Module defines instance events" do
|
33
|
+
let(:mixin_module) do
|
34
|
+
Module.new do
|
35
|
+
include Unobservable::Support
|
36
|
+
attr_event :one, :two
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
let(:module_with_events) do
|
41
|
+
# Due to scoping weirdness, we need to place the mixin module
|
42
|
+
# in a local variable first.
|
43
|
+
m = mixin_module
|
44
|
+
Module.new do
|
45
|
+
include Unobservable::Support
|
46
|
+
include m
|
47
|
+
attr_event :three, :four
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
it "returns instance events defined explicitly by the Module when all=false" do
|
52
|
+
events = Unobservable::instance_events_for(module_with_events, false)
|
53
|
+
events.size.should eq(2)
|
54
|
+
events.should include(:three)
|
55
|
+
events.should include(:four)
|
56
|
+
end
|
57
|
+
|
58
|
+
|
59
|
+
it "returns instance events defined explicitly and through included Modules when all=true" do
|
60
|
+
events = Unobservable::instance_events_for(module_with_events, true)
|
61
|
+
events.size.should eq(4)
|
62
|
+
events.should include(:one)
|
63
|
+
events.should include(:two)
|
64
|
+
events.should include(:three)
|
65
|
+
events.should include(:four)
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unobservable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: shoulda
|
@@ -75,6 +75,22 @@ dependencies:
|
|
75
75
|
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: 1.8.4
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: rspec
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: 2.8.0
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 2.8.0
|
78
94
|
description: An alternative to Ruby's Observable mixin
|
79
95
|
email: constructile.truth@gmail.com
|
80
96
|
executables: []
|
@@ -91,6 +107,9 @@ files:
|
|
91
107
|
- TODO.rdoc
|
92
108
|
- VERSION
|
93
109
|
- lib/unobservable.rb
|
110
|
+
- spec/event_spec.rb
|
111
|
+
- spec/spec_helper.rb
|
112
|
+
- spec/unobservable_spec.rb
|
94
113
|
- test/helper.rb
|
95
114
|
- test/test_unobservable.rb
|
96
115
|
homepage: http://github.com/briandamaged/unobservable
|
@@ -108,7 +127,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
108
127
|
version: '0'
|
109
128
|
segments:
|
110
129
|
- 0
|
111
|
-
hash:
|
130
|
+
hash: 2302660534203151431
|
112
131
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
132
|
none: false
|
114
133
|
requirements:
|