kvom 6.8.0.beta.200.621.4c8e1b0 → 6.8.0.beta.200.650.7c93155
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/kvom.rb +13 -3
- data/lib/kvom/adapter.rb +5 -0
- data/lib/kvom/adapter/base.rb +1 -2
- data/lib/kvom/adapter/couchdb_adapter.rb +2 -3
- data/lib/kvom/adapter/couchdb_document.rb +2 -2
- data/lib/kvom/adapter/dynamodb_adapter.rb +2 -3
- data/lib/kvom/adapter/dynamodb_document.rb +1 -1
- data/lib/kvom/base.rb +0 -9
- data/lib/kvom/document.rb +1 -5
- data/lib/kvom/not_found.rb +5 -0
- data/spec/model_identity_spec.rb +0 -2
- data/spec/spec_helper.rb +3 -4
- metadata +18 -20
data/lib/kvom.rb
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
module Kvom
|
2
|
+
# :nodoc:
|
3
|
+
def self.setup_autoload(mod, mod_source)
|
4
|
+
dir = File.expand_path(".", mod_source)[0..-4]
|
5
|
+
pattern = "#{dir}/*.rb"
|
6
|
+
Dir.glob(pattern).each do |file|
|
7
|
+
const = file[dir.length..-4].gsub(%r{[_/](.)}) {$1.upcase}
|
8
|
+
mod.autoload const.to_sym, file
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
setup_autoload(self, __FILE__)
|
13
|
+
end
|
data/lib/kvom/adapter.rb
ADDED
data/lib/kvom/adapter/base.rb
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
require 'couchrest'
|
2
|
-
require 'kvom/adapter/couchdb_document'
|
3
2
|
|
4
3
|
module Kvom; module Adapter
|
5
4
|
|
6
|
-
class CouchdbAdapter <
|
5
|
+
class CouchdbAdapter < Base
|
7
6
|
def new_document(key, attributes)
|
8
7
|
new_document_from_attributes(attributes.merge("_id" => key))
|
9
8
|
end
|
@@ -79,4 +78,4 @@ class CouchdbAdapter < Kvom::Adapter::Base
|
|
79
78
|
|
80
79
|
end
|
81
80
|
|
82
|
-
end
|
81
|
+
end; end # module Kvom::Adapter
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Kvom; module Adapter
|
2
2
|
|
3
|
-
class CouchdbDocument < Document
|
3
|
+
class ::CouchdbDocument < Kvom::Document
|
4
4
|
attr_accessor :couchrest_document
|
5
5
|
|
6
6
|
def initialize(couchrest_document)
|
@@ -20,4 +20,4 @@ class CouchdbDocument < Document
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
end
|
23
|
+
end; end # module Kvom
|
@@ -1,9 +1,8 @@
|
|
1
1
|
require 'aws-sdk'
|
2
|
-
require 'kvom/adapter/dynamodb_document'
|
3
2
|
|
4
3
|
module Kvom; module Adapter
|
5
4
|
|
6
|
-
class DynamodbAdapter <
|
5
|
+
class DynamodbAdapter < Base
|
7
6
|
def new_document(key, attributes = nil)
|
8
7
|
DynamodbDocument.new_document(attributes, key, item_for_key(key))
|
9
8
|
end
|
@@ -113,4 +112,4 @@ class DynamodbAdapter < Kvom::Adapter::Base
|
|
113
112
|
|
114
113
|
end
|
115
114
|
|
116
|
-
end
|
115
|
+
end; end # module Kvom::Adapter
|
data/lib/kvom/base.rb
CHANGED
@@ -4,16 +4,8 @@ require 'active_support/core_ext/class/attribute'
|
|
4
4
|
require 'active_model/naming'
|
5
5
|
require 'securerandom'
|
6
6
|
|
7
|
-
require 'kvom/model_identity'
|
8
|
-
|
9
7
|
module Kvom
|
10
8
|
|
11
|
-
class NotFound < ::StandardError
|
12
|
-
def self.for_key(key)
|
13
|
-
new(%(document with key "#{key}" not found))
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
9
|
class Base
|
18
10
|
include ModelIdentity
|
19
11
|
extend ActiveModel::Naming
|
@@ -113,4 +105,3 @@ class Base
|
|
113
105
|
end
|
114
106
|
|
115
107
|
end # module Kvom
|
116
|
-
|
data/lib/kvom/document.rb
CHANGED
data/spec/model_identity_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -9,16 +9,15 @@ class TestModel < Kvom::Base
|
|
9
9
|
@adapter ||=
|
10
10
|
case (type = ENV['KVOM_ADAPTER_TYPE'] || "couch")
|
11
11
|
when "couch"
|
12
|
-
require "kvom/adapter/couchdb_adapter"
|
13
12
|
require 'multi_json'
|
14
13
|
MultiJson.engine = :yajl
|
15
14
|
database_name = "kvom-unit_tests"
|
16
|
-
|
17
|
-
Kvom::Adapter::CouchdbAdapter.new({
|
15
|
+
adapter = Kvom::Adapter::CouchdbAdapter.new({
|
18
16
|
:url => database_name,
|
19
17
|
})
|
18
|
+
CouchRest.database!(database_name)
|
19
|
+
adapter
|
20
20
|
when /dynamo/
|
21
|
-
require "kvom/adapter/dynamodb_adapter"
|
22
21
|
require File.expand_path("../../../tasks/support/local_config", __FILE__)
|
23
22
|
options = {
|
24
23
|
:table => "test-kvom",
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kvom
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 6553831203
|
5
5
|
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 6
|
@@ -9,15 +9,11 @@ version: !ruby/object:Gem::Version
|
|
9
9
|
- 0
|
10
10
|
- beta
|
11
11
|
- 200
|
12
|
-
-
|
13
|
-
-
|
12
|
+
- 650
|
13
|
+
- 7
|
14
14
|
- c
|
15
|
-
-
|
16
|
-
|
17
|
-
- 1
|
18
|
-
- b
|
19
|
-
- 0
|
20
|
-
version: 6.8.0.beta.200.621.4c8e1b0
|
15
|
+
- 93155
|
16
|
+
version: 6.8.0.beta.200.650.7c93155
|
21
17
|
platform: ruby
|
22
18
|
authors:
|
23
19
|
- Kristian Hanekamp, Infopark AG
|
@@ -25,7 +21,7 @@ autorequire:
|
|
25
21
|
bindir: bin
|
26
22
|
cert_chain: []
|
27
23
|
|
28
|
-
date: 2012-
|
24
|
+
date: 2012-06-01 00:00:00 +02:00
|
29
25
|
default_executable:
|
30
26
|
dependencies:
|
31
27
|
- !ruby/object:Gem::Dependency
|
@@ -38,10 +34,10 @@ dependencies:
|
|
38
34
|
segments:
|
39
35
|
- 0
|
40
36
|
version: "0"
|
37
|
+
version_requirements: *id001
|
38
|
+
name: rspec
|
41
39
|
prerelease: false
|
42
40
|
type: :development
|
43
|
-
name: rspec
|
44
|
-
version_requirements: *id001
|
45
41
|
- !ruby/object:Gem::Dependency
|
46
42
|
requirement: &id002 !ruby/object:Gem::Requirement
|
47
43
|
none: false
|
@@ -52,10 +48,10 @@ dependencies:
|
|
52
48
|
segments:
|
53
49
|
- 0
|
54
50
|
version: "0"
|
51
|
+
version_requirements: *id002
|
52
|
+
name: helpful_configuration
|
55
53
|
prerelease: false
|
56
54
|
type: :development
|
57
|
-
name: helpful_configuration
|
58
|
-
version_requirements: *id002
|
59
55
|
- !ruby/object:Gem::Dependency
|
60
56
|
requirement: &id003 !ruby/object:Gem::Requirement
|
61
57
|
none: false
|
@@ -66,10 +62,10 @@ dependencies:
|
|
66
62
|
segments:
|
67
63
|
- 0
|
68
64
|
version: "0"
|
65
|
+
version_requirements: *id003
|
66
|
+
name: couchrest
|
69
67
|
prerelease: false
|
70
68
|
type: :runtime
|
71
|
-
name: couchrest
|
72
|
-
version_requirements: *id003
|
73
69
|
- !ruby/object:Gem::Dependency
|
74
70
|
requirement: &id004 !ruby/object:Gem::Requirement
|
75
71
|
none: false
|
@@ -80,10 +76,10 @@ dependencies:
|
|
80
76
|
segments:
|
81
77
|
- 0
|
82
78
|
version: "0"
|
79
|
+
version_requirements: *id004
|
80
|
+
name: activemodel
|
83
81
|
prerelease: false
|
84
82
|
type: :runtime
|
85
|
-
name: activemodel
|
86
|
-
version_requirements: *id004
|
87
83
|
- !ruby/object:Gem::Dependency
|
88
84
|
requirement: &id005 !ruby/object:Gem::Requirement
|
89
85
|
none: false
|
@@ -94,10 +90,10 @@ dependencies:
|
|
94
90
|
segments:
|
95
91
|
- 0
|
96
92
|
version: "0"
|
93
|
+
version_requirements: *id005
|
94
|
+
name: aws-sdk
|
97
95
|
prerelease: false
|
98
96
|
type: :runtime
|
99
|
-
name: aws-sdk
|
100
|
-
version_requirements: *id005
|
101
97
|
description: Use it to build object models in ruby on top of a key value store.
|
102
98
|
email:
|
103
99
|
- kristian.hanekamp@infopark.de
|
@@ -113,6 +109,7 @@ files:
|
|
113
109
|
- Rakefile
|
114
110
|
- kvom.gemspec
|
115
111
|
- lib/kvom.rb
|
112
|
+
- lib/kvom/adapter.rb
|
116
113
|
- lib/kvom/adapter/base.rb
|
117
114
|
- lib/kvom/adapter/couchdb_adapter.rb
|
118
115
|
- lib/kvom/adapter/couchdb_document.rb
|
@@ -121,6 +118,7 @@ files:
|
|
121
118
|
- lib/kvom/base.rb
|
122
119
|
- lib/kvom/document.rb
|
123
120
|
- lib/kvom/model_identity.rb
|
121
|
+
- lib/kvom/not_found.rb
|
124
122
|
- spec/base_spec.rb
|
125
123
|
- spec/counter_spec.rb
|
126
124
|
- spec/model_identity_spec.rb
|