Class: DynamoLocalRuby::DynamoDBLocal
- Inherits:
-
Object
- Object
- DynamoLocalRuby::DynamoDBLocal
- Defined in:
- lib/dynamo-local-ruby/dynamo_db_local.rb
Overview
Wrapper around Dynamo DB local process
Constant Summary collapse
- PORT =
9389
- ENDPOINT =
"http://localhost:#{PORT}"
- LATEST_WEB_TGZ =
'http://dynamodb-local.s3-website-us-west-2.amazonaws.com'\ '/dynamodb_local_latest.tar.gz'
Class Method Summary collapse
Instance Method Summary collapse
- #down ⇒ Object
-
#initialize(pid) ⇒ DynamoDBLocal
constructor
A new instance of DynamoDBLocal.
Constructor Details
#initialize(pid) ⇒ DynamoDBLocal
Returns a new instance of DynamoDBLocal.
11 12 13 |
# File 'lib/dynamo-local-ruby/dynamo_db_local.rb', line 11 def initialize(pid) @pid = pid end |
Class Method Details
.down ⇒ Object
37 38 39 |
# File 'lib/dynamo-local-ruby/dynamo_db_local.rb', line 37 def down @instance.down if defined? @instance end |
.ensure_dynamo_local_exists(local_path) ⇒ Object
16 17 18 19 20 21 22 23 |
# File 'lib/dynamo-local-ruby/dynamo_db_local.rb', line 16 def ensure_dynamo_local_exists(local_path) jar_path = File.join(local_path, 'DynamoDBLocal.jar') return if File.exist?(jar_path) `mkdir -p #{local_path}` latest = File.join(local_path, 'dynamodb_local_latest.tar.gz') `wget #{LATEST_WEB_TGZ} -o #{latest}` unless File.exist?(latest) `tar xzf #{latest} -C #{local_path}` end |
.up(build_path) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/dynamo-local-ruby/dynamo_db_local.rb', line 25 def up(build_path) local_path = File.join(build_path, 'dynamo_db_local') ensure_dynamo_local_exists(local_path) lib_path = File.join(local_path, 'DynamoDBLocal_lib') jar_path = File.join(local_path, 'DynamoDBLocal.jar') pid = spawn("java -Djava.library.path=#{lib_path} -jar #{jar_path} "\ "-sharedDb -inMemory -port #{PORT}") @instance = DynamoDBLocal.new(pid) @instance end |
Instance Method Details
#down ⇒ Object
42 43 44 45 46 47 |
# File 'lib/dynamo-local-ruby/dynamo_db_local.rb', line 42 def down return unless @pid Process.kill('SIGINT', @pid) Process.waitpid2(@pid) @pid = nil end |