set_theory 0.0.2 → 0.0.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.
data/Guardfile ADDED
@@ -0,0 +1,5 @@
1
+ guard 'rspec', :version => 2, :cli => "--color --format nested", :notification => false do
2
+ watch(%r{^spec/.+_spec\.rb})
3
+ watch(%r{^lib/(.+)\.rb}) { |m| "spec/#{m[1]}_spec.rb" }
4
+ watch('spec/spec_helper.rb') { "spec" }
5
+ end
data/README.md CHANGED
@@ -1,7 +1,9 @@
1
1
  Set Theory
2
2
  ==========
3
3
 
4
- Extends Object with nice names for set operations.
4
+ Extends Object and Array with nice names for set operations.
5
+
6
+ See the [Set](http://www.ruby-doc.org/stdlib/libdoc/set/rdoc/index.html) class for a library that doesn't pollute your Objects and Arrays.
5
7
 
6
8
  Installing
7
9
  ----------
@@ -15,6 +17,9 @@ _For the whole library_
15
17
  _Or choose the parts you want_
16
18
 
17
19
  require 'set_theory/member_of'
20
+ require 'set_theory/union'
21
+ require 'set_theory/intersection'
22
+ require 'set_theory/difference'
18
23
 
19
24
  Usage
20
25
  -----
@@ -0,0 +1,5 @@
1
+ class Array
2
+ def difference(ary)
3
+ self - ary
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class Array
2
+ def intersection(ary)
3
+ self & ary
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class Array
2
+ def union(ary)
3
+ (self + ary).uniq
4
+ end
5
+ end
@@ -1,3 +1,3 @@
1
1
  module SetTheory
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/set_theory.rb CHANGED
@@ -1 +1,4 @@
1
1
  require "set_theory/member_of"
2
+ require "set_theory/union"
3
+ require "set_theory/intersection"
4
+ require "set_theory/difference"
data/set_theory.gemspec CHANGED
@@ -16,6 +16,9 @@ Gem::Specification.new do |s|
16
16
 
17
17
  s.add_development_dependency "gem-release", "~> 0.0.16"
18
18
  s.add_development_dependency "rspec", "~> 2.6.0"
19
+ s.add_development_dependency "guard", "~> 0.3.4"
20
+ s.add_development_dependency "guard-rspec", "~> 0.3.1"
21
+ s.add_development_dependency "rb-fsevent", "~> 0.4.0"
19
22
 
20
23
  s.files = `git ls-files`.split("\n")
21
24
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -0,0 +1,14 @@
1
+ require 'set_theory/difference'
2
+
3
+ describe Array do
4
+ it 'responds to #difference' do
5
+ Array.new.respond_to?(:difference).should be
6
+ end
7
+
8
+ describe '#difference' do
9
+ it 'performs the difference of two sets' do
10
+ ([1, 2, 3].difference [2, 3, 4]).should eql [1]
11
+ ([2, 3, 4].difference [1, 2, 3]).should eql [4]
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ require 'set_theory/intersection'
2
+
3
+ describe Array do
4
+ it 'responds to #intersection' do
5
+ Array.new.respond_to?(:intersection).should be
6
+ end
7
+
8
+ describe '#intersection' do
9
+ it 'performs the intersection of two sets' do
10
+ ([1, 2, 3].intersection [2, 3, 4]).should eql [2, 3]
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ require 'set_theory/union'
2
+
3
+ describe Array do
4
+ it 'responds to #union' do
5
+ Array.new.respond_to?(:union).should be
6
+ end
7
+
8
+ describe '#union' do
9
+ it 'performs the union of two sets' do
10
+ ([1, 2, 3].union [2, 3, 4]).should eql [1, 2, 3, 4]
11
+ end
12
+ end
13
+ end
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: set_theory
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 0
8
- - 2
9
- version: 0.0.2
4
+ prerelease:
5
+ version: 0.0.3
10
6
  platform: ruby
11
7
  authors:
12
8
  - Tim Preston
@@ -14,7 +10,7 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2011-05-22 00:00:00 +10:00
13
+ date: 2011-05-25 00:00:00 +10:00
18
14
  default_executable:
19
15
  dependencies:
20
16
  - !ruby/object:Gem::Dependency
@@ -25,10 +21,6 @@ dependencies:
25
21
  requirements:
26
22
  - - ~>
27
23
  - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- - 0
31
- - 16
32
24
  version: 0.0.16
33
25
  type: :development
34
26
  version_requirements: *id001
@@ -40,13 +32,42 @@ dependencies:
40
32
  requirements:
41
33
  - - ~>
42
34
  - !ruby/object:Gem::Version
43
- segments:
44
- - 2
45
- - 6
46
- - 0
47
35
  version: 2.6.0
48
36
  type: :development
49
37
  version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: guard
40
+ prerelease: false
41
+ requirement: &id003 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: 0.3.4
47
+ type: :development
48
+ version_requirements: *id003
49
+ - !ruby/object:Gem::Dependency
50
+ name: guard-rspec
51
+ prerelease: false
52
+ requirement: &id004 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ~>
56
+ - !ruby/object:Gem::Version
57
+ version: 0.3.1
58
+ type: :development
59
+ version_requirements: *id004
60
+ - !ruby/object:Gem::Dependency
61
+ name: rb-fsevent
62
+ prerelease: false
63
+ requirement: &id005 !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: 0.4.0
69
+ type: :development
70
+ version_requirements: *id005
50
71
  description: Extends Object with nice names for set operations.
51
72
  email:
52
73
  - tim@tp.id.au
@@ -61,14 +82,21 @@ files:
61
82
  - .gitignore
62
83
  - .rspec
63
84
  - Gemfile
85
+ - Guardfile
64
86
  - LICENSE
65
87
  - README.md
66
88
  - Rakefile
67
89
  - lib/set_theory.rb
90
+ - lib/set_theory/difference.rb
91
+ - lib/set_theory/intersection.rb
68
92
  - lib/set_theory/member_of.rb
93
+ - lib/set_theory/union.rb
69
94
  - lib/set_theory/version.rb
70
95
  - set_theory.gemspec
96
+ - spec/set_theory/difference_spec.rb
97
+ - spec/set_theory/intersection_spec.rb
71
98
  - spec/set_theory/member_of_spec.rb
99
+ - spec/set_theory/union_spec.rb
72
100
  has_rdoc: true
73
101
  homepage: http://github.com/tehpeh/set_theory
74
102
  licenses: []
@@ -83,23 +111,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
83
111
  requirements:
84
112
  - - ">="
85
113
  - !ruby/object:Gem::Version
86
- segments:
87
- - 0
88
114
  version: "0"
89
115
  required_rubygems_version: !ruby/object:Gem::Requirement
90
116
  none: false
91
117
  requirements:
92
118
  - - ">="
93
119
  - !ruby/object:Gem::Version
94
- segments:
95
- - 0
96
120
  version: "0"
97
121
  requirements: []
98
122
 
99
123
  rubyforge_project: set_theory
100
- rubygems_version: 1.3.7
124
+ rubygems_version: 1.5.2
101
125
  signing_key:
102
126
  specification_version: 3
103
127
  summary: Extends Object with nice names for set operations.
104
128
  test_files:
129
+ - spec/set_theory/difference_spec.rb
130
+ - spec/set_theory/intersection_spec.rb
105
131
  - spec/set_theory/member_of_spec.rb
132
+ - spec/set_theory/union_spec.rb