doeskeyvalue 0.9.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -14,7 +14,7 @@ gem "hashie", "~> 1.2.0"
14
14
 
15
15
  # Development dependencies:
16
16
  group :development do
17
- gem "bundler", "~> 1.1.0"
17
+ gem "bundler", "~> 1.2.1"
18
18
  gem "jeweler", "~> 1.8.4"
19
19
  gem "rdoc", "~> 3.12"
20
20
  gem "rspec", ">= 2.11.0"
@@ -25,7 +25,7 @@ GEM
25
25
  rdoc
26
26
  json (1.7.5)
27
27
  multi_json (1.3.6)
28
- rake (0.9.2.2)
28
+ rake (10.0.3)
29
29
  rdoc (3.12)
30
30
  json (~> 1.4)
31
31
  rspec (2.11.0)
@@ -45,7 +45,7 @@ PLATFORMS
45
45
  DEPENDENCIES
46
46
  activerecord (~> 3.2.0)
47
47
  activesupport (~> 3.2.0)
48
- bundler (~> 1.1.0)
48
+ bundler (~> 1.2.1)
49
49
  hashie (~> 1.2.0)
50
50
  jeweler (~> 1.8.4)
51
51
  rdoc (~> 3.12)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.9.0
1
+ 0.9.1
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "doeskeyvalue"
8
- s.version = "0.9.0"
8
+ s.version = "0.9.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Awexome Labs"]
12
- s.date = "2012-12-30"
12
+ s.date = "2013-01-16"
13
13
  s.description = "NoSQL-like key value stores in SQL-backed ActiveRecord objects. Arbitrary keys behave like dynamic, indexable, searchable first-order attributes."
14
14
  s.email = "engineering@awexomelabs.com"
15
15
  s.extra_rdoc_files = [
@@ -52,7 +52,7 @@ Gem::Specification.new do |s|
52
52
  s.add_runtime_dependency(%q<activesupport>, ["~> 3.2.0"])
53
53
  s.add_runtime_dependency(%q<activerecord>, ["~> 3.2.0"])
54
54
  s.add_runtime_dependency(%q<hashie>, ["~> 1.2.0"])
55
- s.add_development_dependency(%q<bundler>, ["~> 1.1.0"])
55
+ s.add_development_dependency(%q<bundler>, ["~> 1.2.1"])
56
56
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
57
57
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
58
58
  s.add_development_dependency(%q<rspec>, [">= 2.11.0"])
@@ -61,7 +61,7 @@ Gem::Specification.new do |s|
61
61
  s.add_dependency(%q<activesupport>, ["~> 3.2.0"])
62
62
  s.add_dependency(%q<activerecord>, ["~> 3.2.0"])
63
63
  s.add_dependency(%q<hashie>, ["~> 1.2.0"])
64
- s.add_dependency(%q<bundler>, ["~> 1.1.0"])
64
+ s.add_dependency(%q<bundler>, ["~> 1.2.1"])
65
65
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
66
66
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
67
67
  s.add_dependency(%q<rspec>, [">= 2.11.0"])
@@ -71,7 +71,7 @@ Gem::Specification.new do |s|
71
71
  s.add_dependency(%q<activesupport>, ["~> 3.2.0"])
72
72
  s.add_dependency(%q<activerecord>, ["~> 3.2.0"])
73
73
  s.add_dependency(%q<hashie>, ["~> 1.2.0"])
74
- s.add_dependency(%q<bundler>, ["~> 1.1.0"])
74
+ s.add_dependency(%q<bundler>, ["~> 1.2.1"])
75
75
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
76
76
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
77
77
  s.add_dependency(%q<rspec>, [">= 2.11.0"])
@@ -45,7 +45,7 @@ module DoesKeyValue
45
45
 
46
46
  value = blob.send(key_name)
47
47
 
48
- return value if value
48
+ return value unless value.nil?
49
49
  return key_default_value
50
50
  end
51
51
 
@@ -69,11 +69,11 @@ module DoesKeyValue
69
69
  if key_indexed
70
70
 
71
71
  # With scope:
72
- scope "with_#{key_name}", lambda {|value|
72
+ scope "with_#{key_name}", lambda {|value|
73
73
  DoesKeyValue::Index.find_objects(self, key_name, value)
74
74
  }
75
75
  DoesKeyValue.log("Scope with_#{key_name} added for indexed key #{key_name}")
76
-
76
+
77
77
  # Update the index after save:
78
78
  if column_storage?
79
79
  define_method("update_index_for_#{key_name}") do
@@ -124,7 +124,7 @@ module DoesKeyValue
124
124
  DoesKeyValue::State.instance.options_for_key(self, key_name)
125
125
  end
126
126
 
127
-
127
+
128
128
  private
129
129
 
130
130
  # Define a new key for a class:
@@ -7,7 +7,7 @@ require File.expand_path(File.dirname(__FILE__)+"/../spec_helper")
7
7
  # Create schema for sample User model for testing column-based storage:
8
8
  ActiveRecord::Base.connection.drop_table(:users) if ActiveRecord::Base.connection.table_exists?(:users)
9
9
  ActiveRecord::Base.connection.create_table(:users) do |t|
10
- t.string :name
10
+ t.string :name
11
11
  t.string :email
12
12
  t.text :settings
13
13
  t.timestamps
@@ -42,6 +42,8 @@ class User < ActiveRecord::Base
42
42
  has_key :bool_key, :type=>:boolean
43
43
  has_key :date_key, :type=>:datetime
44
44
  has_key :default_val_key, :default=>"The Default"
45
+ has_key :default_val_key_bool_true, :type=>:boolean, :default=>true
46
+ has_key :default_val_key_bool_false, :type=>:boolean, :default=>false
45
47
  has_key :indexless_key, :index=>false
46
48
  end
47
49
 
@@ -78,6 +80,11 @@ describe "column_storage" do
78
80
  @user.default_val_key.should == "The Default"
79
81
  end
80
82
 
83
+ it "returns default value for boolean keys" do
84
+ @user.default_val_key_bool_true.should be_true
85
+ @user.default_val_key_bool_false.should be_false
86
+ end
87
+
81
88
  it "saves and returns the same value for keys" do
82
89
  @user.string_key = "Ron Swanson"
83
90
  @user.save
@@ -85,31 +92,31 @@ describe "column_storage" do
85
92
  @user.string_key.should == "Ron Swanson"
86
93
  end
87
94
 
88
- it "sets a string value when assigned" do
95
+ it "sets a string value when assigned" do
89
96
  @user.string_key = "Hello"
90
97
  @user.string_key.should == "Hello"
91
98
  end
92
99
 
93
- it "sets an integer value when assigned" do
100
+ it "sets an integer value when assigned" do
94
101
  @user.integer_key = 123
95
102
  @user.integer_key.should == 123
96
103
  @user.integer_key.class.should == Fixnum
97
104
  end
98
-
99
- it "sets a decimal value when assigned" do
105
+
106
+ it "sets a decimal value when assigned" do
100
107
  @user.decimal_key = 12.21
101
108
  @user.decimal_key.should == 12.21
102
109
  @user.decimal_key.class.should == Float
103
110
  end
104
-
105
- it "sets a boolean value when assigned" do
111
+
112
+ it "sets a boolean value when assigned" do
106
113
  @user.bool_key = true
107
114
  @user.bool_key.should be_true
108
115
  @user.bool_key = false
109
116
  @user.bool_key.should be_false
110
117
  end
111
118
 
112
- it "sets a datetime value when assigned" do
119
+ it "sets a datetime value when assigned" do
113
120
  d0 = DateTime.now
114
121
  @user.date_key = d0
115
122
  @user.date_key.should == d0
@@ -8,7 +8,7 @@
8
8
  ActiveRecord::Base.connection.drop_table(:posts) if ActiveRecord::Base.connection.table_exists?(:posts)
9
9
  ActiveRecord::Base.connection.create_table(:posts) do |t|
10
10
  t.integer :user_id
11
- t.string :title
11
+ t.string :title
12
12
  t.text :body
13
13
  t.timestamps
14
14
  end
@@ -86,35 +86,34 @@ describe "table_storage" do
86
86
  @post.string_key.should == "Ron Swanson"
87
87
  end
88
88
 
89
- it "sets a string value when assigned" do
89
+ it "sets a string value when assigned" do
90
90
  @post.string_key = "Hello"
91
91
  @post.string_key.should == "Hello"
92
92
  end
93
93
 
94
- it "sets an integer value when assigned" do
94
+ it "sets an integer value when assigned" do
95
95
  @post.integer_key = 123
96
96
  @post.integer_key.should == 123
97
97
  @post.integer_key.class.should == Fixnum
98
98
  end
99
-
100
- it "sets a decimal value when assigned" do
99
+
100
+ it "sets a decimal value when assigned" do
101
101
  @post.decimal_key = 12.21
102
102
  @post.decimal_key.should == 12.21
103
- @post.decimal_key.class.should == Float
103
+ # DB implementation dependent: @post.decimal_key.class.should == Float
104
104
  end
105
-
106
- it "sets a boolean value when assigned" do
105
+
106
+ it "sets a boolean value when assigned" do
107
107
  @post.bool_key = true
108
108
  @post.bool_key.should be_true
109
109
  @post.bool_key = false
110
110
  @post.bool_key.should be_false
111
111
  end
112
112
 
113
- it "sets a datetime value when assigned" do
114
- d0 = DateTime.now
113
+ it "sets a datetime value when assigned" do
114
+ d0 = Time.now
115
115
  @post.date_key = d0
116
116
  @post.date_key.should == d0
117
- @post.date_key.class.should == DateTime
118
117
  end
119
118
 
120
119
  it "defines with_ scope for indexed keys" do
@@ -130,8 +129,8 @@ describe "table_storage" do
130
129
  it "finds objects via the scope and index" do
131
130
  @post.string_key = "Champion"
132
131
  @post.save
133
- find_results = User.with_string_key("Champion")
134
- find_results.length.should == 1
132
+ find_results = Post.with_string_key("Champion")
133
+ find_results.count.should == 1
135
134
  find_results.first.should == @post
136
135
  end
137
136
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: doeskeyvalue
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.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-12-30 00:00:00.000000000 Z
12
+ date: 2013-01-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -66,7 +66,7 @@ dependencies:
66
66
  requirements:
67
67
  - - ~>
68
68
  - !ruby/object:Gem::Version
69
- version: 1.1.0
69
+ version: 1.2.1
70
70
  type: :development
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
@@ -74,7 +74,7 @@ dependencies:
74
74
  requirements:
75
75
  - - ~>
76
76
  - !ruby/object:Gem::Version
77
- version: 1.1.0
77
+ version: 1.2.1
78
78
  - !ruby/object:Gem::Dependency
79
79
  name: jeweler
80
80
  requirement: !ruby/object:Gem::Requirement
@@ -184,7 +184,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
184
184
  version: '0'
185
185
  segments:
186
186
  - 0
187
- hash: 2971647915141782582
187
+ hash: 2437457673402321684
188
188
  required_rubygems_version: !ruby/object:Gem::Requirement
189
189
  none: false
190
190
  requirements: