blendris 0.0.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.
@@ -0,0 +1,15 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+
3
+ describe "redis connection accessor" do
4
+
5
+ it "should connect for reading and writing" do
6
+ testkey = prefix + "test-string"
7
+
8
+ redis.get(testkey).should == nil
9
+ redis.set(testkey, "foo").should == true
10
+ redis.get(testkey).should == "foo"
11
+ redis.del(testkey).should == true
12
+ redis.del(testkey).should == false
13
+ end
14
+
15
+ end
@@ -0,0 +1,40 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+
3
+ describe "references" do
4
+
5
+ it "should handle complex transitions" do
6
+
7
+ @vegetable.foods.count.should == 0
8
+ @fruit.foods.count.should == 0
9
+ @onion.category.should be_nil
10
+
11
+ @vegetable.foods << @onion
12
+
13
+ @vegetable.foods.count.should == 1
14
+ @vegetable.foods.first.should == @onion
15
+ @fruit.foods.count.should == 0
16
+ @onion.category.should == @vegetable
17
+
18
+ @fruit.foods << @onion
19
+
20
+ @vegetable.foods.count.should == 0
21
+ @fruit.foods.count.should == 1
22
+ @fruit.foods.first.should == @onion
23
+ @onion.category.should == @fruit
24
+
25
+ @onion.category = nil
26
+
27
+ @vegetable.foods.count.should == 0
28
+ @fruit.foods.count.should == 0
29
+ @onion.category.should be_nil
30
+
31
+ @onion.category = @vegetable
32
+
33
+ @vegetable.foods.count.should == 1
34
+ @vegetable.foods.first.should == @onion
35
+ @fruit.foods.count.should == 0
36
+ @onion.category.should == @vegetable
37
+
38
+ end
39
+
40
+ end
@@ -0,0 +1,20 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+
3
+ describe "redis sets" do
4
+
5
+ it "should read and write" do
6
+ @onion.qualities.count.should == 0
7
+
8
+ @onion.qualities << %w( delicious white weepy delicious )
9
+
10
+ @onion.qualities.count.should == 3
11
+ @onion.qualities.to_a.sort.should == %w( delicious weepy white )
12
+
13
+ @onion.qualities.delete("weepy").should == true
14
+ @onion.qualities.delete("weepy").should == false
15
+
16
+ @onion.qualities.count.should == 2
17
+ @onion.qualities.to_a.sort.should == %w( delicious white )
18
+ end
19
+
20
+ end
@@ -0,0 +1,2 @@
1
+ --colour
2
+ --backtrace
@@ -0,0 +1,85 @@
1
+ begin
2
+ require 'spec'
3
+ rescue LoadError
4
+ require 'rubygems' unless ENV['NO_RUBYGEMS']
5
+ gem 'rspec'
6
+ require 'spec'
7
+ end
8
+
9
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
10
+ require 'blendris'
11
+
12
+ include Blendris
13
+
14
+ module TestFixtures
15
+
16
+ class Food < Model
17
+
18
+ key "food", :name
19
+
20
+ string :name
21
+ string :description, :default => "a tasty food"
22
+ integer :calories, :default => 0
23
+ set :qualities
24
+ list :sales
25
+ ref :category, :class => "TestFixtures::Category", :reverse => :foods
26
+ ref :sibling, :class => Food, :reverse => :sibling
27
+ refs :friends, :class => Food, :reverse => :friends
28
+ ref :something
29
+
30
+ end
31
+
32
+ class Category < Model
33
+
34
+ key "category", :name
35
+
36
+ string :name
37
+ refs :foods, :class => "TestFixtures::Food", :reverse => :category
38
+
39
+ end
40
+
41
+ class FavoriteFood < Model
42
+
43
+ key "person", :person, :food
44
+
45
+ string :person
46
+ ref :food, :class => Food
47
+
48
+ end
49
+
50
+ class Website < Blendris::Model
51
+ key "website", :title
52
+
53
+ string :title
54
+ string :url
55
+ set :paths
56
+ refs :sister_sites, :class => Website, :reverse => :sister_sites
57
+ end
58
+
59
+ end
60
+
61
+ Spec::Runner.configure do |config|
62
+ config.before(:each) do
63
+ extend RedisAccessor
64
+ extend TestFixtures
65
+
66
+ RedisAccessor.prefix = "blendris-spec:"
67
+ RedisAccessor.flush_keys
68
+
69
+ @vegetable = Category.create("vegetable")
70
+ @onion = Food.create("onion")
71
+ @beans = Food.create("beans")
72
+
73
+ @fruit = Category.create("fruit")
74
+ @apple = Food.create("apple")
75
+ @lemon = Food.create("lemon")
76
+
77
+ @meat = Category.create("meat")
78
+ @steak = Food.create("steak")
79
+ end
80
+
81
+ config.after(:each) do
82
+ RedisAccessor.flush_keys
83
+ end
84
+ end
85
+
@@ -0,0 +1,20 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+
3
+ describe "redis strings" do
4
+
5
+ it "should read and write" do
6
+ @onion.description.should == "a tasty food"
7
+
8
+ @onion.description = "a delicious vegetable"
9
+ @onion.description.should == "a delicious vegetable"
10
+
11
+ @onion.description = ""
12
+ @onion.description.should == ""
13
+
14
+ @onion.description = nil
15
+ @onion.description.should == "a tasty food"
16
+
17
+ lambda { @onion.description = 12 }.should raise_exception(TypeError)
18
+ end
19
+
20
+ end
@@ -0,0 +1,21 @@
1
+ begin
2
+ require 'spec'
3
+ rescue LoadError
4
+ require 'rubygems' unless ENV['NO_RUBYGEMS']
5
+ require 'spec'
6
+ end
7
+ begin
8
+ require 'spec/rake/spectask'
9
+ rescue LoadError
10
+ puts <<-EOS
11
+ To use rspec for testing you must install rspec gem:
12
+ gem install rspec
13
+ EOS
14
+ exit(0)
15
+ end
16
+
17
+ desc "Run the specs under spec/models"
18
+ Spec::Rake::SpecTask.new do |t|
19
+ t.spec_opts = ['--options', "spec/spec.opts"]
20
+ t.spec_files = FileList['spec/**/*_spec.rb']
21
+ end
metadata ADDED
@@ -0,0 +1,128 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: blendris
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Alex McHale
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDNjCCAh6gAwIBAgIBADANBgkqhkiG9w0BAQUFADBBMRMwEQYDVQQDDAphbGV4
14
+ bWNoYWxlMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZFgNj
15
+ b20wHhcNMTAwMjExMjEyNTU4WhcNMTEwMjExMjEyNTU4WjBBMRMwEQYDVQQDDAph
16
+ bGV4bWNoYWxlMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZ
17
+ FgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9mTbsd+4JqyuW
18
+ z/J6OxXyyzb89ydr/wKmJZMyQmD7w/Qf3V8uGW9+NlYbRMJZYqY08QhTbSX3IW6c
19
+ 6Hj4Xo0wqR0Fd6c0Vxdt9m5LZDEo2H+2jisgDBYFUN1itg+FGZtGczISlmG34tWN
20
+ efWA+DgtzKD9UG13AtzxoxfqeY03v0+/1/SCtpvbZrungWND8sg9sHSxsME0xB9d
21
+ u6BkunOrdy7iqd105MuPHL35SLhr57GKU/hjR2+FKAauT4eu7CeQXEWCBPXizknN
22
+ 5w/HNs311sBJmzaZwDiX98e+/X10tMxJqWo4t4Us7Ke8b/0uYbuwWoaoKWjM3UYX
23
+ ppWhyNNFAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
24
+ BBQK0Aj0bDKnLJrVNjdgNAXnVaS1qDANBgkqhkiG9w0BAQUFAAOCAQEAU/1kVZUf
25
+ wjl9bhqLZXgcKgIkzgVYwDcqFE0OdBXFD/N+oNBfV80iN/R8iCf6y4dymYDzWalD
26
+ Rho49BN531OSYbWAD0lv5/MQYDpH8uHU4cDTzV1cYkOcjFVGsO26aPM7q1SoMhf+
27
+ 8tCJEl/PSHrV6JmgGRDy6YTnbQGSKPNmykEZep8wWEFXMSW9OmwaeyZyEuWUZIS4
28
+ RtAGR/Bf1/mwYLD0ZZPvsgRy0yBrTeJoaRzJXCT08cN8xBX9sa+PFsjpc267TFsv
29
+ b0cDNnwAzS78yK9xMdpD5l7/mqtfdQPVLfvra4sMBknSW3ukOP3S/WUOfKOz7Ohf
30
+ V3OoCfxVK/4Dqg==
31
+ -----END CERTIFICATE-----
32
+
33
+ date: 2010-02-11 00:00:00 -06:00
34
+ default_executable:
35
+ dependencies: []
36
+
37
+ description: A redis library for Ruby
38
+ email: alexmchale@gmail.com
39
+ executables: []
40
+
41
+ extensions: []
42
+
43
+ extra_rdoc_files:
44
+ - README.rdoc
45
+ - lib/blendris.rb
46
+ - lib/blendris/accessor.rb
47
+ - lib/blendris/errors.rb
48
+ - lib/blendris/integer.rb
49
+ - lib/blendris/list.rb
50
+ - lib/blendris/model.rb
51
+ - lib/blendris/node.rb
52
+ - lib/blendris/reference.rb
53
+ - lib/blendris/reference_base.rb
54
+ - lib/blendris/reference_set.rb
55
+ - lib/blendris/set.rb
56
+ - lib/blendris/string.rb
57
+ - lib/blendris/types.rb
58
+ - lib/blendris/utils.rb
59
+ - tasks/rspec.rake
60
+ files:
61
+ - History.txt
62
+ - Manifest
63
+ - PostInstall.txt
64
+ - README.rdoc
65
+ - Rakefile
66
+ - autotest/discover.rb
67
+ - lib/blendris.rb
68
+ - lib/blendris/accessor.rb
69
+ - lib/blendris/errors.rb
70
+ - lib/blendris/integer.rb
71
+ - lib/blendris/list.rb
72
+ - lib/blendris/model.rb
73
+ - lib/blendris/node.rb
74
+ - lib/blendris/reference.rb
75
+ - lib/blendris/reference_base.rb
76
+ - lib/blendris/reference_set.rb
77
+ - lib/blendris/set.rb
78
+ - lib/blendris/string.rb
79
+ - lib/blendris/types.rb
80
+ - lib/blendris/utils.rb
81
+ - script/console
82
+ - script/destroy
83
+ - script/generate
84
+ - spec/list_spec.rb
85
+ - spec/model_spec.rb
86
+ - spec/redis-tools_spec.rb
87
+ - spec/ref_spec.rb
88
+ - spec/set_spec.rb
89
+ - spec/spec.opts
90
+ - spec/spec_helper.rb
91
+ - spec/string_spec.rb
92
+ - tasks/rspec.rake
93
+ - blendris.gemspec
94
+ has_rdoc: true
95
+ homepage: http://github.com/alexmchale/blendris
96
+ licenses: []
97
+
98
+ post_install_message:
99
+ rdoc_options:
100
+ - --line-numbers
101
+ - --inline-source
102
+ - --title
103
+ - Blendris
104
+ - --main
105
+ - README.rdoc
106
+ require_paths:
107
+ - lib
108
+ required_ruby_version: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: "0"
113
+ version:
114
+ required_rubygems_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: "1.2"
119
+ version:
120
+ requirements: []
121
+
122
+ rubyforge_project: blendris
123
+ rubygems_version: 1.3.5
124
+ signing_key:
125
+ specification_version: 3
126
+ summary: A redis library for Ruby
127
+ test_files: []
128
+
Binary file