unobservable 0.5.1 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
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: