active_store 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +0 -1
- data/Gemfile +0 -3
- data/Gemfile.lock +33 -0
- data/active_store.gemspec +0 -1
- data/lib/active_store/base.rb +6 -8
- data/lib/active_store/version.rb +1 -1
- data/spec/lib/active_store/base_spec.rb +7 -7
- metadata +2 -12
data/Gemfile
CHANGED
data/Gemfile.lock
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
active_store (0.0.4)
|
5
|
+
dalli
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: http://rubygems.org/
|
9
|
+
specs:
|
10
|
+
dalli (1.1.5)
|
11
|
+
diff-lcs (1.1.3)
|
12
|
+
json (1.5.0-java)
|
13
|
+
json-jruby (1.5.0-java)
|
14
|
+
json (= 1.5.0)
|
15
|
+
rake (0.9.2.2)
|
16
|
+
rspec (2.9.0)
|
17
|
+
rspec-core (~> 2.9.0)
|
18
|
+
rspec-expectations (~> 2.9.0)
|
19
|
+
rspec-mocks (~> 2.9.0)
|
20
|
+
rspec-core (2.9.0)
|
21
|
+
rspec-expectations (2.9.0)
|
22
|
+
diff-lcs (~> 1.1.3)
|
23
|
+
rspec-mocks (2.9.0)
|
24
|
+
|
25
|
+
PLATFORMS
|
26
|
+
java
|
27
|
+
ruby
|
28
|
+
|
29
|
+
DEPENDENCIES
|
30
|
+
active_store!
|
31
|
+
json-jruby
|
32
|
+
rake
|
33
|
+
rspec
|
data/active_store.gemspec
CHANGED
data/lib/active_store/base.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'active_support/core_ext/hash/indifferent_access'
|
2
|
-
|
3
1
|
module ActiveStore
|
4
2
|
class Base
|
5
3
|
|
@@ -9,19 +7,19 @@ module ActiveStore
|
|
9
7
|
end
|
10
8
|
|
11
9
|
def ==(another_object)
|
12
|
-
(self.class.attributes - [
|
10
|
+
(self.class.attributes - ["created_at"]).all? do |attribute|
|
13
11
|
self.send(attribute) == another_object.send(attribute)
|
14
12
|
end
|
15
13
|
end
|
16
14
|
|
17
15
|
def attributes
|
18
|
-
self.class.attributes.inject(
|
16
|
+
self.class.attributes.inject({}) do |accu, attribute|
|
19
17
|
send(attribute).nil? ? accu : accu.merge({attribute => send(attribute)})
|
20
18
|
end
|
21
19
|
end
|
22
20
|
|
23
21
|
def set_attributes(params = {})
|
24
|
-
params = params.
|
22
|
+
params = Hash[ params.map {|key, value| [key.to_s, value]} ]
|
25
23
|
self.class.attributes.each do |attribute|
|
26
24
|
write_attribute(attribute, params[attribute])
|
27
25
|
end
|
@@ -74,8 +72,8 @@ module ActiveStore
|
|
74
72
|
|
75
73
|
def define_attributes(*args)
|
76
74
|
@attributes ||= []
|
77
|
-
@attributes += args
|
78
|
-
@attributes |= [
|
75
|
+
@attributes += args.map(&:to_s)
|
76
|
+
@attributes |= ["id", "created_at"]
|
79
77
|
attr_accessor *@attributes
|
80
78
|
end
|
81
79
|
|
@@ -128,7 +126,7 @@ module ActiveStore
|
|
128
126
|
|
129
127
|
def create_with_block(id, ttl = default_ttl, &block)
|
130
128
|
block = attributes_block_wrapper(&block)
|
131
|
-
connection.add(id, block.call({
|
129
|
+
connection.add(id, block.call({"id" => id}), ttl)
|
132
130
|
end
|
133
131
|
|
134
132
|
def find(id)
|
data/lib/active_store/version.rb
CHANGED
@@ -54,7 +54,7 @@ describe ActiveStore::Base do
|
|
54
54
|
end
|
55
55
|
|
56
56
|
it "lists attibute names" do
|
57
|
-
ItemStore.attributes.should include
|
57
|
+
ItemStore.attributes.should include "a1", "a2"
|
58
58
|
end
|
59
59
|
|
60
60
|
it "provides accessors for its attributes" do
|
@@ -66,7 +66,7 @@ describe ActiveStore::Base do
|
|
66
66
|
|
67
67
|
describe ".define_attributes" do
|
68
68
|
it "should add id and created_at in attributes" do
|
69
|
-
ItemStore.attributes.should include
|
69
|
+
ItemStore.attributes.should include "id", "created_at"
|
70
70
|
end
|
71
71
|
it "should add id and created_at in its instance accessors" do
|
72
72
|
ItemStore.new.methods.map(&:to_sym).should include :id, :id=, :created_at, :created_at=
|
@@ -77,14 +77,14 @@ describe ActiveStore::Base do
|
|
77
77
|
it "initializes given attributes" do
|
78
78
|
params = { :a1 => "one", :a2 => "two" }
|
79
79
|
item = ItemStore.new params
|
80
|
-
item.attributes[
|
81
|
-
item.attributes[
|
80
|
+
item.attributes["a1"].should == params[:a1]
|
81
|
+
item.attributes["a2"].should == params[:a2]
|
82
82
|
end
|
83
83
|
it "initializes attributes even when the params keys are strings" do
|
84
84
|
params = { "a1" => "one", "a2" => "two" }
|
85
85
|
item = ItemStore.new params
|
86
|
-
item.attributes[
|
87
|
-
item.attributes[
|
86
|
+
item.attributes["a1"].should == params["a1"]
|
87
|
+
item.attributes["a2"].should == params["a2"]
|
88
88
|
end
|
89
89
|
it "doesn't require attributes" do
|
90
90
|
ItemStore.new.a1.should be_nil
|
@@ -97,7 +97,7 @@ describe ActiveStore::Base do
|
|
97
97
|
end
|
98
98
|
it "can set attribute to false" do
|
99
99
|
item = ItemStore.new "a1" => false
|
100
|
-
item.attributes[
|
100
|
+
item.attributes["a1"].should == false
|
101
101
|
end
|
102
102
|
end
|
103
103
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: active_store
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.4
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Petter Remen
|
@@ -46,17 +46,6 @@ dependencies:
|
|
46
46
|
version: "0"
|
47
47
|
type: :runtime
|
48
48
|
version_requirements: *id003
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: activesupport
|
51
|
-
prerelease: false
|
52
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
53
|
-
none: false
|
54
|
-
requirements:
|
55
|
-
- - ">="
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version: "0"
|
58
|
-
type: :runtime
|
59
|
-
version_requirements: *id004
|
60
49
|
description: ""
|
61
50
|
email:
|
62
51
|
- petter@icehouse.se
|
@@ -72,6 +61,7 @@ files:
|
|
72
61
|
- .rspec
|
73
62
|
- .rvmrc
|
74
63
|
- Gemfile
|
64
|
+
- Gemfile.lock
|
75
65
|
- README
|
76
66
|
- Rakefile
|
77
67
|
- active_store.gemspec
|