dm-riak-adapter 0.0.3 → 0.0.4

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.
Files changed (3) hide show
  1. data/README.md +12 -6
  2. data/lib/dm-riak-adapter/adapter.rb +71 -1
  3. metadata +5 -5
data/README.md CHANGED
@@ -12,17 +12,17 @@ Install the **dm-riak-adapter** gem:
12
12
 
13
13
  gem install dm-riak-adapter
14
14
 
15
- ## Usage
15
+ ## Synopsis
16
16
 
17
- Require **dm-core** and **dm-riak-adapter**. Tell DataMapper to use the Riak adapter and set a namespace for your app. This namespace will prefix each bucket like `myapp:projects` `myapp:tasks`. You can also skip setting a namespace and the buckets wont have any prefix.
17
+ Require **dm-core** and **dm-riak-adapter**. Tell DataMapper to use the Riak adapter and set a namespace for your app. This namespace will prefix each bucket like `myapp:projects` `myapp:tasks`. Skip setting a namespace and the buckets will have no prefix.
18
18
 
19
19
  require 'dm-core'
20
20
  require 'dm-riak-adapter'
21
21
 
22
22
  DataMapper.setup :default, :adapter => 'riak', :namespace => 'myapp'
23
-
24
- Continue Defining your models and properties as you normally would. Set the serial number as type **Key** to use Riak's server-assigned UUIDs.
25
-
23
+
24
+ Continue defining your models and properties as you normally would. Set a property as type `Key` to use Riak's server-assigned UUIDs.
25
+
26
26
  class Project
27
27
  include DataMapper::Resource
28
28
 
@@ -39,4 +39,10 @@ Continue Defining your models and properties as you normally would. Set the seri
39
39
  property :summary, String
40
40
 
41
41
  belongs_to :project
42
- end
42
+ end
43
+
44
+ ## Resources
45
+
46
+ - [Documentation](http://yardoc.org/docs/mikeric-dm-riak-adapter/DataMapper/Adapters/RiakAdapter)
47
+ - [Metrics](http://getcaliper.com/caliper/project?repo=http://rubygems.org/gems/dm-riak-adapter)
48
+ - [Gems](http://rubygems.org/gems/dm-riak-adapter)
@@ -1,15 +1,52 @@
1
1
  module DataMapper::Adapters
2
2
  class RiakAdapter < AbstractAdapter
3
+ # Initializes a new RiakAdapter instance
4
+ #
5
+ # @param [String, Symbol] name
6
+ # Repository name
7
+ #
8
+ # @param [Hash] options
9
+ # Configuration options
10
+ #
11
+ # @option options [String] :host ('127.0.0.1') Server hostname
12
+ # @option options [Integer] :port (8098) Server port
13
+ # @option options [String] :prefix ('riak') Path prefix to the HTTP endpoint
14
+ # @option options [String] :namespace ('') Bucket namespace
3
15
  def initialize(name, options)
4
16
  super
5
- @riak = Riak::Client.new(:prefix => options[:prefix] || 'riak')
17
+
18
+ @riak = Riak::Client.new(
19
+ :host => options[:host],
20
+ :port => options[:port],
21
+ :prefix => options[:prefix]
22
+ )
6
23
  @namespace = options[:namespace] ? options[:namespace] + ':' : ''
7
24
  end
8
25
 
26
+ # Persists one or many new resources
27
+ #
28
+ # @example
29
+ # adapter.create(collection) # => 1
30
+ #
31
+ # @param [Enumerable<Resource>] resources
32
+ # List of resources (model instances) to create
33
+ #
34
+ # @return [Integer]
35
+ # Number of objects created
9
36
  def create(resources)
10
37
  create_objects(resources)
11
38
  end
12
39
 
40
+ # Reads one or many resources from a datastore
41
+ #
42
+ # @example
43
+ # adapter.read(query) # => [{'title' => 'Lorem Ipsum'}]
44
+ #
45
+ # @param [Query] query
46
+ # Query to match objects in the datastore
47
+ #
48
+ # @return [Enumerable<Hash>]
49
+ # Array of hashes to become resources
13
50
  def read(query)
14
51
  query.filter_records(objects_for(query.model)).each do |object|
15
52
  query.fields.each do |property|
@@ -18,6 +55,19 @@ module DataMapper::Adapters
18
55
  end
19
56
  end
20
57
 
58
+ # Updates one or many existing resources
59
+ #
60
+ # @example
61
+ # adapter.update(attributes, collection) # => 1
62
+ #
63
+ # @param [Hash(Property => Object)] attributes
64
+ # Hash of attribute values to set, keyed by Property
65
+ #
66
+ # @param [Collection] collection
67
+ # Collection of records to be updated
68
+ #
69
+ # @return [Integer]
70
+ # Number of records updated
21
71
  def update(attributes, collection)
22
72
  attributes = attributes_as_fields(attributes)
23
73
 
@@ -25,10 +75,30 @@ module DataMapper::Adapters
25
75
  update_objects(collection)
26
76
  end
27
77
 
78
+ # Deletes one or many existing resources
79
+ #
80
+ # @example
81
+ # adapter.delete(collection) # => 1
82
+ #
83
+ # @param [Collection] collection
84
+ # Collection of records to be deleted
85
+ #
86
+ # @return [Integer]
87
+ # Number of records deleted
28
88
  def delete(collection)
29
89
  delete_objects(collection)
30
90
  end
31
91
 
92
+ # Flushes the bucket for the specified model
93
+ #
94
+ # @example
95
+ # adapter.flush(Post) # => ["6moGsRVfutpG4wzibgwDBKc37Dd"]
96
+ #
97
+ # @param [Class] model
98
+ # Model to flush
99
+ #
100
+ # @return [Array<String>]
101
+ # Keys of the flushed objects
32
102
  def flush(model)
33
103
  bucket(model).keys.each {|key| bucket(model)[key].delete}
34
104
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 3
9
- version: 0.0.3
8
+ - 4
9
+ version: 0.0.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - Mike Richards
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-03-29 00:00:00 -04:00
17
+ date: 2010-04-06 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: "0"
44
44
  type: :runtime
45
45
  version_requirements: *id002
46
- description: DataMapper adapter for Riak
46
+ description: DataMapper Adapter for Riak
47
47
  email: mike22e@gmail.com
48
48
  executables: []
49
49
 
@@ -87,7 +87,7 @@ rubyforge_project:
87
87
  rubygems_version: 1.3.6
88
88
  signing_key:
89
89
  specification_version: 2
90
- summary: DataMapper adapter for Riak
90
+ summary: DataMapper Adapter for Riak
91
91
  test_files:
92
92
  - spec/dm-riak-adapter_spec.rb
93
93
  - spec/spec_helper.rb