dynamo-local-ruby 0.2.3 → 0.3.1
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 +4 -4
- data/.travis.yml +8 -0
- data/README.md +3 -1
- data/Rakefile +21 -11
- data/dynamo-local-ruby.gemspec +1 -1
- data/lib/dynamo-local-ruby/dynamo_db_local.rb +14 -5
- data/lib/dynamo-local-ruby/version.rb +1 -1
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b154f9e8708a07ad5a067f5c4eedc7ae8dc7c84
|
4
|
+
data.tar.gz: df4c695a536266210fb13f6bb1a0990248e93c89
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf815898e00d5f88daa7463b99420f543251a7940c3d7779e7c3fa1d139eb3b3ede61282897c55c5175b6b43c2eafb16fdbe8cef5e1dec43fc9279775a6f86cd
|
7
|
+
data.tar.gz: a69640280a26cf8dee3970ffa57ba539ea468c4d999d2515a287878971e193363d444e80568bdc8b6be18ea247b559c9c39f2388eeb79952613cd3a938b2c1e9
|
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
Ruby wrapper around DynamoLocal to enable easier testing of your Ruby code that uses Dynamo.
|
4
4
|
|
5
|
+

|
6
|
+
|
5
7
|
## Installation
|
6
8
|
|
7
9
|
Add this line to your application's Gemfile:
|
@@ -22,7 +24,7 @@ Or install it yourself as:
|
|
22
24
|
|
23
25
|
In your application code, initialize Dynamo clients with
|
24
26
|
|
25
|
-
Aws::DynamoDB::Client.new(endpoint: DynamoLocalRuby::DynamoDBLocal
|
27
|
+
Aws::DynamoDB::Client.new(endpoint: DynamoLocalRuby::DynamoDBLocal.endpoint)
|
26
28
|
|
27
29
|
Before the test suite starts (for instance in RSpec's `config.before(:suite)`).
|
28
30
|
|
data/Rakefile
CHANGED
@@ -4,18 +4,28 @@ require 'rubocop/rake_task'
|
|
4
4
|
|
5
5
|
RuboCop::RakeTask.new
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
`
|
16
|
-
|
7
|
+
dynamodb_local_path = File.expand_path('../lib/jars/dynamodb_local', __FILE__)
|
8
|
+
dynamodb_local_tgz = 'dynamodb_local_latest.tar.gz'
|
9
|
+
dynamodb_local_source_pkg = File.join(dynamodb_local_path, dynamodb_local_tgz)
|
10
|
+
|
11
|
+
directory dynamodb_local_path
|
12
|
+
|
13
|
+
file dynamodb_local_source_pkg => dynamodb_local_path do |task|
|
14
|
+
s3_url = 'http://dynamodb-local.s3-website-us-west-2.amazonaws.com'
|
15
|
+
`wget #{s3_url}/#{dynamodb_local_tgz} -O #{task.name}`
|
16
|
+
end
|
17
|
+
|
18
|
+
task unpack_source_pkg: [
|
19
|
+
dynamodb_local_source_pkg,
|
20
|
+
dynamodb_local_path
|
21
|
+
] do |task|
|
22
|
+
`tar xzf #{task.source} -C #{task.sources.last}`
|
23
|
+
end
|
24
|
+
|
25
|
+
task remove_source_pkg: dynamodb_local_source_pkg do |task|
|
26
|
+
rm task.source
|
17
27
|
end
|
18
28
|
|
19
29
|
task default: :rubocop
|
20
30
|
|
21
|
-
task build: :
|
31
|
+
task build: [:unpack_source_pkg, :remove_source_pkg]
|
data/dynamo-local-ruby.gemspec
CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.homepage = 'https://github.com/peakxu/dynamo-local-ruby'
|
14
14
|
spec.license = 'MIT'
|
15
15
|
|
16
|
-
spec.files = `git ls-files -z`.split("\x0") + Dir
|
16
|
+
spec.files = `git ls-files -z`.split("\x0") + Dir['lib/jars/**/*']
|
17
17
|
spec.executables = spec.files.grep(/^bin/) { |f| File.basename(f) }
|
18
18
|
spec.test_files = spec.files.grep(/^(test|spec|features)/)
|
19
19
|
spec.require_paths = ['lib']
|
@@ -4,20 +4,23 @@ module DynamoLocalRuby
|
|
4
4
|
# Wrapper around Dynamo DB local process
|
5
5
|
class DynamoDBLocal
|
6
6
|
PORT = 9389
|
7
|
-
ENDPOINT = "http://localhost:#{PORT}"
|
8
7
|
|
9
8
|
def initialize(pid)
|
10
9
|
@pid = pid
|
11
10
|
end
|
12
11
|
|
13
12
|
class << self
|
14
|
-
def
|
13
|
+
def endpoint(port = PORT)
|
14
|
+
"http://localhost:#{port}"
|
15
|
+
end
|
16
|
+
|
17
|
+
def up(port = PORT)
|
15
18
|
local_path = File.expand_path('../../../lib/jars/dynamodb_local',
|
16
19
|
__FILE__)
|
17
20
|
lib_path = File.join(local_path, 'DynamoDBLocal_lib')
|
18
21
|
jar_path = File.join(local_path, 'DynamoDBLocal.jar')
|
19
22
|
pid = spawn("java -Djava.library.path=#{lib_path} -jar #{jar_path} "\
|
20
|
-
"-sharedDb -inMemory -port #{
|
23
|
+
"-sharedDb -inMemory -port #{port}")
|
21
24
|
@instance = DynamoDBLocal.new(pid)
|
22
25
|
|
23
26
|
@instance
|
@@ -28,11 +31,17 @@ module DynamoLocalRuby
|
|
28
31
|
end
|
29
32
|
end
|
30
33
|
|
34
|
+
# rubocop:disable HandleExceptions
|
31
35
|
def down
|
32
36
|
return unless @pid
|
33
|
-
|
34
|
-
|
37
|
+
begin
|
38
|
+
Process.kill('SIGINT', @pid)
|
39
|
+
Process.waitpid2(@pid)
|
40
|
+
rescue Errno::ECHILD, Errno::ESRCH
|
41
|
+
# child process is dead
|
42
|
+
end
|
35
43
|
@pid = nil
|
36
44
|
end
|
45
|
+
# rubocop:enable HandleExceptions
|
37
46
|
end
|
38
47
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dynamo-local-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peak Xu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-11-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -75,6 +75,7 @@ extra_rdoc_files: []
|
|
75
75
|
files:
|
76
76
|
- ".gitignore"
|
77
77
|
- ".rubocop.yml"
|
78
|
+
- ".travis.yml"
|
78
79
|
- Gemfile
|
79
80
|
- LICENSE.txt
|
80
81
|
- README.md
|
@@ -86,12 +87,12 @@ files:
|
|
86
87
|
- lib/dynamo-local-ruby/version.rb
|
87
88
|
- lib/jars/dynamodb_local/DynamoDBLocal.jar
|
88
89
|
- lib/jars/dynamodb_local/DynamoDBLocal_lib/antlr-runtime-4.1.jar
|
89
|
-
- lib/jars/dynamodb_local/DynamoDBLocal_lib/aws-java-sdk-1.
|
90
|
+
- lib/jars/dynamodb_local/DynamoDBLocal_lib/aws-java-sdk-1.10.5.1.jar
|
90
91
|
- lib/jars/dynamodb_local/DynamoDBLocal_lib/commons-cli-1.2.jar
|
91
92
|
- lib/jars/dynamodb_local/DynamoDBLocal_lib/commons-lang3-3.x.jar
|
92
|
-
- lib/jars/dynamodb_local/DynamoDBLocal_lib/jackson-annotations-2.
|
93
|
-
- lib/jars/dynamodb_local/DynamoDBLocal_lib/jackson-core-2.
|
94
|
-
- lib/jars/dynamodb_local/DynamoDBLocal_lib/jackson-databind-2.
|
93
|
+
- lib/jars/dynamodb_local/DynamoDBLocal_lib/jackson-annotations-2.5.x.jar
|
94
|
+
- lib/jars/dynamodb_local/DynamoDBLocal_lib/jackson-core-2.5.x.jar
|
95
|
+
- lib/jars/dynamodb_local/DynamoDBLocal_lib/jackson-databind-2.5.x.jar
|
95
96
|
- lib/jars/dynamodb_local/DynamoDBLocal_lib/jetty-ajp-8.1.12.v20130726.jar
|
96
97
|
- lib/jars/dynamodb_local/DynamoDBLocal_lib/jetty-annotations-8.1.12.v20130726.jar
|
97
98
|
- lib/jars/dynamodb_local/DynamoDBLocal_lib/jetty-client-8.1.12.v20130726.jar
|