import_export 0.0.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 +7 -0
- data/.gitignore +15 -0
- data/.travis.yml +6 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +44 -0
- data/Rakefile +9 -0
- data/import_export.gemspec +29 -0
- data/lib/import_export.rb +24 -0
- data/lib/import_export/client.rb +31 -0
- data/lib/import_export/query.rb +66 -0
- data/lib/import_export/result.rb +30 -0
- data/lib/import_export/source.rb +51 -0
- data/lib/import_export/version.rb +3 -0
- data/script/bootstrap +5 -0
- data/script/cibuild +5 -0
- data/script/console +5 -0
- data/script/release +38 -0
- data/spec/import_export_client_spec.rb +26 -0
- data/spec/import_export_query_spec.rb +47 -0
- data/spec/import_export_result_spec.rb +13 -0
- data/spec/import_export_source_spec.rb +33 -0
- data/spec/import_export_spec.rb +7 -0
- data/spec/spec_helper.rb +12 -0
- metadata +185 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: dac572ba1ce74703c74a6f337b7d8a143fcbe3a4
|
4
|
+
data.tar.gz: 15f193720338f0ab44563371c6cf53eb0525ae5a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2ea81976a3ee0549e2c809be7be1d05d3251c74038d90163c2c173b5fe7afadd7c162bcdc629a571e7dd32ec602201383f1bcabf69dd978198caeb9b20f9f8d6
|
7
|
+
data.tar.gz: b606eccfb48acfc2292284f36954c65c38340845b392f5a5c328bd6b5f44f1992c77c23fcbb55653988db0d345d0d9ce7c42ebac94c10c08565cc317ac83d27a
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2015 Ben Balter
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
# ImportExport
|
2
|
+
|
3
|
+
A Ruby client for [Trade.gov's Consolidated Screening List](http://developer.trade.gov/consolidated-screening-list.html)
|
4
|
+
|
5
|
+
## Usage
|
6
|
+
|
7
|
+
```irb
|
8
|
+
client = ImportExport::Client.new :api_key => "12345"
|
9
|
+
client.search :q => "smith"
|
10
|
+
=> [
|
11
|
+
#<ImportExport::Result name="PRIDMORE-SMITH, BRAMWELL J.">,
|
12
|
+
#<ImportExport::Result name="PRIDMORE-SMITH, JOHN B.">
|
13
|
+
]
|
14
|
+
|
15
|
+
client.search :name => "smith", :fuzzy_name => true
|
16
|
+
=> [
|
17
|
+
#<ImportExport::Result name="PRIDMORE-SMITH, JOHN B.">,
|
18
|
+
#<ImportExport::Result name="PRIDMORE-SMITH, BRAMWELL J.">,
|
19
|
+
#<ImportExport::Result name="MID-SOUTH INVESTMENTS LIMITED">,
|
20
|
+
#<ImportExport::Result name="SOUTH-EAST MOVEMENT">,
|
21
|
+
...
|
22
|
+
]
|
23
|
+
```
|
24
|
+
|
25
|
+
### Available parameters
|
26
|
+
|
27
|
+
* `q`
|
28
|
+
* `sources`
|
29
|
+
* `countries` (defaults to all countries)
|
30
|
+
* `address`
|
31
|
+
* `name`
|
32
|
+
* `fuzzy_name` (true or false)
|
33
|
+
* `type`
|
34
|
+
* `size` (number of results per page, defaults to 100)
|
35
|
+
* `offset` (defaults to 0)
|
36
|
+
* `api_key` (defaults to ENV["TRADE_API_KEY"])
|
37
|
+
|
38
|
+
## Contributing
|
39
|
+
|
40
|
+
1. Fork it ( https://github.com/[my-github-username]/consolidated_screening_list/fork )
|
41
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
42
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
43
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
44
|
+
5. Create a new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'import_export/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "import_export"
|
8
|
+
spec.version = ImportExport::VERSION
|
9
|
+
spec.authors = ["Ben Balter"]
|
10
|
+
spec.email = ["ben.balter@github.com"]
|
11
|
+
spec.summary = "A Ruby client for Trade.gov's Consolidated Screening List"
|
12
|
+
spec.homepage = "https://github.com/benbalter/impot_export"
|
13
|
+
spec.license = "MIT"
|
14
|
+
|
15
|
+
spec.files = `git ls-files -z`.split("\x0")
|
16
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
|
+
spec.require_paths = ["lib"]
|
19
|
+
|
20
|
+
spec.add_dependency "dotenv", "~> 2.0"
|
21
|
+
spec.add_dependency "rest-client", "~> 1.8"
|
22
|
+
spec.add_dependency "iso_country_codes", "~> 0.7"
|
23
|
+
|
24
|
+
spec.add_development_dependency "bundler", "~> 1.6"
|
25
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
26
|
+
spec.add_development_dependency "pry", "~> 0.10"
|
27
|
+
spec.add_development_dependency "rspec", "~> 3.2"
|
28
|
+
spec.add_development_dependency "webmock", "~> 1.2"
|
29
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'iso_country_codes'
|
2
|
+
require 'rest_client'
|
3
|
+
require 'dotenv'
|
4
|
+
require 'uri'
|
5
|
+
require 'logger'
|
6
|
+
require 'json'
|
7
|
+
|
8
|
+
require "import_export/version"
|
9
|
+
require "import_export/source"
|
10
|
+
require "import_export/result"
|
11
|
+
require "import_export/client"
|
12
|
+
require "import_export/query"
|
13
|
+
|
14
|
+
Dotenv.load
|
15
|
+
RestClient.log = Logger.new(STDOUT) unless ENV["DEBUG"].to_s.empty?
|
16
|
+
|
17
|
+
module ImportExport
|
18
|
+
|
19
|
+
API_BASE = "https://api.trade.gov/consolidated_screening_list/"
|
20
|
+
|
21
|
+
def self.user_agent
|
22
|
+
"ImportExport/#{ImportExport::VERSION}; +https://github.com/benbalter/import_export)"
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module ImportExport
|
2
|
+
class Client
|
3
|
+
|
4
|
+
class << self
|
5
|
+
def search(options= {})
|
6
|
+
Client.new.search(options)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
attr_reader :api_key
|
11
|
+
|
12
|
+
def initialize(options = {})
|
13
|
+
@api_key = options[:api_key]
|
14
|
+
end
|
15
|
+
|
16
|
+
def api_key
|
17
|
+
@api_key || ENV["TRADE_API_KEY"]
|
18
|
+
end
|
19
|
+
|
20
|
+
def search(params = {})
|
21
|
+
params = { :api_key => api_key }.merge(params)
|
22
|
+
parse_response Query.new(params).call
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def parse_response(response)
|
28
|
+
JSON.parse(response)["results"].map { |data| Result.new(data) }
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
module ImportExport
|
2
|
+
class Query
|
3
|
+
|
4
|
+
class << self
|
5
|
+
def countries
|
6
|
+
@countries ||= IsoCountryCodes.all.map { |c| c.alpha2 }
|
7
|
+
end
|
8
|
+
|
9
|
+
def endpoint
|
10
|
+
@endpoint ||= URI.join(ImportExport::API_BASE, "search").to_s
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
PARAMETERS = {
|
15
|
+
:q => nil,
|
16
|
+
:sources => Source.keys,
|
17
|
+
:countries => Query.countries,
|
18
|
+
:address => nil,
|
19
|
+
:name => nil,
|
20
|
+
:fuzzy_name => false,
|
21
|
+
:type => nil,
|
22
|
+
:size => 100,
|
23
|
+
:offset => 0,
|
24
|
+
:api_key => nil,
|
25
|
+
}
|
26
|
+
|
27
|
+
TYPES = %w[
|
28
|
+
Individual
|
29
|
+
Entity
|
30
|
+
Vessel
|
31
|
+
]
|
32
|
+
|
33
|
+
def initialize(params)
|
34
|
+
params = { :q => params } if params.is_a? String
|
35
|
+
@params = PARAMETERS.merge(params)
|
36
|
+
|
37
|
+
if invalid = @params.find { |key,value| !PARAMETERS.keys.include?(key) }
|
38
|
+
raise ArgumentError, "Invalid parameter: #{invalid[0]}"
|
39
|
+
end
|
40
|
+
|
41
|
+
if invalid = @params[:sources].find { |source| !Source.find_by_key(source) }
|
42
|
+
raise ArgumentError, "Invalid source: #{invalid}"
|
43
|
+
end
|
44
|
+
|
45
|
+
if invalid = @params[:countries].find { |country| !Query.countries.include?(country) }
|
46
|
+
raise ArgumentError, "Invalid country: #{invalid}"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def call
|
51
|
+
RestClient.get Query.endpoint, {
|
52
|
+
:params => params,
|
53
|
+
"User-Agent" => ImportExport.user_agent
|
54
|
+
}
|
55
|
+
end
|
56
|
+
|
57
|
+
private
|
58
|
+
|
59
|
+
def params
|
60
|
+
params = @params.clone
|
61
|
+
params[:countries] = params[:countries].join(",")
|
62
|
+
params[:sources] = params[:sources].join(",")
|
63
|
+
params.reject { |k,v| v.nil? }
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module ImportExport
|
2
|
+
class Result
|
3
|
+
|
4
|
+
attr_reader :data
|
5
|
+
|
6
|
+
def initialize(data)
|
7
|
+
@data = data
|
8
|
+
end
|
9
|
+
|
10
|
+
def inspect
|
11
|
+
"#<ImportExport::Result name=\"#{name}\">"
|
12
|
+
end
|
13
|
+
|
14
|
+
def method_missing(method_sym, *arguments, &block)
|
15
|
+
if data.has_key?(method_sym.to_s)
|
16
|
+
data[method_sym.to_s]
|
17
|
+
else
|
18
|
+
super
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def respond_to?(method_sym, include_private = false)
|
23
|
+
if data.has_key?(method_sym.to_s)
|
24
|
+
true
|
25
|
+
else
|
26
|
+
super
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module ImportExport
|
2
|
+
class Source
|
3
|
+
|
4
|
+
SOURCES = {
|
5
|
+
"DPL" => "Denied Persons List",
|
6
|
+
"EL" => "Entity List",
|
7
|
+
"FSE" => "Foreign Sanctions Evaders",
|
8
|
+
"DTC" => "ITAR Debarred",
|
9
|
+
"ISA" => "Non-SDN Iranian Sanctions Act List",
|
10
|
+
"ISN" => "Nonproliferation Sanctions",
|
11
|
+
"PLC" => "Palestinian Legislative Council List",
|
12
|
+
"561" => "Part 561 List",
|
13
|
+
"SSI" => "Sectoral Sanctions Identifications List",
|
14
|
+
"SDN" => "Specially Designated Nationals",
|
15
|
+
"UVL" => "Unverified List"
|
16
|
+
}
|
17
|
+
|
18
|
+
class << self
|
19
|
+
def all
|
20
|
+
@all ||= SOURCES.map { |key, value| self.new(key) }
|
21
|
+
end
|
22
|
+
|
23
|
+
def find_by_key(key)
|
24
|
+
all.find { |source| source.key == key }
|
25
|
+
end
|
26
|
+
alias_method :[], :find_by_key
|
27
|
+
|
28
|
+
def find_by_name(name)
|
29
|
+
all.find { |source| source.name == name }
|
30
|
+
end
|
31
|
+
|
32
|
+
def keys
|
33
|
+
@keys ||= SOURCES.keys
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
attr_reader :key
|
38
|
+
|
39
|
+
def initialize(key)
|
40
|
+
@key = key
|
41
|
+
end
|
42
|
+
|
43
|
+
def inspect
|
44
|
+
"#<ImportExport::Source key=\"#{key}\" name=\"#{name}\">"
|
45
|
+
end
|
46
|
+
|
47
|
+
def name
|
48
|
+
SOURCES[key]
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
data/script/cibuild
ADDED
data/script/console
ADDED
data/script/release
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
# Tag and push a release.
|
3
|
+
|
4
|
+
set -e
|
5
|
+
|
6
|
+
# Make sure we're in the project root.
|
7
|
+
|
8
|
+
cd $(dirname "$0")/..
|
9
|
+
|
10
|
+
# Build a new gem archive.
|
11
|
+
|
12
|
+
rm -rf import_export-*.gem
|
13
|
+
gem build -q import_export.gemspec
|
14
|
+
|
15
|
+
# Make sure we're on the master branch.
|
16
|
+
|
17
|
+
(git branch | grep -q '* master') || {
|
18
|
+
echo "Only release from the master branch."
|
19
|
+
exit 1
|
20
|
+
}
|
21
|
+
|
22
|
+
# Figure out what version we're releasing.
|
23
|
+
|
24
|
+
tag=v`ls import_export-*.gem | sed 's/^import_export-\(.*\)\.gem$/\1/'`
|
25
|
+
|
26
|
+
# Make sure we haven't released this version before.
|
27
|
+
|
28
|
+
git fetch -t origin
|
29
|
+
|
30
|
+
(git tag -l | grep -q "$tag") && {
|
31
|
+
echo "Whoops, there's already a '${tag}' tag."
|
32
|
+
exit 1
|
33
|
+
}
|
34
|
+
|
35
|
+
# Tag it and bag it.
|
36
|
+
|
37
|
+
gem push import_export-*.gem && git tag "$tag" &&
|
38
|
+
git push origin master && git push origin "$tag"
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ImportExport::Client do
|
4
|
+
it "accepts an api key" do
|
5
|
+
client = ImportExport::Client.new :api_key => "foo"
|
6
|
+
expect(client.api_key).to eql("foo")
|
7
|
+
end
|
8
|
+
|
9
|
+
it "defaults to the env API key" do
|
10
|
+
with_env "TRADE_API_KEY", "foo2" do
|
11
|
+
expect(subject.api_key).to eql("foo2")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
it "calls the API" do
|
16
|
+
stub = stub_request(:get, /https:\/\/api\.trade\.gov\/consolidated_screening_list\/search.*/).
|
17
|
+
to_return(:status => 200, :body => '{"results": [{"foo": "bar"}, {"foo2": "bar2"}]}')
|
18
|
+
|
19
|
+
search = subject.search :q => "smith"
|
20
|
+
expect(stub).to have_been_requested
|
21
|
+
|
22
|
+
expect(search.count).to eql(2)
|
23
|
+
expect(search.first.class).to eql(ImportExport::Result)
|
24
|
+
expect(search.first.foo).to eql("bar")
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ImportExport::Query do
|
4
|
+
subject { ImportExport::Query.new :q => "smith" }
|
5
|
+
|
6
|
+
it "returns the country list" do
|
7
|
+
expect(ImportExport::Query.countries.count).to eql(249)
|
8
|
+
expect(ImportExport::Query.countries.first).to eql("AF")
|
9
|
+
end
|
10
|
+
|
11
|
+
it "builds the endpoint" do
|
12
|
+
expected = "https://api.trade.gov/consolidated_screening_list/search"
|
13
|
+
expect(ImportExport::Query.endpoint).to eql(expected)
|
14
|
+
end
|
15
|
+
|
16
|
+
it "accepts params as a hash" do
|
17
|
+
expect(subject.instance_variable_get("@params")[:q]).to eql("smith")
|
18
|
+
end
|
19
|
+
|
20
|
+
it "accepts params as a string" do
|
21
|
+
query = ImportExport::Query.new "smith"
|
22
|
+
expect(query.instance_variable_get("@params")[:q]).to eql("smith")
|
23
|
+
end
|
24
|
+
|
25
|
+
it "merges the default params" do
|
26
|
+
expect(subject.instance_variable_get("@params")[:offset]).to eql(0)
|
27
|
+
end
|
28
|
+
|
29
|
+
it "builds the param lists" do
|
30
|
+
expect(subject.send(:params)[:countries]).to match(/AF\,AX/)
|
31
|
+
expect(subject.send(:params)[:sources]).to match(/DPL\,EL/)
|
32
|
+
end
|
33
|
+
|
34
|
+
it "strips empty params " do
|
35
|
+
count = subject.send(:params).count { |k,v| v.nil? }
|
36
|
+
expect(count).to eql(0)
|
37
|
+
end
|
38
|
+
|
39
|
+
it "calls the API" do
|
40
|
+
json = '{"results": [{"foo": "bar"}]}'
|
41
|
+
stub = stub_request(:get, /https:\/\/api\.trade\.gov\/consolidated_screening_list\/search.*/).
|
42
|
+
to_return(:status => 200, :body => json)
|
43
|
+
|
44
|
+
expect(subject.call).to eql(json)
|
45
|
+
expect(stub).to have_been_requested
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ImportExport::Query do
|
4
|
+
subject { ImportExport::Result.new "foo" => "bar" }
|
5
|
+
|
6
|
+
it "stores the data" do
|
7
|
+
expect(subject.data["foo"]).to eql("bar")
|
8
|
+
end
|
9
|
+
|
10
|
+
it "exposes properties as methods" do
|
11
|
+
expect(subject.foo).to eql("bar")
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ImportExport::Source do
|
4
|
+
|
5
|
+
subject { ImportExport::Source.all.first }
|
6
|
+
|
7
|
+
it "returns all sources" do
|
8
|
+
expect(ImportExport::Source.all.count).to eql(11)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "returns a source by key" do
|
12
|
+
source = ImportExport::Source.find_by_key(subject.key)
|
13
|
+
expect(source.key).to eql(subject.key)
|
14
|
+
end
|
15
|
+
|
16
|
+
it "returns a source by name" do
|
17
|
+
source = ImportExport::Source.find_by_name(subject.name)
|
18
|
+
expect(source.name).to eql(subject.name)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "returns the keys" do
|
22
|
+
expect(ImportExport::Source.keys.count).to eql(11)
|
23
|
+
expect(ImportExport::Source.keys.first).to eql(subject.key)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "returns the key" do
|
27
|
+
expect(subject.key).to eql("DPL")
|
28
|
+
end
|
29
|
+
|
30
|
+
it "returns the name" do
|
31
|
+
expect(subject.name).to eql("Denied Persons List")
|
32
|
+
end
|
33
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,185 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: import_export
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ben Balter
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-09-13 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: dotenv
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rest-client
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.8'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.8'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: iso_country_codes
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.7'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.7'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: bundler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.6'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.6'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '10.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '10.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: pry
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.10'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.10'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '3.2'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '3.2'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: webmock
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '1.2'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '1.2'
|
125
|
+
description:
|
126
|
+
email:
|
127
|
+
- ben.balter@github.com
|
128
|
+
executables: []
|
129
|
+
extensions: []
|
130
|
+
extra_rdoc_files: []
|
131
|
+
files:
|
132
|
+
- ".gitignore"
|
133
|
+
- ".travis.yml"
|
134
|
+
- Gemfile
|
135
|
+
- LICENSE.txt
|
136
|
+
- README.md
|
137
|
+
- Rakefile
|
138
|
+
- import_export.gemspec
|
139
|
+
- lib/import_export.rb
|
140
|
+
- lib/import_export/client.rb
|
141
|
+
- lib/import_export/query.rb
|
142
|
+
- lib/import_export/result.rb
|
143
|
+
- lib/import_export/source.rb
|
144
|
+
- lib/import_export/version.rb
|
145
|
+
- script/bootstrap
|
146
|
+
- script/cibuild
|
147
|
+
- script/console
|
148
|
+
- script/release
|
149
|
+
- spec/import_export_client_spec.rb
|
150
|
+
- spec/import_export_query_spec.rb
|
151
|
+
- spec/import_export_result_spec.rb
|
152
|
+
- spec/import_export_source_spec.rb
|
153
|
+
- spec/import_export_spec.rb
|
154
|
+
- spec/spec_helper.rb
|
155
|
+
homepage: https://github.com/benbalter/impot_export
|
156
|
+
licenses:
|
157
|
+
- MIT
|
158
|
+
metadata: {}
|
159
|
+
post_install_message:
|
160
|
+
rdoc_options: []
|
161
|
+
require_paths:
|
162
|
+
- lib
|
163
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - ">="
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0'
|
168
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '0'
|
173
|
+
requirements: []
|
174
|
+
rubyforge_project:
|
175
|
+
rubygems_version: 2.4.8
|
176
|
+
signing_key:
|
177
|
+
specification_version: 4
|
178
|
+
summary: A Ruby client for Trade.gov's Consolidated Screening List
|
179
|
+
test_files:
|
180
|
+
- spec/import_export_client_spec.rb
|
181
|
+
- spec/import_export_query_spec.rb
|
182
|
+
- spec/import_export_result_spec.rb
|
183
|
+
- spec/import_export_source_spec.rb
|
184
|
+
- spec/import_export_spec.rb
|
185
|
+
- spec/spec_helper.rb
|