hashy_db 0.0.2 → 0.0.3
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/lib/hashy_db/data_model.rb
CHANGED
@@ -48,6 +48,10 @@ module HashyDB
|
|
48
48
|
HashyDB::DataStore.instance.get_one(data_collection, :id, id)
|
49
49
|
end
|
50
50
|
|
51
|
+
def by_field(field, value)
|
52
|
+
DataStore.instance.get_for_key_with_value(data_collection, field, value)
|
53
|
+
end
|
54
|
+
|
51
55
|
def all
|
52
56
|
HashyDB::DataStore.instance.get(data_collection)
|
53
57
|
end
|
data/lib/hashy_db/data_store.rb
CHANGED
@@ -22,6 +22,10 @@ module HashyDB
|
|
22
22
|
get(collection_name).select { |a| a[key] == value }
|
23
23
|
end
|
24
24
|
|
25
|
+
def get_for_key_with_value(collection_name, key, value)
|
26
|
+
get_all_for_key_with_value(collection_name, key, value)[0]
|
27
|
+
end
|
28
|
+
|
25
29
|
def get_by_params(collection_name, hash)
|
26
30
|
get(collection_name).select do |record|
|
27
31
|
hash.all?{|k,v| record[k] == v }
|
data/lib/hashy_db/version.rb
CHANGED
data/spec/lib/data_store_spec.rb
CHANGED
@@ -72,4 +72,8 @@ describe HashyDB::DataStore do
|
|
72
72
|
records.first[:id].should == 1
|
73
73
|
subject.get(:some_collection).size.should == 3
|
74
74
|
end
|
75
|
+
|
76
|
+
it 'can get a record for a specific key and value' do
|
77
|
+
subject.get_for_key_with_value(:some_collection, :field_1, 'value 1').should == data1
|
78
|
+
end
|
75
79
|
end
|
@@ -90,6 +90,16 @@ shared_examples_for 'a data model' do
|
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
|
+
describe "getting a data model by a specific field" do
|
94
|
+
let(:mock_data_model) { mock 'data model in the data store' }
|
95
|
+
|
96
|
+
it 'returns the stored data models' do
|
97
|
+
mock_data_store.should_receive(:get_for_key_with_value).with(collection_name, :field, 'some value').and_return(mock_data_model)
|
98
|
+
|
99
|
+
described_class.by_field(:field, 'some value').should == mock_data_model
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
93
103
|
describe "getting all the data fields by a parameter hash" do
|
94
104
|
let(:mock_data_models) { mock 'some data model'}
|
95
105
|
let(:sample_hash) { {field1: nil, field2: 'not nil' }}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hashy_db
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -14,7 +14,7 @@ date: 2012-02-02 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
17
|
-
requirement: &
|
17
|
+
requirement: &70143401652780 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '3.1'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70143401652780
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: rake
|
28
|
-
requirement: &
|
28
|
+
requirement: &70143401651840 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70143401651840
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: rspec
|
39
|
-
requirement: &
|
39
|
+
requirement: &70143401650920 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,7 +44,7 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70143401650920
|
48
48
|
description: Provides an inteface to store and retrieve data in a Hash.
|
49
49
|
email:
|
50
50
|
- matt@railsgrammer.com
|