dynamo-local-ruby 0.2.3 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
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