relishable 0.3 → 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.
- data/lib/relish.rb +26 -27
- metadata +2 -2
data/lib/relish.rb
CHANGED
@@ -8,13 +8,12 @@ class Relish
|
|
8
8
|
|
9
9
|
def self.conf(*attrs)
|
10
10
|
attrs.each do |attr|
|
11
|
-
instance_eval "def #{attr}; @#{attr}
|
11
|
+
instance_eval "def #{attr}; @#{attr} end", __FILE__, __LINE__
|
12
|
+
instance_eval "def #{attr}= value; @#{attr} = value end", __FILE__, __LINE__
|
12
13
|
end
|
13
14
|
end
|
14
15
|
|
15
|
-
conf :
|
16
|
-
:relish_aws_secret_key,
|
17
|
-
:relish_table_name
|
16
|
+
conf :aws_access_key, :aws_secret_key, :table_name
|
18
17
|
|
19
18
|
def self.schema(attrs)
|
20
19
|
attrs.each do |attr, type|
|
@@ -23,24 +22,24 @@ class Relish
|
|
23
22
|
end
|
24
23
|
end
|
25
24
|
|
26
|
-
schema id
|
27
|
-
version
|
28
|
-
descr
|
29
|
-
user_id
|
30
|
-
slug_id
|
31
|
-
slug_version
|
32
|
-
stack
|
33
|
-
language_pack
|
34
|
-
env_json
|
35
|
-
pstable_json
|
36
|
-
addons_json
|
25
|
+
schema :id => :S,
|
26
|
+
:version => :N,
|
27
|
+
:descr => :S,
|
28
|
+
:user_id => :N,
|
29
|
+
:slug_id => :S,
|
30
|
+
:slug_version => :N,
|
31
|
+
:stack => :S,
|
32
|
+
:language_pack => :S,
|
33
|
+
:env_json => :S,
|
34
|
+
:pstable_json => :S,
|
35
|
+
:addons_json => :S
|
37
36
|
|
38
37
|
def self.db
|
39
|
-
@db ||= Fog::AWS::DynamoDB.new(aws_access_key_id
|
38
|
+
@db ||= Fog::AWS::DynamoDB.new(:aws_access_key_id => aws_access_key, :aws_secret_access_key => aws_secret_key)
|
40
39
|
end
|
41
40
|
|
42
41
|
def self.db_query_current_version(id)
|
43
|
-
response = db.query(
|
42
|
+
response = db.query(table_name, {:S => id}, :ConsistentRead => true, :Limit => 1, :ScanIndexForward => false)
|
44
43
|
if response.status != 200
|
45
44
|
raise('status: #{response.status}')
|
46
45
|
end
|
@@ -50,14 +49,14 @@ class Relish
|
|
50
49
|
end
|
51
50
|
|
52
51
|
def self.db_put_current_version(items)
|
53
|
-
response = db.put_item(
|
52
|
+
response = db.put_item(table_name, items, {:Expected => {:id => {:Exists => false}, :version => {:Exists => false}}})
|
54
53
|
if response.status != 200
|
55
54
|
raise('status: #{response.status}')
|
56
55
|
end
|
57
56
|
end
|
58
57
|
|
59
58
|
def self.db_get_version(id, version)
|
60
|
-
response = db.get_item(
|
59
|
+
response = db.get_item(table_name, {:HashKeyElement => {:S => id}, :RangeKeyElement => {:N => version}})
|
61
60
|
if response.status != 200
|
62
61
|
raise('status: #{response.status}')
|
63
62
|
end
|
@@ -65,21 +64,21 @@ class Relish
|
|
65
64
|
end
|
66
65
|
|
67
66
|
def self.db_put_version(id, version, items)
|
68
|
-
response = db.put_item(
|
67
|
+
response = db.put_item(table_name, items, {:Expected => {:id => {:Value => {:S => id}}, :version => {:Value => {:N => version}}}})
|
69
68
|
if response.status != 200
|
70
69
|
raise('status: #{response.status}')
|
71
70
|
end
|
72
71
|
end
|
73
72
|
|
74
73
|
def self.db_put(items)
|
75
|
-
response = db.put_item(
|
74
|
+
response = db.put_item(table_name, items)
|
76
75
|
if response.status != 200
|
77
76
|
raise('status: #{response.status}')
|
78
77
|
end
|
79
78
|
end
|
80
79
|
|
81
80
|
def self.copy(id, version, data)
|
82
|
-
pdfm __FILE__, __method__, id
|
81
|
+
pdfm __FILE__, __method__, :id => id, :version => version
|
83
82
|
release = new
|
84
83
|
release.items = {}
|
85
84
|
release.id = id
|
@@ -92,7 +91,7 @@ class Relish
|
|
92
91
|
end
|
93
92
|
|
94
93
|
def self.create(id, data)
|
95
|
-
pdfm __FILE__, __method__, id
|
94
|
+
pdfm __FILE__, __method__, :id => id
|
96
95
|
items = db_query_current_version(id)
|
97
96
|
release = new
|
98
97
|
if items.nil?
|
@@ -111,7 +110,7 @@ class Relish
|
|
111
110
|
end
|
112
111
|
|
113
112
|
def self.current(id)
|
114
|
-
pdfm __FILE__, __method__, id
|
113
|
+
pdfm __FILE__, __method__, :id => id
|
115
114
|
items = db_query_current_version(id)
|
116
115
|
unless items.nil?
|
117
116
|
release = new
|
@@ -121,7 +120,7 @@ class Relish
|
|
121
120
|
end
|
122
121
|
|
123
122
|
def self.read(id, version)
|
124
|
-
pdfm __FILE__, __method__, id
|
123
|
+
pdfm __FILE__, __method__, :id => id, :version => version
|
125
124
|
items = db_get_version(id, version)
|
126
125
|
unless items.nil?
|
127
126
|
release = new
|
@@ -131,11 +130,11 @@ class Relish
|
|
131
130
|
end
|
132
131
|
|
133
132
|
def self.dump(id)
|
134
|
-
pdfm __FILE__, __method__, id
|
133
|
+
pdfm __FILE__, __method__, :id => id
|
135
134
|
end
|
136
135
|
|
137
136
|
def self.update(id, version, data)
|
138
|
-
pdfm __FILE__, __method__, id
|
137
|
+
pdfm __FILE__, __method__, :id => id, :version => version
|
139
138
|
items = db_get_version(id, version)
|
140
139
|
unless items.nil?
|
141
140
|
release = new
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: relishable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.4'
|
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-10-
|
12
|
+
date: 2012-10-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: press
|