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 CHANGED
@@ -10,5 +10,5 @@ group :development do
10
10
  gem "rdoc", "~> 3.12"
11
11
  gem "bundler", ">= 1.0.0"
12
12
  gem "jeweler", "~> 1.8.4"
13
- # gem "rcov", ">= 0"
13
+ gem "rspec", ">= 2.8.0"
14
14
  end
data/Rakefile CHANGED
@@ -32,13 +32,13 @@ Rake::TestTask.new(:test) do |test|
32
32
  test.verbose = true
33
33
  end
34
34
 
35
- # require 'rcov/rcovtask'
36
- # Rcov::RcovTask.new do |test|
37
- # test.libs << 'test'
38
- # test.pattern = 'test/**/test_*.rb'
39
- # test.verbose = true
40
- # test.rcov_opts << '--exclude "gems/*"'
41
- # end
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.5.1
1
+ 0.6.1
@@ -0,0 +1,6 @@
1
+ require 'spec_helper'
2
+
3
+ module Unobservable
4
+
5
+
6
+ end
@@ -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.5.1
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-11-25 00:00:00.000000000 Z
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: -729897635777104858
130
+ hash: 2302660534203151431
112
131
  required_rubygems_version: !ruby/object:Gem::Requirement
113
132
  none: false
114
133
  requirements: