dynamodb-api 0.8.0 → 0.8.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
  SHA256:
3
- metadata.gz: f399f21ab0ac3eb7d980389fbf500772d9d39dbdd60b3220cc2b0cbd3adc4a6d
4
- data.tar.gz: 6a226aa3af37bef462f46a257e3206be4a6c5529b7dc44994f20737190aa2616
3
+ metadata.gz: e7fc7f62b75b2847e3b61765cffcc823b1af80a09f202cceef1a74d3a549de43
4
+ data.tar.gz: e1a80833c322c480c084fe33512db8012f25f683147de888e40f6a6d046677d9
5
5
  SHA512:
6
- metadata.gz: 58976b0b20a9476ed7d53c56e493caa02701e4d3d2ca09eee87356e34d737558e9bce42b74c24799eb1470344d0286b891af6a97c4e8fe7c8ec4f1c272b3a761
7
- data.tar.gz: 3f3e5af9e0afc031d122dbb0634d85c8349057ce38a04c248c5126676e4c7cc48e1bcb66943ae27470f2a7fef4d2335eef0393dc786165c4fb5c3f46ed66f7f8
6
+ metadata.gz: 4e3a874f279f32c37b16a77ba649aa9cfc83615103f5df9b58a64a06496e796d31396728e0e0e1c6d7bc6538ea0be5c02c49249933f6c4bfc830f71498b88a89
7
+ data.tar.gz: 9628ccc8dc2ff42c0ec495a5485546091f82e29ba1895e4345c1a7a31d7a2298f629a7e4370caeb51e6966c4076aba9cadc81e7500c0595c82a1c867d205b171
data/.travis.yml CHANGED
@@ -10,10 +10,7 @@ gemfile:
10
10
  - gemfiles/aws_sdk_3.gemfile
11
11
 
12
12
  before_install:
13
- - |
14
- if [[ ${RUBY_VERSION} =~ ^ruby-2.3 ]]; then
15
- gem uninstall -i /home/travis/.rvm/gems/${RUBY_VERSION}@global bundler -x
16
- fi
13
+ - gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true
17
14
  - gem install bundler -v 1.16.2
18
15
 
19
16
  before_script:
data/CHANGELOG.md CHANGED
@@ -8,6 +8,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
8
8
 
9
9
  ---
10
10
 
11
+ ## [0.8.1] - 2019-06-03
12
+ ### Fixed
13
+ - [#49](https://github.com/walkersumida/dynamodb-api/pull/49) not be added table name prefix
14
+ - [#48](https://github.com/walkersumida/dynamodb-api/pull/48) Improvement DX
15
+
11
16
  ## [0.8.0] - 2019-03-03
12
17
  ### Added
13
18
  - [#39](https://github.com/walkersumida/dynamodb-api/pull/39) `next` method
data/Dockerfile ADDED
@@ -0,0 +1,15 @@
1
+ FROM ruby:2.5.5
2
+
3
+ ENV APP_ROOT /app
4
+ WORKDIR $APP_ROOT
5
+
6
+ COPY . $APP_ROOT
7
+
8
+ RUN \
9
+ echo 'gem: --no-document' >> ~/.gemrc && \
10
+ cp ~/.gemrc /etc/gemrc && \
11
+ chmod uog+r /etc/gemrc && \
12
+ bundle config --global build.nokogiri --use-system-libraries && \
13
+ bundle config --global jobs 4 && \
14
+ bin/setup && \
15
+ rm -rf ~/.gem
data/README.md CHANGED
@@ -74,8 +74,33 @@ items = scan.all.items
74
74
  |3 |3 |Model S |0.20120601e8 |0 |
75
75
  |4 |1 |S2000 |0.19980101e8 |1 |
76
76
 
77
+ #### Filter
78
+
79
+ ```ruby
80
+ scan = Dynamodb::Api.scan
81
+ scan.from('cars').
82
+ filter('model = :model', ':model': 'S2000')
83
+ items = scan.all.items
84
+ ```
85
+
86
+ | id | maker_id(Partition key) | model | release_date(Sort key) | status |
87
+ |:---|:---|:---|:---|:---|
88
+ |4 |1 |S2000 |0.19980101e8 |1 |
89
+
90
+ #### Limit
91
+
92
+ ```ruby
93
+ scan = Dynamodb::Api.scan
94
+ scan.from('cars').
95
+ limit(1)
96
+ items = scan.all.items
97
+ ```
98
+
99
+ | id | maker_id(Partition key) | model | release_date(Sort key) | status |
100
+ |:---|:---|:---|:---|:---|
101
+ |1 |1 |Accord |0.19760508e8 |0 |
77
102
 
78
- #### Next(Paging) [Unreleased]
103
+ #### Next(Paging)
79
104
 
80
105
  ```ruby
81
106
  scan = Dynamodb::Api.scan
@@ -164,7 +189,7 @@ items = query.all.items
164
189
  |:---|:---|:---|:---|:---|
165
190
  |1 |1 |Accord |0.19760508e8 |0 |
166
191
 
167
- #### Next(Paging) [Unreleased]
192
+ #### Next(Paging)
168
193
 
169
194
  ```ruby
170
195
  query = Dynamodb::Api.query
@@ -260,11 +285,10 @@ client.create_backup(
260
285
  ## Development
261
286
 
262
287
  - Run `docker-compose up` to run the dynamodb_local.
263
- - After checking out the repo, run `bin/setup` to install dependencies.
264
- - Run `bundle exec rake spec` to run the tests. Or run `bundle exec appraisal aws-sdk-* rake spec` to run the tests. Replase `*` with aws sdk major version.
265
- - You can also run `bin/console` for an interactive prompt that will allow you to experiment.
288
+ - Run `docker-compose run ruby bundle exec rake spec` to run the tests. Or run `docker-compose run ruby bundle exec appraisal aws-sdk-* rake spec` to run the tests. Replase `*` with aws sdk major version.
289
+ - You can also run `docker-compose run ruby bin/console` for an interactive prompt that will allow you to experiment.
266
290
 
267
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
291
+ To install this gem onto your local machine, run `docker-compose run ruby bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `docker-compose run ruby bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
268
292
 
269
293
  ## Contributing
270
294
 
data/docker-compose.yml CHANGED
@@ -1,5 +1,11 @@
1
1
  version: '3'
2
2
  services:
3
+ ruby:
4
+ build:
5
+ context: .
6
+ dockerfile: Dockerfile
7
+ volumes:
8
+ - .:/app
3
9
  dynamodb:
4
10
  image: cnadiminti/dynamodb-local:2018-04-11
5
11
  ports:
@@ -15,6 +15,11 @@ module Dynamodb
15
15
  option :retry_limit, default: 10
16
16
  option :table_name_prefix, default: ''
17
17
  option :index_name_prefix, default: ''
18
+
19
+ def build_table_name(value)
20
+ return value unless table_name_prefix?
21
+ "#{table_name_prefix}#{value}"
22
+ end
18
23
  end
19
24
  end
20
25
  end
@@ -3,9 +3,13 @@
3
3
  module Dynamodb
4
4
  module Api
5
5
  module Delete
6
- class Item # :nodoc:
6
+ class Item
7
+ # @param key [Hash] the item key
8
+ # @param table_name [String] the table name
7
9
  def self.delete_item(key, table_name)
8
10
  client = Adapter.client
11
+ table_name = Dynamodb::Api::Config.build_table_name(table_name)
12
+
9
13
  client.delete_item(key: key, table_name: table_name)
10
14
  end
11
15
  end
@@ -4,6 +4,7 @@ module Dynamodb
4
4
  module Api
5
5
  module Delete
6
6
  class Tables # :nodoc:
7
+ # TODO: add rspec
7
8
  def self.delete_tables
8
9
  client = Adapter.client
9
10
  table_names = client.list_tables[:table_names]
@@ -3,9 +3,13 @@
3
3
  module Dynamodb
4
4
  module Api
5
5
  module Put
6
- class Item # :nodoc:
6
+ class Item
7
+ # @param key [Hash] the item key
8
+ # @param table_name [String] the table name
7
9
  def self.put_item(item, table_name)
8
10
  client = Adapter.client
11
+ table_name = Dynamodb::Api::Config.build_table_name(table_name)
12
+
9
13
  client.put_item(item: item, table_name: table_name)
10
14
  end
11
15
  end
@@ -6,11 +6,9 @@ module Dynamodb
6
6
  class FromClause # :nodoc:
7
7
  attr_reader :name
8
8
 
9
+ # @param name [String] the table name
9
10
  def initialize(name)
10
- if Dynamodb::Api::Config.table_name_prefix?
11
- name = Dynamodb::Api::Config.table_name_prefix + name
12
- end
13
- @name = name
11
+ @name = Dynamodb::Api::Config.build_table_name(name)
14
12
  end
15
13
  end
16
14
  end
@@ -7,7 +7,7 @@ module Dynamodb
7
7
  def update_item(key, cols, table_name)
8
8
  @key = key
9
9
  @cols = cols
10
- @table_name = table_name
10
+ @table_name = Dynamodb::Api::Config.build_table_name(table_name)
11
11
 
12
12
  client = Adapter.client
13
13
  client.update_item(build_update_clause)
@@ -1,5 +1,5 @@
1
1
  module Dynamodb
2
2
  module Api
3
- VERSION = '0.8.0'.freeze
3
+ VERSION = '0.8.1'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamodb-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - WalkerSumida
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-03-03 00:00:00.000000000 Z
11
+ date: 2019-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk
@@ -138,6 +138,7 @@ files:
138
138
  - Appraisals
139
139
  - CHANGELOG.md
140
140
  - CODE_OF_CONDUCT.md
141
+ - Dockerfile
141
142
  - Gemfile
142
143
  - LICENSE.txt
143
144
  - README.md