relishable 0.35 → 0.36

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8bf410339f64a0e2526441a2717017414062e45d
4
- data.tar.gz: f7f11bf1ac673c8a73de78967a1152c86c358ab1
3
+ metadata.gz: 46c6330cb5ff0a4a0c359c97b0e94fbde91fc63d
4
+ data.tar.gz: e56e3e5febebdd0a9263c175dbc159d0b6194733
5
5
  SHA512:
6
- metadata.gz: 9a3dd84d20f1bed8e335ddf3999569dc005e7a8a05ba015d6b28f51326ee5431a7aa53589c753889e867f457a8feac0e620181bf508f7d97dff406916571f310
7
- data.tar.gz: c0e8e81b5bf9b9555c75640db400b5888e768cbbabaa4af24cae118b69cd1a9d180428a6f33a1266cdfec418235433389634e297a4743c8d13eeb5c40510fc19
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.35)
5
- fog (~> 1.23.0)
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 (1.23.0)
18
- fog-brightbox
19
- fog-core (~> 1.23)
20
- fog-json
21
- fog-softlayer
22
- ipaddress (~> 0.5)
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-softlayer (1.0.2)
30
+ fog-xml (0.1.2)
37
31
  fog-core
38
- fog-json
32
+ nokogiri (~> 1.5, >= 1.5.11)
39
33
  formatador (0.2.5)
40
- inflecto (0.0.2)
41
- ipaddress (0.8.0)
34
+ ipaddress (0.8.2)
42
35
  legacy-fernet (1.6.3)
43
36
  multi_json
44
- mime-types (2.6.2)
45
- mini_portile (0.6.2)
37
+ mini_portile2 (2.0.0)
46
38
  multi_json (1.11.2)
47
- nokogiri (1.6.6.2)
48
- mini_portile (~> 0.6.0)
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.query_current_version(id)
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)
@@ -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, {:S => id}, :ConsistentRead => true, :Limit => 1, :ScanIndexForward => false)
19
- if response.body['Count'] == 1
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, {:HashKeyElement => {:S => id}, :RangeKeyElement => {:N => version}}, :ConsistentRead => true)
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, {:HashKeyElement => {:S => id}, :RangeKeyElement => {:N => version}})
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, {:Expected => {:id => {:Value => {:S => id}}, :version => {:Value => {:N => version}}}})
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, {:S => id}, :ConsistentRead => consistent, :Limit => limit, :ScanIndexForward => false)
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
 
@@ -14,6 +14,7 @@ class Relish
14
14
  :version => :N,
15
15
  :name => :S,
16
16
  :descr => :S,
17
+ :draft => :BOOL,
17
18
  :user_id => :N,
18
19
  :route_id => :S,
19
20
  :slug_uuid => :S,
@@ -1,4 +1,4 @@
1
- require "fog"
1
+ require "fog/aws"
2
2
 
3
3
  class Relish
4
4
  class S3Helper
@@ -1,5 +1,5 @@
1
1
  class Relish
2
- VERSION = "0.35"
2
+ VERSION = "0.36"
3
3
  end
4
4
 
5
5
 
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.35'
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: 2015-12-21 00:00:00.000000000 Z
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: 1.23.0
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: 1.23.0
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: