blendris 0.6 → 1.0

Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig CHANGED
Binary file
data/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2010 Alex McHale (alexmchale@gmail.com)
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
data/Manifest CHANGED
@@ -1,4 +1,5 @@
1
1
  History.txt
2
+ LICENSE
2
3
  Manifest
3
4
  PostInstall.txt
4
5
  README.markdown
@@ -18,6 +19,7 @@ lib/blendris/set.rb
18
19
  lib/blendris/string.rb
19
20
  lib/blendris/types.rb
20
21
  lib/blendris/utils.rb
22
+ lib/blendris/zset.rb
21
23
  script/console
22
24
  script/destroy
23
25
  script/generate
@@ -27,6 +29,7 @@ spec/model_spec.rb
27
29
  spec/redis-tools_spec.rb
28
30
  spec/ref_spec.rb
29
31
  spec/set_spec.rb
30
- spec/spec.opts
31
32
  spec/spec_helper.rb
32
33
  spec/string_spec.rb
34
+ spec/utils_spec.rb
35
+ spec/zset_spec.rb
data/Rakefile CHANGED
@@ -1,15 +1,13 @@
1
1
  require "rubygems"
2
2
  require "rubygems/commands/push_command"
3
-
4
- gem "echoe", ">= 4.1"
5
- gem "redis", ">= 0.1.2"
3
+ require "rspec/core/rake_task"
6
4
 
7
5
  require "echoe"
8
6
  require "redis"
9
7
  require "fileutils"
10
8
  require "./lib/blendris"
11
9
 
12
- Echoe.new("blendris", "0.6") do |p|
10
+ Echoe.new("blendris", Blendris::VERSION) do |p|
13
11
 
14
12
  p.description = "A redis library for Ruby"
15
13
  p.url = "http://github.com/alexmchale/blendris"
@@ -17,7 +15,12 @@ Echoe.new("blendris", "0.6") do |p|
17
15
  p.email = "alexmchale@gmail.com"
18
16
  p.ignore_pattern = [ "tmp", "pkg", "script" ]
19
17
  p.development_dependencies = []
18
+ p.runtime_dependencies = [ "redis >=2.0.13" ]
19
+
20
+ end
20
21
 
22
+ RSpec::Core::RakeTask.new(:spec) do |t|
23
+ t.pattern = "spec/**/*_spec.rb"
21
24
  end
22
25
 
23
26
  Dir['tasks/**/*.rake'].each { |t| load t }
data/blendris.gemspec CHANGED
@@ -2,31 +2,34 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{blendris}
5
- s.version = "0.6"
5
+ s.version = "1.0"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Alex McHale"]
9
- s.cert_chain = ["/Users/alexmchale/Dropbox/Security/gem-public_cert.pem"]
10
- s.date = %q{2010-02-27}
9
+ s.cert_chain = ["/home/alexmchale/.ssh/gem-public_cert.pem"]
10
+ s.date = %q{2010-11-05}
11
11
  s.description = %q{A redis library for Ruby}
12
12
  s.email = %q{alexmchale@gmail.com}
13
- s.extra_rdoc_files = ["README.markdown", "lib/blendris.rb", "lib/blendris/accessor.rb", "lib/blendris/errors.rb", "lib/blendris/integer.rb", "lib/blendris/list.rb", "lib/blendris/model.rb", "lib/blendris/node.rb", "lib/blendris/reference.rb", "lib/blendris/reference_base.rb", "lib/blendris/reference_set.rb", "lib/blendris/set.rb", "lib/blendris/string.rb", "lib/blendris/types.rb", "lib/blendris/utils.rb"]
14
- s.files = ["History.txt", "Manifest", "PostInstall.txt", "README.markdown", "Rakefile", "autotest/discover.rb", "lib/blendris.rb", "lib/blendris/accessor.rb", "lib/blendris/errors.rb", "lib/blendris/integer.rb", "lib/blendris/list.rb", "lib/blendris/model.rb", "lib/blendris/node.rb", "lib/blendris/reference.rb", "lib/blendris/reference_base.rb", "lib/blendris/reference_set.rb", "lib/blendris/set.rb", "lib/blendris/string.rb", "lib/blendris/types.rb", "lib/blendris/utils.rb", "script/console", "script/destroy", "script/generate", "spec/integer_spec.rb", "spec/list_spec.rb", "spec/model_spec.rb", "spec/redis-tools_spec.rb", "spec/ref_spec.rb", "spec/set_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "spec/string_spec.rb", "blendris.gemspec"]
13
+ s.extra_rdoc_files = ["LICENSE", "README.markdown", "lib/blendris.rb", "lib/blendris/accessor.rb", "lib/blendris/errors.rb", "lib/blendris/integer.rb", "lib/blendris/list.rb", "lib/blendris/model.rb", "lib/blendris/node.rb", "lib/blendris/reference.rb", "lib/blendris/reference_base.rb", "lib/blendris/reference_set.rb", "lib/blendris/set.rb", "lib/blendris/string.rb", "lib/blendris/types.rb", "lib/blendris/utils.rb", "lib/blendris/zset.rb"]
14
+ s.files = ["History.txt", "LICENSE", "Manifest", "PostInstall.txt", "README.markdown", "Rakefile", "autotest/discover.rb", "lib/blendris.rb", "lib/blendris/accessor.rb", "lib/blendris/errors.rb", "lib/blendris/integer.rb", "lib/blendris/list.rb", "lib/blendris/model.rb", "lib/blendris/node.rb", "lib/blendris/reference.rb", "lib/blendris/reference_base.rb", "lib/blendris/reference_set.rb", "lib/blendris/set.rb", "lib/blendris/string.rb", "lib/blendris/types.rb", "lib/blendris/utils.rb", "lib/blendris/zset.rb", "script/console", "script/destroy", "script/generate", "spec/integer_spec.rb", "spec/list_spec.rb", "spec/model_spec.rb", "spec/redis-tools_spec.rb", "spec/ref_spec.rb", "spec/set_spec.rb", "spec/spec_helper.rb", "spec/string_spec.rb", "spec/utils_spec.rb", "spec/zset_spec.rb", "blendris.gemspec"]
15
15
  s.homepage = %q{http://github.com/alexmchale/blendris}
16
16
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Blendris", "--main", "README.markdown"]
17
17
  s.require_paths = ["lib"]
18
18
  s.rubyforge_project = %q{blendris}
19
- s.rubygems_version = %q{1.3.6}
20
- s.signing_key = %q{/Users/alexmchale/Dropbox/Security/gem-private_key.pem}
19
+ s.rubygems_version = %q{1.3.7}
20
+ s.signing_key = %q{/home/alexmchale/.ssh/gem-private_key.pem}
21
21
  s.summary = %q{A redis library for Ruby}
22
22
 
23
23
  if s.respond_to? :specification_version then
24
24
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
25
25
  s.specification_version = 3
26
26
 
27
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
27
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
28
+ s.add_runtime_dependency(%q<redis>, [">= 2.0.13"])
28
29
  else
30
+ s.add_dependency(%q<redis>, [">= 2.0.13"])
29
31
  end
30
32
  else
33
+ s.add_dependency(%q<redis>, [">= 2.0.13"])
31
34
  end
32
35
  end
data/lib/blendris.rb CHANGED
@@ -2,7 +2,7 @@ $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
3
 
4
4
  module Blendris
5
- VERSION = '0.0.1'
5
+ VERSION = '1.0'
6
6
  end
7
7
 
8
8
  require "redis"
@@ -19,6 +19,7 @@ require "blendris/string"
19
19
  require "blendris/integer"
20
20
  require "blendris/list"
21
21
  require "blendris/set"
22
+ require "blendris/zset"
22
23
 
23
24
  require "blendris/reference_base"
24
25
  require "blendris/reference"
@@ -7,6 +7,7 @@ module Blendris
7
7
  type :string, RedisString
8
8
  type :integer, RedisInteger
9
9
  type :set, RedisSet
10
+ type :zset, RedisSortedSet
10
11
  type :list, RedisList
11
12
  type :ref, RedisReference
12
13
  type :refs, RedisReferenceSet
@@ -38,6 +38,12 @@ module Blendris
38
38
  key.to_s.gsub(/[\r\n\s]/, "_").gsub(/^:+|:+$/, "")
39
39
  end
40
40
 
41
+ # Take an array and turn it into a list of pairs.
42
+ def pairify(*arr)
43
+ arr = arr.flatten
44
+ (0 ... arr.length/2).map { |i| [ arr[2*i], arr[2*i + 1] ] }
45
+ end
46
+
41
47
  end
42
48
 
43
49
  end
@@ -0,0 +1,90 @@
1
+ module Blendris
2
+
3
+ # RedisSortedSet is a wrapper to the Redis ZSET data type.
4
+
5
+ class RedisSortedSet < RedisNode
6
+
7
+ include Enumerable
8
+
9
+ def initialize(key, options = {})
10
+ @key = key.to_s
11
+ @options = options
12
+ @on_change = options[:on_change]
13
+ end
14
+
15
+ def each(min = "-inf", max = "+inf", mode = :score)
16
+ case mode
17
+ when :rank then redis.zrange key, min, max
18
+ when :score then redis.zrangebyscore key, min, max
19
+ else raise "unknown zset mode #{mode}"
20
+ end.each do |value|
21
+ yield value
22
+ end
23
+
24
+ self
25
+ end
26
+
27
+ def set(*pairs)
28
+ tempkey = "#{key}:::TEMP:::#{rand}"
29
+ redis.del tempkey
30
+
31
+ pairify(pairs).each do |score, value|
32
+ redis.zadd tempkey, score, value
33
+ end
34
+
35
+ redis.rename tempkey, key
36
+
37
+ self
38
+ ensure
39
+ notify_changed
40
+ end
41
+
42
+ def <<(pairs)
43
+ tempkey = "#{key}:::TEMP:::#{rand}"
44
+ redis.del tempkey
45
+
46
+ pairify(pairs).each do |score, value|
47
+ redis.zadd tempkey, score, value
48
+ end
49
+
50
+ redis.zunionstore key, [ key, tempkey ]
51
+ redis.del tempkey
52
+
53
+ self
54
+ ensure
55
+ notify_changed
56
+ end
57
+
58
+ def get
59
+ self
60
+ end
61
+
62
+ def delete(value)
63
+ redis.zrem key, value
64
+ ensure
65
+ notify_changed
66
+ end
67
+
68
+ def delete_by_score(min, max)
69
+ redis.zremrangebyscore key, min, max
70
+ ensure
71
+ notify_changed
72
+ end
73
+
74
+ # Set this zset's members to the intersection of this set and the given set.
75
+ def intersect!(other)
76
+ redis.zinterstore key, [ key, other.key ]
77
+ ensure
78
+ notify_changed
79
+ end
80
+
81
+ # Set this zset's members to the union of this set and the given set.
82
+ def union!(other)
83
+ redis.zunionstore key, [ key, other.key ]
84
+ ensure
85
+ notify_changed
86
+ end
87
+
88
+ end
89
+
90
+ end
@@ -8,10 +8,10 @@ describe "redis connection accessor" do
8
8
  testkey = "test-string"
9
9
 
10
10
  redis.get(testkey).should == nil
11
- redis.set(testkey, "foo").should == true
11
+ redis.set(testkey, "foo").should == "OK"
12
12
  redis.get(testkey).should == "foo"
13
- redis.del(testkey).should == true
14
- redis.del(testkey).should == false
13
+ redis.del(testkey).should == 1
14
+ redis.del(testkey).should == 0
15
15
  end
16
16
 
17
17
  it "should allow for keys to be renamed" do
data/spec/spec_helper.rb CHANGED
@@ -1,9 +1,9 @@
1
1
  begin
2
- require 'spec'
2
+ require 'rspec'
3
3
  rescue LoadError
4
4
  require 'rubygems' unless ENV['NO_RUBYGEMS']
5
5
  gem 'rspec'
6
- require 'spec'
6
+ require 'rspec'
7
7
  end
8
8
 
9
9
  $:.unshift(File.dirname(__FILE__) + '/../lib')
@@ -86,7 +86,7 @@ module TestFixtures
86
86
 
87
87
  end
88
88
 
89
- Spec::Runner.configure do |config|
89
+ RSpec.configure do |config|
90
90
  include TestFixtures
91
91
 
92
92
  config.before(:each) do
@@ -0,0 +1,15 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+
3
+ describe "utility methods" do
4
+
5
+ include Blendris::Utils
6
+
7
+ it "should pairify an array" do
8
+ pairify(nil).should == []
9
+ pairify([]).should == []
10
+ pairify(1).should == []
11
+ pairify(1, 2).should == [ [1, 2] ]
12
+ pairify(1, 2, 3, [4, 5], 6, 7).should == [ [1, 2], [3, 4], [5, 6] ]
13
+ end
14
+
15
+ end
data/spec/zset_spec.rb ADDED
@@ -0,0 +1,16 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+
3
+ describe "redis zsets" do
4
+
5
+ it "should compose correctly" do
6
+ z = RedisSortedSet.new("set1")
7
+
8
+ z << [ [2, "timothy"], [1, "alexander"], [3, "mchale"] ]
9
+ z.to_a.should == %w( alexander timothy mchale )
10
+
11
+ z.set 1, "cat", 0, "dog"
12
+ z.delete "cat"
13
+ z.to_a.should == %w( dog )
14
+ end
15
+
16
+ end
metadata CHANGED
@@ -1,11 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blendris
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 15
4
5
  prerelease: false
5
6
  segments:
7
+ - 1
6
8
  - 0
7
- - 6
8
- version: "0.6"
9
+ version: "1.0"
9
10
  platform: ruby
10
11
  authors:
11
12
  - Alex McHale
@@ -16,28 +17,43 @@ cert_chain:
16
17
  -----BEGIN CERTIFICATE-----
17
18
  MIIDNjCCAh6gAwIBAgIBADANBgkqhkiG9w0BAQUFADBBMRMwEQYDVQQDDAphbGV4
18
19
  bWNoYWxlMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZFgNj
19
- b20wHhcNMTAwMjExMjEyNTU4WhcNMTEwMjExMjEyNTU4WjBBMRMwEQYDVQQDDAph
20
+ b20wHhcNMTAwODMxMTQ1NjExWhcNMTEwODMxMTQ1NjExWjBBMRMwEQYDVQQDDAph
20
21
  bGV4bWNoYWxlMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZ
21
- FgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9mTbsd+4JqyuW
22
- z/J6OxXyyzb89ydr/wKmJZMyQmD7w/Qf3V8uGW9+NlYbRMJZYqY08QhTbSX3IW6c
23
- 6Hj4Xo0wqR0Fd6c0Vxdt9m5LZDEo2H+2jisgDBYFUN1itg+FGZtGczISlmG34tWN
24
- efWA+DgtzKD9UG13AtzxoxfqeY03v0+/1/SCtpvbZrungWND8sg9sHSxsME0xB9d
25
- u6BkunOrdy7iqd105MuPHL35SLhr57GKU/hjR2+FKAauT4eu7CeQXEWCBPXizknN
26
- 5w/HNs311sBJmzaZwDiX98e+/X10tMxJqWo4t4Us7Ke8b/0uYbuwWoaoKWjM3UYX
27
- ppWhyNNFAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
28
- BBQK0Aj0bDKnLJrVNjdgNAXnVaS1qDANBgkqhkiG9w0BAQUFAAOCAQEAU/1kVZUf
29
- wjl9bhqLZXgcKgIkzgVYwDcqFE0OdBXFD/N+oNBfV80iN/R8iCf6y4dymYDzWalD
30
- Rho49BN531OSYbWAD0lv5/MQYDpH8uHU4cDTzV1cYkOcjFVGsO26aPM7q1SoMhf+
31
- 8tCJEl/PSHrV6JmgGRDy6YTnbQGSKPNmykEZep8wWEFXMSW9OmwaeyZyEuWUZIS4
32
- RtAGR/Bf1/mwYLD0ZZPvsgRy0yBrTeJoaRzJXCT08cN8xBX9sa+PFsjpc267TFsv
33
- b0cDNnwAzS78yK9xMdpD5l7/mqtfdQPVLfvra4sMBknSW3ukOP3S/WUOfKOz7Ohf
34
- V3OoCfxVK/4Dqg==
22
+ FgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIUoy5sx2lmVzR
23
+ higIWdA6zFNSt1eibOVF0nCptQ2BejzefTmfhpgwWKDX9FvGdF213WBwxIGJFP0c
24
+ yOJTOoTgKQwQd6zCSoeNgNNHrXwbd42OKfHBTN1+DvNVoK9mLB659fUJ5CoCqNLU
25
+ FI6RtILyZVH/Hja8nnHJrfGjJ0aWSRueVuO/06QmKvm19EJEVbTSd/DwAbJTYrQD
26
+ 6snqEY+64mcx8gvF2aCmGXKSpLqnTedsr3/16cd1rkHw7dZqbzyKc1uZaQL+giwp
27
+ Ijyn2SdMV+OKTf6xe/aL22aW/Z2b+tjQO8elB+/cz5kOlAkhtN3ENjf2e3H3UZSs
28
+ r+JQgRSdAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
29
+ BBS84ERhhfvntDfJzJe0/by+aeVeqDANBgkqhkiG9w0BAQUFAAOCAQEAFZRn7kGl
30
+ gvITFgcLlGAWNwYTfDiXm+8xjNXCyFLP2YgZvzNmP9HtzxnJHG9pk1tvAzKVgGQB
31
+ w+yPgHA9ASVnNP8/YifMVQtRkOYvmYiK+ynLTgqn3cCod0Q4mWcZ3mTsVfAqGxAZ
32
+ fyoyfn4C+7Ks6j3k7yXzcKoAi4w0RiHYUrNQAOFzkahHaovvophs88nIgq/HNSY6
33
+ tgs+JaGdLZUsgj0TZpzELi4d6iFDD44D/pAKN8VIpSlcbyKXkIyQa/NrKOTSie7u
34
+ AH5EvwIudku4RjdH363cTYX1xZ69LjcwrUpDrCJbG9jNK8icMoAOTEw0huZYvGRC
35
+ qyGdKMrvQEbACA==
35
36
  -----END CERTIFICATE-----
36
37
 
37
- date: 2010-02-27 00:00:00 -06:00
38
+ date: 2010-11-05 00:00:00 -05:00
38
39
  default_executable:
39
- dependencies: []
40
-
40
+ dependencies:
41
+ - !ruby/object:Gem::Dependency
42
+ name: redis
43
+ prerelease: false
44
+ requirement: &id001 !ruby/object:Gem::Requirement
45
+ none: false
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ hash: 21
50
+ segments:
51
+ - 2
52
+ - 0
53
+ - 13
54
+ version: 2.0.13
55
+ type: :runtime
56
+ version_requirements: *id001
41
57
  description: A redis library for Ruby
42
58
  email: alexmchale@gmail.com
43
59
  executables: []
@@ -45,6 +61,7 @@ executables: []
45
61
  extensions: []
46
62
 
47
63
  extra_rdoc_files:
64
+ - LICENSE
48
65
  - README.markdown
49
66
  - lib/blendris.rb
50
67
  - lib/blendris/accessor.rb
@@ -60,8 +77,10 @@ extra_rdoc_files:
60
77
  - lib/blendris/string.rb
61
78
  - lib/blendris/types.rb
62
79
  - lib/blendris/utils.rb
80
+ - lib/blendris/zset.rb
63
81
  files:
64
82
  - History.txt
83
+ - LICENSE
65
84
  - Manifest
66
85
  - PostInstall.txt
67
86
  - README.markdown
@@ -81,6 +100,7 @@ files:
81
100
  - lib/blendris/string.rb
82
101
  - lib/blendris/types.rb
83
102
  - lib/blendris/utils.rb
103
+ - lib/blendris/zset.rb
84
104
  - script/console
85
105
  - script/destroy
86
106
  - script/generate
@@ -90,9 +110,10 @@ files:
90
110
  - spec/redis-tools_spec.rb
91
111
  - spec/ref_spec.rb
92
112
  - spec/set_spec.rb
93
- - spec/spec.opts
94
113
  - spec/spec_helper.rb
95
114
  - spec/string_spec.rb
115
+ - spec/utils_spec.rb
116
+ - spec/zset_spec.rb
96
117
  - blendris.gemspec
97
118
  has_rdoc: true
98
119
  homepage: http://github.com/alexmchale/blendris
@@ -109,16 +130,20 @@ rdoc_options:
109
130
  require_paths:
110
131
  - lib
111
132
  required_ruby_version: !ruby/object:Gem::Requirement
133
+ none: false
112
134
  requirements:
113
135
  - - ">="
114
136
  - !ruby/object:Gem::Version
137
+ hash: 3
115
138
  segments:
116
139
  - 0
117
140
  version: "0"
118
141
  required_rubygems_version: !ruby/object:Gem::Requirement
142
+ none: false
119
143
  requirements:
120
144
  - - ">="
121
145
  - !ruby/object:Gem::Version
146
+ hash: 11
122
147
  segments:
123
148
  - 1
124
149
  - 2
@@ -126,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
126
151
  requirements: []
127
152
 
128
153
  rubyforge_project: blendris
129
- rubygems_version: 1.3.6
154
+ rubygems_version: 1.3.7
130
155
  signing_key:
131
156
  specification_version: 3
132
157
  summary: A redis library for Ruby
metadata.gz.sig CHANGED
@@ -1 +1 @@
1
- ���C:��FE�����8���t6?��9CI�������X=�4 �ƨ�[i1b���noX�������pE�`����C��2�aօ�NP5�~xuXM�n|8Qڷ��iR�G�ɕ�܋fD���󌇕���bq�A������������iB%�OV�ެ�0DF����-J@�}�4�-�#ū�M�8l�;^���h�7b�_�5T6)����q������K�����q^�>n�����z{�S��rJpK����
1
+ ��]td0��$����Y��h�����'���YB�\�+���vow���_n]$���WȂ��o��"�{~������u5R
data/spec/spec.opts DELETED
@@ -1,2 +0,0 @@
1
- --colour
2
- --backtrace