set_theory 0.0.2 → 0.0.3

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