doeskeyvalue 0.9.0 → 0.9.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.
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: