import_export 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -0,0 +1,15 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
15
+ .env
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.1
4
+ script: "script/cibuild"
5
+ sudo: false
6
+ cache: bundler
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in consolidated_screening_list.gemspec
4
+ gemspec
@@ -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.
@@ -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
@@ -0,0 +1,9 @@
1
+ require "bundler/gem_tasks"
2
+ require './lib/import_export'
3
+ require 'rspec/core/rake_task'
4
+
5
+ desc "Run specs"
6
+ RSpec::Core::RakeTask.new do |t|
7
+ t.pattern = 'spec/**/*_spec.rb'
8
+ t.rspec_opts = ["--order", "rand", "--color"]
9
+ end
@@ -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
@@ -0,0 +1,3 @@
1
+ module ImportExport
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,5 @@
1
+ #!/bin/sh
2
+
3
+ set -ex
4
+
5
+ bundle install
@@ -0,0 +1,5 @@
1
+ #!/bin/sh
2
+
3
+ set -ex
4
+
5
+ bundle exec rake spec
@@ -0,0 +1,5 @@
1
+ #!/bin/sh
2
+
3
+ set -ex
4
+
5
+ DEBUG=1 bundle exec pry -r ./lib/import_export.rb
@@ -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
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe ImportExport do
4
+ it "returns the user agent" do
5
+ expect(subject.user_agent).to match(/ImportExport\/\d\.\d\.\d/)
6
+ end
7
+ end
@@ -0,0 +1,12 @@
1
+ require "bundler/setup"
2
+ require 'webmock/rspec'
3
+ require_relative "../lib/import_export"
4
+
5
+ WebMock.disable_net_connect!
6
+
7
+ def with_env(key, value)
8
+ old_env = ENV[key]
9
+ ENV[key] = value
10
+ yield
11
+ ENV[key] = old_env
12
+ end
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