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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8ff0dea67352a108d24b8c60217f71e6b9c2f033
4
- data.tar.gz: d408f0021712ad03269083e3d7f2f2a498ff8186
3
+ metadata.gz: 5b154f9e8708a07ad5a067f5c4eedc7ae8dc7c84
4
+ data.tar.gz: df4c695a536266210fb13f6bb1a0990248e93c89
5
5
  SHA512:
6
- metadata.gz: 5684f947ace89339876e05e372b59c51e2cc1495a4abec07b391ccfc6c5c5a91ca8bc8eafd156406eccf716e519bf88f3cbb5da69c7a26beaba0c97961657fa8
7
- data.tar.gz: fd72e485d6ccfda23c2e12e593fe728461a8c7cc754aeacf8106b2d7a292ccce3e72dd8657df2a9f90efd3c1c87e0195cc777acc5a11627b236186e7f608ef3c
6
+ metadata.gz: bf815898e00d5f88daa7463b99420f543251a7940c3d7779e7c3fa1d139eb3b3ede61282897c55c5175b6b43c2eafb16fdbe8cef5e1dec43fc9279775a6f86cd
7
+ data.tar.gz: a69640280a26cf8dee3970ffa57ba539ea468c4d999d2515a287878971e193363d444e80568bdc8b6be18ea247b559c9c39f2388eeb79952613cd3a938b2c1e9
@@ -0,0 +1,8 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 1.9.3
5
+ - 2.0
6
+ - 2.1
7
+ - 2.2
8
+ script: bundle exec rake
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
+ ![](https://travis-ci.org/swipely/dynamo-local-ruby.svg?branch=master)
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::ENDPOINT)
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
- task :download_dynamodb_local do
8
- local_path = File.expand_path('../lib/jars/dynamodb_local', __FILE__)
9
- `mkdir -p #{local_path}`
10
- return if File.exist?(File.join(local_path, 'DynamoDBLocal.jar'))
11
- latest = File.join(local_path, 'dynamodb_local_latest.tar.gz')
12
- LATEST_WEB_TGZ = 'http://dynamodb-local.s3-website-us-west-2.amazonaws.com'\
13
- '/dynamodb_local_latest.tar.gz'
14
- `wget #{LATEST_WEB_TGZ} -O #{latest}` unless File.exist?(latest)
15
- `tar xzf #{latest} -C #{local_path}`
16
- `rm #{latest}`
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: :download_dynamodb_local
31
+ task build: [:unpack_source_pkg, :remove_source_pkg]
@@ -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.glob('lib/jars/**/*')
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 up
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 #{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
- Process.kill('SIGINT', @pid)
34
- Process.waitpid2(@pid)
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
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Dynamo local ruby namespace
4
4
  module DynamoLocalRuby
5
- VERSION = '0.2.3'
5
+ VERSION = '0.3.1'
6
6
  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.2.3
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-06-23 00:00:00.000000000 Z
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.9.33.jar
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.3.2.jar
93
- - lib/jars/dynamodb_local/DynamoDBLocal_lib/jackson-core-2.3.2.jar
94
- - lib/jars/dynamodb_local/DynamoDBLocal_lib/jackson-databind-2.3.2.jar
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