relishable 0.35 → 0.36
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +16 -23
- data/lib/relish.rb +2 -2
- data/lib/relish/dynamo_helper.rb +46 -7
- data/lib/relish/release.rb +1 -0
- data/lib/relish/s3_helper.rb +1 -1
- data/lib/relish/version.rb +1 -1
- metadata +20 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 46c6330cb5ff0a4a0c359c97b0e94fbde91fc63d
|
4
|
+
data.tar.gz: e56e3e5febebdd0a9263c175dbc159d0b6194733
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 06996c432afb22924a1e3f49735e622a10ed7cf6cb4c171a178797244ded17ea10a67012bf7d500c4e341b4c5be8b1fdbf9dfabb3f0c2b2a998b29b34b8c0b7d
|
7
|
+
data.tar.gz: e57e0635478e91f0fe506e1934e2e234b5d663312f277b53fb3775cf96a39e925cbfe8eb12012059e6bc028604a2ca3a6837ff38ce734b5f81b9e0331b2d4a55
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
relishable (0.
|
5
|
-
fog (~>
|
4
|
+
relishable (0.36)
|
5
|
+
fog-aws (~> 0.8.0)
|
6
6
|
legacy-fernet (~> 1.6.3)
|
7
|
+
net-ssh (~> 3.0.2)
|
7
8
|
|
8
9
|
GEM
|
9
10
|
remote: http://rubygems.org/
|
@@ -14,38 +15,30 @@ GEM
|
|
14
15
|
safe_yaml (~> 1.0.0)
|
15
16
|
diff-lcs (1.2.5)
|
16
17
|
excon (0.45.4)
|
17
|
-
fog (
|
18
|
-
fog-
|
19
|
-
fog-
|
20
|
-
fog-
|
21
|
-
|
22
|
-
|
23
|
-
nokogiri (~> 1.5, >= 1.5.11)
|
24
|
-
fog-brightbox (0.9.0)
|
25
|
-
fog-core (~> 1.22)
|
26
|
-
fog-json
|
27
|
-
inflecto (~> 0.0.2)
|
28
|
-
fog-core (1.33.0)
|
18
|
+
fog-aws (0.8.0)
|
19
|
+
fog-core (~> 1.27)
|
20
|
+
fog-json (~> 1.0)
|
21
|
+
fog-xml (~> 0.1)
|
22
|
+
ipaddress (~> 0.8)
|
23
|
+
fog-core (1.35.0)
|
29
24
|
builder
|
30
25
|
excon (~> 0.45)
|
31
26
|
formatador (~> 0.2)
|
32
|
-
mime-types
|
33
27
|
fog-json (1.0.2)
|
34
28
|
fog-core (~> 1.0)
|
35
29
|
multi_json (~> 1.10)
|
36
|
-
fog-
|
30
|
+
fog-xml (0.1.2)
|
37
31
|
fog-core
|
38
|
-
|
32
|
+
nokogiri (~> 1.5, >= 1.5.11)
|
39
33
|
formatador (0.2.5)
|
40
|
-
|
41
|
-
ipaddress (0.8.0)
|
34
|
+
ipaddress (0.8.2)
|
42
35
|
legacy-fernet (1.6.3)
|
43
36
|
multi_json
|
44
|
-
|
45
|
-
mini_portile (0.6.2)
|
37
|
+
mini_portile2 (2.0.0)
|
46
38
|
multi_json (1.11.2)
|
47
|
-
|
48
|
-
|
39
|
+
net-ssh (3.0.2)
|
40
|
+
nokogiri (1.6.7.1)
|
41
|
+
mini_portile2 (~> 2.0.0.rc2)
|
49
42
|
power_assert (0.2.2)
|
50
43
|
rake (10.4.2)
|
51
44
|
rspec (3.1.0)
|
data/lib/relish.rb
CHANGED
@@ -26,7 +26,7 @@ class Relish
|
|
26
26
|
|
27
27
|
def create(id, data)
|
28
28
|
rescue_dynamodb_error do
|
29
|
-
item = @db.
|
29
|
+
item = @db.query_latest_version(id)
|
30
30
|
Release.new.tap do |release|
|
31
31
|
if item.nil?
|
32
32
|
release.item = {}
|
@@ -76,7 +76,7 @@ class Relish
|
|
76
76
|
end
|
77
77
|
end
|
78
78
|
end
|
79
|
-
|
79
|
+
|
80
80
|
def update(id, version, data)
|
81
81
|
rescue_dynamodb_error do
|
82
82
|
item = @db.get_version(id, version)
|
data/lib/relish/dynamo_helper.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require "fog"
|
1
|
+
require "fog/aws"
|
2
2
|
|
3
3
|
class Relish
|
4
4
|
class DynamoHelper
|
@@ -15,8 +15,34 @@ class Relish
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def query_current_version(id, *attrs)
|
18
|
-
response = db.query(@table_name,
|
19
|
-
|
18
|
+
response = db.query(@table_name,
|
19
|
+
:KeyConditionExpression => 'id = :id AND version > :version',
|
20
|
+
:FilterExpression => 'draft <> :isDraft',
|
21
|
+
:ExpressionAttributeValues => {
|
22
|
+
':id' => {:S => id},
|
23
|
+
':version' => {:N => '0'},
|
24
|
+
':isDraft' => {:BOOL => true}
|
25
|
+
},
|
26
|
+
:ConsistentRead => true,
|
27
|
+
:ScanIndexForward => false)
|
28
|
+
count = response.body['Count'] || 0
|
29
|
+
if count > 0
|
30
|
+
response.body['Items'].first
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def query_latest_version(id, *attrs)
|
35
|
+
response = db.query(@table_name,
|
36
|
+
:KeyConditionExpression => 'id = :id AND version > :version',
|
37
|
+
:ExpressionAttributeValues => {
|
38
|
+
':id' => {:S => id},
|
39
|
+
':version' => {:N => '0'},
|
40
|
+
},
|
41
|
+
:Limit => 1,
|
42
|
+
:ConsistentRead => true,
|
43
|
+
:ScanIndexForward => false)
|
44
|
+
count = response.body['Count'] || 0
|
45
|
+
if count > 0
|
20
46
|
response.body['Items'].first
|
21
47
|
end
|
22
48
|
end
|
@@ -26,16 +52,21 @@ class Relish
|
|
26
52
|
end
|
27
53
|
|
28
54
|
def get_version(id, version, *attrs)
|
29
|
-
response = db.get_item(@table_name, {:
|
55
|
+
response = db.get_item(@table_name, {:id => {:S => id}, :version => {:N => version}}, :ConsistentRead => true)
|
30
56
|
response.body['Item']
|
31
57
|
end
|
32
58
|
|
33
59
|
def delete_version(id, version)
|
34
|
-
db.delete_item(@table_name,
|
60
|
+
db.delete_item(@table_name, id: {:S => id}, :version => {:N => version})
|
35
61
|
end
|
36
62
|
|
37
63
|
def put_version(id, version, item)
|
38
|
-
db.put_item(@table_name, item,
|
64
|
+
db.put_item(@table_name, item,
|
65
|
+
:ConditionExpression => 'id <> :id AND version <> :version',
|
66
|
+
:ExpressionAttributeValues => {
|
67
|
+
':id' => {:S => id},
|
68
|
+
':version' => {:N => version}
|
69
|
+
})
|
39
70
|
end
|
40
71
|
|
41
72
|
def put(item)
|
@@ -43,7 +74,15 @@ class Relish
|
|
43
74
|
end
|
44
75
|
|
45
76
|
def query(id, consistent, limit)
|
46
|
-
response = db.query(@table_name,
|
77
|
+
response = db.query(@table_name,
|
78
|
+
:KeyConditionExpression => 'id = :id AND version > :version',
|
79
|
+
:ExpressionAttributeValues => {
|
80
|
+
':id' => {:S => id},
|
81
|
+
':version' => {:N => '0'}
|
82
|
+
},
|
83
|
+
:ConsistentRead => consistent,
|
84
|
+
:Limit => limit,
|
85
|
+
:ScanIndexForward => false)
|
47
86
|
response.body['Items']
|
48
87
|
end
|
49
88
|
|
data/lib/relish/release.rb
CHANGED
data/lib/relish/s3_helper.rb
CHANGED
data/lib/relish/version.rb
CHANGED
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.36'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Fine
|
@@ -11,22 +11,22 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2016-01-05 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
|
-
name: fog
|
17
|
+
name: fog-aws
|
18
18
|
requirement: !ruby/object:Gem::Requirement
|
19
19
|
requirements:
|
20
20
|
- - "~>"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
22
|
+
version: 0.8.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
29
|
+
version: 0.8.0
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: legacy-fernet
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -41,6 +41,20 @@ dependencies:
|
|
41
41
|
- - "~>"
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: 1.6.3
|
44
|
+
- !ruby/object:Gem::Dependency
|
45
|
+
name: net-ssh
|
46
|
+
requirement: !ruby/object:Gem::Requirement
|
47
|
+
requirements:
|
48
|
+
- - "~>"
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: 3.0.2
|
51
|
+
type: :runtime
|
52
|
+
prerelease: false
|
53
|
+
version_requirements: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - "~>"
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: 3.0.2
|
44
58
|
- !ruby/object:Gem::Dependency
|
45
59
|
name: rake
|
46
60
|
requirement: !ruby/object:Gem::Requirement
|
@@ -139,3 +153,4 @@ signing_key:
|
|
139
153
|
specification_version: 4
|
140
154
|
summary: releases
|
141
155
|
test_files: []
|
156
|
+
has_rdoc:
|