carriage 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +3 -0
- data/CHANGELOG.md +11 -0
- data/README.md +9 -10
- data/carriage.gemspec +1 -1
- data/lib/carriage.rb +30 -12
- data/lib/carriage/version.rb +1 -1
- metadata +1 -2
- data/Gemfile.lock +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6e81427fae2e36e6ee765fc14b94efb8a78efee6feacbe24e47b35e25f54a6ad
|
4
|
+
data.tar.gz: 0ae15d63cff13b5d0c8a44a64f7262ccbb0ef98fd5f702e5845c79c81570ca1a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc0891d5d827726e047b89f1689530e8908517d1403b50422f0f1e3bef987b8031fe0bb1d0de4c30f1b14ec0c6cdc68df13eea719eaf99bc9c38000590f517ca
|
7
|
+
data.tar.gz: 3d16f7d941e8c7d16d6f5216f7a7eb26fec47708dfa2b2885f991997c1c3e5d673a2f7df06c1ab9247c9d37fb4320935a6e184c497102b031595df787d10fafb
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -2,5 +2,16 @@
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
4
4
|
|
5
|
+
## [Unreleased]
|
6
|
+
|
7
|
+
## [0.2.0]
|
8
|
+
### Added
|
9
|
+
- Set default quantity for a product
|
10
|
+
- Write down regions and respective hosts associated with them
|
11
|
+
|
12
|
+
### Changed
|
13
|
+
- Using `URI.encode_www_form` to build URL parameters
|
14
|
+
- `AWSAccessKeyId` is not a required argument
|
15
|
+
|
5
16
|
## [0.1.0]
|
6
17
|
First public version, only focused on supporting one region - US.
|
data/README.md
CHANGED
@@ -1,9 +1,13 @@
|
|
1
|
-
|
1
|
+
[![Gem Version](https://badge.fury.io/rb/carriage.svg)](https://badge.fury.io/rb/carriage)
|
2
|
+
[![Maintainability](https://api.codeclimate.com/v1/badges/79ddcbeb02fe9447cd0d/maintainability)](https://codeclimate.com/github/skatkov/carriage/maintainability)
|
3
|
+
[![Build Status](https://travis-ci.org/skatkov/carriage.svg?branch=master)](https://travis-ci.org/skatkov/carriage)
|
2
4
|
|
5
|
+
# Carriage
|
3
6
|
Carriage is a Ruby wrapper to [Amazon Product Advertising API 5.0 - Cart Form](https://webservices.amazon.com/paapi5/documentation/add-to-cart-form.html). This gem helps add any number of items to a customer's shopping cart and sending him to Amazon website to complete his order.
|
4
7
|
|
5
8
|
To use this gem, you need to have Amazon **AssociateTag**, so don't forget to [register first](https://webservices.amazon.com/paapi5/documentation/register-for-pa-api.html) with Amazon Associate program.
|
6
9
|
|
10
|
+
Programmatic access to product data is out of scope for this gem, but I recommend to use [vacuum gem](https://github.com/hakanensari/vacuum) if there is such a need.
|
7
11
|
|
8
12
|
## Installation
|
9
13
|
|
@@ -25,15 +29,10 @@ Or install it yourself as:
|
|
25
29
|
|
26
30
|
TODO: Write usage instructions here
|
27
31
|
|
28
|
-
##
|
29
|
-
|
30
|
-
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
31
|
-
|
32
|
-
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).
|
33
|
-
|
34
|
-
## Contributing
|
32
|
+
## Getting help
|
35
33
|
|
36
|
-
|
34
|
+
* Ask specific questions about the API on the [Amazon forum](https://forums.aws.amazon.com/forum.jspa?forumID=9).
|
35
|
+
* Report bugs and discuss potential features in [GitHub issues](https://github.com/skatkov/carriage/issues).
|
37
36
|
|
38
37
|
|
39
38
|
## License
|
@@ -42,4 +41,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
|
|
42
41
|
|
43
42
|
## Code of Conduct
|
44
43
|
|
45
|
-
Everyone interacting in the Carriage project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/
|
44
|
+
Everyone interacting in the Carriage project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/skatkov/carriage/blob/master/CODE_OF_CONDUCT.md).
|
data/carriage.gemspec
CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
|
|
11
11
|
spec.homepage = "https://www.github.com/skatkov/carriage"
|
12
12
|
spec.license = "MIT"
|
13
13
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
|
14
|
-
|
14
|
+
|
15
15
|
spec.metadata["homepage_uri"] = spec.homepage
|
16
16
|
spec.metadata["source_code_uri"] = "https://www.github.com/skatkov/carriage"
|
17
17
|
spec.metadata["changelog_uri"] = "https://github.com/skatkov/carriage/blob/master/CHANGELOG.md"
|
data/lib/carriage.rb
CHANGED
@@ -1,26 +1,44 @@
|
|
1
|
-
require
|
1
|
+
require 'carriage/version'
|
2
|
+
require 'uri'
|
2
3
|
|
3
4
|
module Carriage
|
4
|
-
|
5
|
+
HOSTS_AND_REGIONS = {
|
6
|
+
au: 'https://www.amazon.com.au/gp/aws/cart/add.html',
|
7
|
+
br: 'https://www.amazon.com.br/gp/aws/cart/add.html',
|
8
|
+
ca: 'https://www.amazon.ca/gp/aws/cart/add.html',
|
9
|
+
fr: 'https://www.amazon.fr/gp/aws/cart/add.html',
|
10
|
+
de: 'https://www.amazon.de/gp/aws/cart/add.html',
|
11
|
+
in: 'https://www.amazon.in/gp/aws/cart/add.html',
|
12
|
+
it: 'https://www.amazon.it/gp/aws/cart/add.html',
|
13
|
+
jp: 'https://www.amazon.co.jp/gp/aws/cart/add.html',
|
14
|
+
mx: 'https://www.amazon.com.mx/gp/aws/cart/add.html',
|
15
|
+
sg: 'https://www.amazon.sg/gp/aws/cart/add.html',
|
16
|
+
es: 'https://www.amazon.es/gp/aws/cart/add.html',
|
17
|
+
tr: 'https://www.amazon.com.tr/gp/aws/cart/add.html',
|
18
|
+
ae: 'https://www.amazon.ae/gp/aws/cart/add.html',
|
19
|
+
uk: 'https://www.amazon.co.uk/gp/aws/cart/add.html',
|
20
|
+
us: 'https://www.amazon.com/gp/aws/cart/add.html'
|
21
|
+
}.freeze
|
5
22
|
|
6
|
-
|
23
|
+
def self.call(region, params)
|
24
|
+
"#{HOSTS_AND_REGIONS[:us]}?#{URI.encode_www_form params}"
|
25
|
+
end
|
7
26
|
|
8
|
-
def self.build(items, tag, key_id)
|
27
|
+
def self.build(items, tag, key_id=nil)
|
9
28
|
return nil if items.nil? || items.empty?
|
10
29
|
|
11
|
-
params =
|
30
|
+
params = {}
|
12
31
|
index = 0
|
13
32
|
|
14
33
|
while index < items.size
|
15
|
-
params
|
16
|
-
params
|
34
|
+
params[:"ASIN.#{index + 1}"] = items[index][:asin]
|
35
|
+
params[:"Quantity.#{index + 1}"] = items[index].fetch(:quantity, 1)
|
17
36
|
index += 1
|
18
37
|
end
|
19
38
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
end
|
39
|
+
params[:AssociateTag] = tag
|
40
|
+
params[:AWSAccessKeyId] = key_id unless (key_id.nil? || key_id.empty?)
|
41
|
+
|
42
|
+
call(:us, params)
|
25
43
|
end
|
26
44
|
end
|
data/lib/carriage/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: carriage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stanislav (Stas) Katkov
|
@@ -23,7 +23,6 @@ files:
|
|
23
23
|
- CHANGELOG.md
|
24
24
|
- CODE_OF_CONDUCT.md
|
25
25
|
- Gemfile
|
26
|
-
- Gemfile.lock
|
27
26
|
- LICENSE.txt
|
28
27
|
- README.md
|
29
28
|
- Rakefile
|
data/Gemfile.lock
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
carriage (0.1.0)
|
5
|
-
|
6
|
-
GEM
|
7
|
-
remote: https://rubygems.org/
|
8
|
-
specs:
|
9
|
-
minitest (5.13.0)
|
10
|
-
rake (12.3.2)
|
11
|
-
|
12
|
-
PLATFORMS
|
13
|
-
ruby
|
14
|
-
|
15
|
-
DEPENDENCIES
|
16
|
-
carriage!
|
17
|
-
minitest (~> 5.0)
|
18
|
-
rake (~> 12.0)
|
19
|
-
|
20
|
-
BUNDLED WITH
|
21
|
-
1.17.3
|