curator 0.8.1 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -45,6 +45,14 @@ module Curator
45
45
  end
46
46
  end
47
47
 
48
+ def find_all(collection_name)
49
+ bucket = _bucket_name(collection_name)
50
+ _records(bucket).inject([]) do |results, (key,value)|
51
+ results << {:key => key, :data => value}
52
+ results
53
+ end
54
+ end
55
+
48
56
  def find_by_key(collection_name, key)
49
57
  bucket = _bucket_name(collection_name)
50
58
  value = _records(bucket).fetch(key, nil)
@@ -7,6 +7,8 @@ module Curator
7
7
  def client
8
8
  return @client if @client
9
9
  config = YAML.load(File.read(Curator.config.mongo_config_file))[Curator.config.environment]
10
+ config = config.symbolize_keys
11
+
10
12
  host = config.delete(:host)
11
13
  port = config.delete(:port)
12
14
  password = config.delete(:password)
@@ -41,6 +43,12 @@ module Curator
41
43
  collection.remove(:_id => id)
42
44
  end
43
45
 
46
+ def find_all(collection_name)
47
+ collection = _collection(collection_name)
48
+ documents = collection.find
49
+ documents.map {|doc| normalize_document(doc) }
50
+ end
51
+
44
52
  def find_by_attribute(collection_name, field, query)
45
53
  return [] if query.nil?
46
54
 
@@ -53,10 +61,20 @@ module Curator
53
61
 
54
62
  def find_by_key(collection_name, id)
55
63
  collection = _collection(collection_name)
56
- document = collection.find_one({:_id => id})
64
+ document = _find_by_key_as_provided(collection, id) || _find_by_key_as_object_id(collection, id)
57
65
  normalize_document(document) unless document.nil?
58
66
  end
59
67
 
68
+ def _find_by_key_as_provided(collection, id)
69
+ collection.find_one(:_id => id)
70
+ end
71
+
72
+ def _find_by_key_as_object_id(collection, id)
73
+ if BSON::ObjectId.legal?(id)
74
+ collection.find_one(:_id => BSON::ObjectId.from_string(id))
75
+ end
76
+ end
77
+
60
78
  def _collection(name)
61
79
  _db.collection(name)
62
80
  end
@@ -8,6 +8,12 @@ module Curator
8
8
  extend ActiveSupport::Concern
9
9
 
10
10
  module ClassMethods
11
+ def all
12
+ data_store.find_all(collection_name).map do |result|
13
+ _deserialize(result[:key], result[:data])
14
+ end
15
+ end
16
+
11
17
  def collection(explicit_collection_name)
12
18
  @collection_name = explicit_collection_name
13
19
  end
@@ -90,7 +96,7 @@ module Curator
90
96
  end
91
97
 
92
98
  def serialize(object)
93
- object.instance_values
99
+ HashWithIndifferentAccess.new(object.instance_values)
94
100
  end
95
101
 
96
102
  def _build_finder_methods(attribute)
@@ -133,7 +139,7 @@ module Curator
133
139
  end
134
140
 
135
141
  def _indexes(object)
136
- index_values = _indexed_fields.map { |field| [field, object.send(field)] }
142
+ index_values = _indexed_fields.map { |field| [field, serialize(object)[field.to_sym]] }
137
143
  index_values += [
138
144
  [:created_at, _format_time_for_index(object.send(:created_at))],
139
145
  [:updated_at, _format_time_for_index(object.send(:updated_at))],
@@ -8,6 +8,7 @@ module Curator::Riak
8
8
 
9
9
  def initialize
10
10
  ::Riak.escaper = CGI
11
+ ::Riak.disable_list_keys_warnings = true
11
12
  end
12
13
 
13
14
  def data_store
@@ -36,6 +36,11 @@ module Curator
36
36
  result.key
37
37
  end
38
38
 
39
+ def find_all(bucket_name)
40
+ bucket = _bucket(bucket_name)
41
+ bucket.keys.map { |key| find_by_key(bucket_name, key) }
42
+ end
43
+
39
44
  def find_by_key(bucket_name, key)
40
45
  bucket = _bucket(bucket_name)
41
46
  begin
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: curator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.9.0
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-06-15 00:00:00.000000000 Z
12
+ date: 2012-10-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -112,15 +112,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
112
112
  - - ! '>='
113
113
  - !ruby/object:Gem::Version
114
114
  version: '0'
115
+ segments:
116
+ - 0
117
+ hash: 1871681440090585484
115
118
  required_rubygems_version: !ruby/object:Gem::Requirement
116
119
  none: false
117
120
  requirements:
118
121
  - - ! '>='
119
122
  - !ruby/object:Gem::Version
120
123
  version: '0'
124
+ segments:
125
+ - 0
126
+ hash: 1871681440090585484
121
127
  requirements: []
122
128
  rubyforge_project:
123
- rubygems_version: 1.8.21
129
+ rubygems_version: 1.8.24
124
130
  signing_key:
125
131
  specification_version: 3
126
132
  summary: Model and repository framework