brickset-api 0.0.3
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 +10 -0
- data/.rspec +2 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +5 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +41 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/brickset-api.gemspec +37 -0
- data/lib/brickset.rb +34 -0
- data/lib/brickset/api.rb +115 -0
- data/lib/brickset/collection_tools.rb +17 -0
- data/lib/brickset/configuration.rb +10 -0
- data/lib/brickset/instruction.rb +11 -0
- data/lib/brickset/minifig_collection.rb +17 -0
- data/lib/brickset/set.rb +93 -0
- data/lib/brickset/subtheme.rb +17 -0
- data/lib/brickset/theme.rb +17 -0
- data/lib/brickset/version.rb +3 -0
- data/lib/brickset/year.rb +13 -0
- metadata +164 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 3d4c2a7bddf282faae908bf4c2cef72a256680d7
|
4
|
+
data.tar.gz: 5ef20d4b687d72574c47daec25f8adf1387a8bc2
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6c98ec71260dd7ce70192c2540ba297d304d71adaf8d77815d18a90c34d0725f5954833868906bcca2fa3510f4523e646e52343431370aff5af2da5c49a4be92
|
7
|
+
data.tar.gz: e941c7685e43334628a7338785a0be4aee9973c332b4d191798a74af5136333afa4a9b3e88896f6d64c22a410a11d6f1d27afc1da87cc71c75ba2afe6d06ea21
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
brickset-api-ruby
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby-2.3.0
|
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2016 Ken Schultz
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# Brickset
|
2
|
+
|
3
|
+
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/brickset`. To experiment with that code, run `bin/console` for an interactive prompt.
|
4
|
+
|
5
|
+
TODO: Delete this and the text above, and describe your gem
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem 'brickset-api'
|
13
|
+
```
|
14
|
+
|
15
|
+
And then execute:
|
16
|
+
|
17
|
+
$ bundle
|
18
|
+
|
19
|
+
Or install it yourself as:
|
20
|
+
|
21
|
+
$ gem install brickset-api
|
22
|
+
|
23
|
+
## Usage
|
24
|
+
|
25
|
+
TODO: Write usage instructions here
|
26
|
+
|
27
|
+
## Development
|
28
|
+
|
29
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
30
|
+
|
31
|
+
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).
|
32
|
+
|
33
|
+
## Contributing
|
34
|
+
|
35
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/brickset.
|
36
|
+
|
37
|
+
|
38
|
+
## License
|
39
|
+
|
40
|
+
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
41
|
+
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'bundler/setup'
|
4
|
+
require 'brickset'
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
require 'pry'
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require 'irb'
|
14
|
+
IRB.start
|
data/bin/setup
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'brickset/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'brickset-api'
|
8
|
+
spec.version = Brickset::VERSION
|
9
|
+
spec.authors = ['schultzy51']
|
10
|
+
spec.email = ['schultzy51@gmail.com']
|
11
|
+
|
12
|
+
spec.summary = %q{Ruby wrapper for the Brickset.com v2 API}
|
13
|
+
# spec.description = %q{TBD}
|
14
|
+
spec.homepage = 'https://github.com/schultzy51/brickset-api-ruby'
|
15
|
+
spec.license = 'MIT'
|
16
|
+
|
17
|
+
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
18
|
+
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
19
|
+
if spec.respond_to?(:metadata)
|
20
|
+
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
21
|
+
else
|
22
|
+
raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.'
|
23
|
+
end
|
24
|
+
|
25
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
26
|
+
spec.bindir = 'exe'
|
27
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
28
|
+
spec.require_paths = ['lib']
|
29
|
+
|
30
|
+
spec.add_dependency 'savon', '~> 2.11'
|
31
|
+
spec.add_dependency 'activesupport', '~> 4', '>= 4'
|
32
|
+
|
33
|
+
spec.add_development_dependency 'bundler', '~> 1.12'
|
34
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
35
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
36
|
+
spec.add_development_dependency 'pry', '~> 0', '>= 0.10'
|
37
|
+
end
|
data/lib/brickset.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'savon'
|
2
|
+
require 'active_support/core_ext/array'
|
3
|
+
require 'active_support/core_ext/string'
|
4
|
+
|
5
|
+
require 'brickset/version'
|
6
|
+
require 'brickset/configuration'
|
7
|
+
|
8
|
+
require 'brickset/api'
|
9
|
+
|
10
|
+
require 'brickset/collection_tools'
|
11
|
+
require 'brickset/instruction'
|
12
|
+
require 'brickset/minifig_collection'
|
13
|
+
require 'brickset/set'
|
14
|
+
require 'brickset/subtheme'
|
15
|
+
require 'brickset/theme'
|
16
|
+
require 'brickset/year'
|
17
|
+
|
18
|
+
module Brickset
|
19
|
+
class << self
|
20
|
+
attr_accessor :configuration
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.configuration
|
24
|
+
@configuration ||= Configuration.new
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.reset
|
28
|
+
@configuration = Configuration.new
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.configure
|
32
|
+
yield(configuration)
|
33
|
+
end
|
34
|
+
end
|
data/lib/brickset/api.rb
ADDED
@@ -0,0 +1,115 @@
|
|
1
|
+
module Brickset
|
2
|
+
class Api
|
3
|
+
def initialize
|
4
|
+
@client = Savon.client(wsdl: Brickset.configuration.wsdl_url, convert_request_keys_to: :none)
|
5
|
+
@api_key = Brickset.configuration.api_key
|
6
|
+
end
|
7
|
+
|
8
|
+
def operations
|
9
|
+
@client.operations
|
10
|
+
end
|
11
|
+
|
12
|
+
def themes
|
13
|
+
response = call_api(:get_themes)
|
14
|
+
Array.wrap(response.body.dig(:get_themes_response, :get_themes_result, :themes))
|
15
|
+
end
|
16
|
+
|
17
|
+
def subthemes(theme)
|
18
|
+
response = call_api(:get_subthemes, options: {theme: theme})
|
19
|
+
Array.wrap(response.body.dig(:get_subthemes_response, :get_subthemes_result, :subthemes))
|
20
|
+
end
|
21
|
+
|
22
|
+
def years(theme)
|
23
|
+
response = call_api(:get_years, options: {theme: theme})
|
24
|
+
Array.wrap(response.body.dig(:get_years_response, :get_years_result, :years))
|
25
|
+
end
|
26
|
+
|
27
|
+
def recently_updated(minutes_ago)
|
28
|
+
response = call_api(:get_recently_updated_sets, options: {minutesAgo: minutes_ago})
|
29
|
+
Array.wrap(response.body.dig(:get_recently_updated_sets_response, :get_recently_updated_sets_result, :sets))
|
30
|
+
end
|
31
|
+
|
32
|
+
def sets(user_hash: '',
|
33
|
+
query: '',
|
34
|
+
theme: '',
|
35
|
+
subtheme: '',
|
36
|
+
set_number: '',
|
37
|
+
year: '',
|
38
|
+
owned: '',
|
39
|
+
wanted: '',
|
40
|
+
order_by: '',
|
41
|
+
page_size: '',
|
42
|
+
page_number: '',
|
43
|
+
user_name: '')
|
44
|
+
# although the docs say the parameters are optional they must all be there
|
45
|
+
options = {
|
46
|
+
userHash: user_hash,
|
47
|
+
query: query,
|
48
|
+
theme: theme,
|
49
|
+
subtheme: subtheme,
|
50
|
+
setNumber: set_number,
|
51
|
+
year: year,
|
52
|
+
owned: owned,
|
53
|
+
wanted: wanted,
|
54
|
+
orderBy: order_by,
|
55
|
+
pageSize: page_size,
|
56
|
+
pageNumber: page_number,
|
57
|
+
userName: user_name
|
58
|
+
}
|
59
|
+
|
60
|
+
response = call_api(:get_sets, options: options)
|
61
|
+
Array.wrap(response.body.dig(:get_sets_response, :get_sets_result, :sets))
|
62
|
+
end
|
63
|
+
|
64
|
+
def set(id, user_hash: '')
|
65
|
+
response = call_api(:get_set, options: {userHash: user_hash, SetID: id})
|
66
|
+
response.body.dig(:get_set_response, :get_set_result, :sets)
|
67
|
+
end
|
68
|
+
|
69
|
+
def check_key
|
70
|
+
response = call_api(:check_key)
|
71
|
+
response.body.dig(:check_key_response, :check_key_result) == 'OK'
|
72
|
+
end
|
73
|
+
|
74
|
+
def login(username, password)
|
75
|
+
response = call_api(:login, options: {username: username, password: password})
|
76
|
+
response.body.dig(:login_response, :login_result)
|
77
|
+
end
|
78
|
+
|
79
|
+
def instructions(id)
|
80
|
+
response = call_api(:get_instructions, options: {setID: id})
|
81
|
+
Array.wrap(response.body.dig(:get_instructions_response, :get_instructions_result, :instructions))
|
82
|
+
end
|
83
|
+
|
84
|
+
def collection_totals(user_hash)
|
85
|
+
response = call_api(:get_collection_totals, options: {userHash: user_hash})
|
86
|
+
Array.wrap(response.body.dig(:get_collection_totals_response, :get_collection_totals_result))
|
87
|
+
end
|
88
|
+
|
89
|
+
def minifig_collection(user_hash, query: '', owned: '', wanted: '')
|
90
|
+
response = call_api(:get_minifig_collection, options: {userHash: user_hash, query: query, owned: owned, wanted: wanted})
|
91
|
+
Array.wrap(response.body.dig(:get_minifig_collection_response, :get_minifig_collection_result, :minifig_collection))
|
92
|
+
end
|
93
|
+
|
94
|
+
def themes_for_user(user_hash, owned: '', wanted: '')
|
95
|
+
response = call_api(:get_themes_for_user, options: {userHash: user_hash, owned: owned, wanted: wanted})
|
96
|
+
Array.wrap(response.body.dig(:get_themes_for_user_response, :get_themes_for_user_result, :themes))
|
97
|
+
end
|
98
|
+
|
99
|
+
def subthemes_for_user(user_hash, theme, owned: '', wanted: '')
|
100
|
+
response = call_api(:get_subthemes_for_user, options: {userHash: user_hash, theme: theme, owned: owned, wanted: wanted})
|
101
|
+
Array.wrap(response.body.dig(:get_subthemes_for_user_response, :get_subthemes_for_user_result, :subthemes))
|
102
|
+
end
|
103
|
+
|
104
|
+
def years_for_user(user_hash, theme, owned: '', wanted: '')
|
105
|
+
response = call_api(:get_years_for_user, options: {userHash: user_hash, theme: theme, owned: owned, wanted: wanted})
|
106
|
+
Array.wrap(response.body.dig(:get_years_for_user_response, :get_years_for_user_result, :years))
|
107
|
+
end
|
108
|
+
|
109
|
+
private
|
110
|
+
|
111
|
+
def call_api(method, options: {})
|
112
|
+
@client.call(method, message: options.merge(apiKey: @api_key))
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Brickset
|
2
|
+
class CollectionTotals
|
3
|
+
attr_accessor :total_sets_owned, :total_distinct_sets_owned, :total_sets_wanted, :total_minifigs_owned, :total_minifigs_wanted
|
4
|
+
# totalSetsOwned Integer
|
5
|
+
# totalDistinctSetsOwned Integer
|
6
|
+
# totalSetsWanted Integer
|
7
|
+
# totalMinifigsOwned Integer
|
8
|
+
# totalMinifigsWanted Integer
|
9
|
+
def initialize(data)
|
10
|
+
@total_sets_owned = data.dig(:total_sets_owned)
|
11
|
+
@total_distinct_sets_owned = data.dig(:total_distinct_sets_owned)
|
12
|
+
@total_sets_wanted = data.dig(:total_sets_wanted)
|
13
|
+
@total_minifigs_owned = data.dig(:total_minifigs_owned)
|
14
|
+
@total_minifigs_wanted = data.dig(:total_minifigs_wanted)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Brickset
|
2
|
+
class MinifigCollection
|
3
|
+
attr_accessor :minifig_number, :owned_in_sets, :owned_loose, :owned_total, :wanted
|
4
|
+
# minifigNumber String
|
5
|
+
# ownedInSets Integer
|
6
|
+
# ownedLoose Integer
|
7
|
+
# ownedTotal Integer
|
8
|
+
# wanted Boolean
|
9
|
+
def initialize(data)
|
10
|
+
@minifig_number = data.dig(:minifig_number)
|
11
|
+
@owned_in_sets = data.dig(:owned_in_sets)
|
12
|
+
@owned_loose = data.dig(:owned_loose)
|
13
|
+
@owned_total = data.dig(:owned_total)
|
14
|
+
@wanted = data.dig(:wanted)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/brickset/set.rb
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
module Brickset
|
2
|
+
class Set
|
3
|
+
attr_accessor :id, :number, :number_variant, :name, :year, :theme, :theme_group, :subtheme, :pieces, :minifigs,
|
4
|
+
:image, :image_filename, :thumbnail_url, :large_thumbnail_url, :image_url, :brickset_url, :released,
|
5
|
+
:owned, :wanted, :qty_owned, :acm_data_count, :owned_by_total, :wanted_by_total, :uk_retail_price,
|
6
|
+
:us_retail_price, :ca_retail_price, :eu_retail_price, :us_date_added_to_sah,
|
7
|
+
:us_date_removed_from_sah, :rating, :review_count, :packaging_type, :availability,
|
8
|
+
:instructions_count, :additional_image_count, :ean, :upc, :last_updated
|
9
|
+
# setID Integer Unique database primary key
|
10
|
+
# number String e.g. 6876
|
11
|
+
# numberVariant Integer e.g. 1
|
12
|
+
# name String
|
13
|
+
# year String
|
14
|
+
# theme String
|
15
|
+
# themeGroup String As used on http://brickset.com/browse/sets
|
16
|
+
# subtheme String
|
17
|
+
# pieces String Integer, or null if pieces not known.
|
18
|
+
# minifigs String Integer, or null if no minifigs or not known.
|
19
|
+
# image Boolean
|
20
|
+
# imageFilename String Returned only if an image is available (image=true)
|
21
|
+
# thumbnailURL String Returned only if an image is available (image=true). Max dimensions 96x72.
|
22
|
+
# largeThumbnailURL String Returned only if an image is available (image=true). Max dimensions 240x180.
|
23
|
+
# imageURL String Returned only if an image is available (image=true). Max dimensions 690x690.
|
24
|
+
# bricksetURL String URL of set details page at Brickset.com
|
25
|
+
# released Boolean
|
26
|
+
# owned Boolean Returned only if userHash or userName is passed to method
|
27
|
+
# wanted Boolean Returned only if userHash or userName is passed to method
|
28
|
+
# qtyOwned Integer Returned only if userHash or userName is passed to method
|
29
|
+
# ACMDataCount Integer Number of ACM records user has modified for this set
|
30
|
+
# userNotes String Returned only if userHash or userName is passed to method
|
31
|
+
# ownedByTotal Integer Number of people who own this set
|
32
|
+
# wantedByTotal Integer Number of people who want this set
|
33
|
+
# UKRetailPrice String
|
34
|
+
# USRetailPrice String
|
35
|
+
# CARetailPrice String
|
36
|
+
# EURetailPrice String
|
37
|
+
# USDateAddedToSAH String The date the set was first sold as shop.LEGO.com in the USA
|
38
|
+
# USDateRemovedFromSAH String The date the set was last sold as shop.LEGO.com in the USA. If USDateAddedToSAH is not blank but this is, it's still available.
|
39
|
+
# rating Decimal
|
40
|
+
# reviewCount Integer
|
41
|
+
# packagingType String
|
42
|
+
# availability String
|
43
|
+
# instructionsCount Integer
|
44
|
+
# additionalImageCount Integer
|
45
|
+
# EAN String
|
46
|
+
# UPC String
|
47
|
+
# description String Returned only with call to getSet
|
48
|
+
# lastUpdated Date
|
49
|
+
|
50
|
+
def initialize(data)
|
51
|
+
@id = data.dig(:set_id).to_i
|
52
|
+
@number = data.dig(:number)
|
53
|
+
@number_variant = data.dig(:number_variant).to_i
|
54
|
+
@name = data.dig(:name)
|
55
|
+
@year = data.dig(:year)
|
56
|
+
@theme = data.dig(:theme)
|
57
|
+
@theme_group = data.dig(:theme_group)
|
58
|
+
@subtheme = data.dig(:subtheme)
|
59
|
+
@pieces = data.dig(:pieces)
|
60
|
+
@minifigs = data.dig(:minifigs)
|
61
|
+
@image = data.dig(:image)
|
62
|
+
@image_filename = data.dig(:image_filename)
|
63
|
+
@thumbnail_url = data.dig(:thumbnail_url)
|
64
|
+
@large_thumbnail_url = data.dig(:large_thumbnail_url)
|
65
|
+
@image_url = data.dig(:image_url)
|
66
|
+
@brickset_url = data.dig(:brickset_url)
|
67
|
+
@released = data.dig(:released)
|
68
|
+
@owned = data.dig(:owned)
|
69
|
+
@wanted = data.dig(:wanted)
|
70
|
+
@qty_owned = data.dig(:qty_owned)
|
71
|
+
@acm_data_count = data.dig(:acm_data_count).to_i
|
72
|
+
@user_notes = data.dig(:user_notes)
|
73
|
+
@owned_by_total = data.dig(:owned_by_total).to_i
|
74
|
+
@wanted_by_total = data.dig(:wanted_by_total).to_i
|
75
|
+
@uk_retail_price = data.dig(:uk_retail_price)
|
76
|
+
@us_retail_price = data.dig(:us_retail_price)
|
77
|
+
@ca_retail_price = data.dig(:ca_retail_price)
|
78
|
+
@eu_retail_price = data.dig(:eu_retail_price)
|
79
|
+
@us_date_added_to_sah = data.dig(:us_date_added_to_sah)
|
80
|
+
@us_date_removed_from_sah = data.dig(:us_date_removed_from_sah)
|
81
|
+
@rating = data.dig(:rating)
|
82
|
+
@review_count = data.dig(:review_count).to_i
|
83
|
+
@packaging_type = data.dig(:packaging_type)
|
84
|
+
@availability = data.dig(:availability)
|
85
|
+
@instructions_count = data.dig(:instructions_count).to_i
|
86
|
+
@additional_image_count = data.dig(:additional_image_count).to_i
|
87
|
+
@ean = data.dig(:ean)
|
88
|
+
@upc = data.dig(:upc)
|
89
|
+
@description = data.dig(:description)
|
90
|
+
@last_updated = data.dig(:last_updated)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Brickset
|
2
|
+
class Subtheme
|
3
|
+
attr_accessor :theme, :name, :set_count, :year_from, :year_to
|
4
|
+
# theme String
|
5
|
+
# subtheme String
|
6
|
+
# setCount Integer
|
7
|
+
# yearFrom Integer Populated by getSubthemes method only
|
8
|
+
# yearTo Integer Populated by getSubthemes method only
|
9
|
+
def initialize(data)
|
10
|
+
@theme = data.dig(:theme)
|
11
|
+
@name = data.dig(:subtheme)
|
12
|
+
@set_count = data.dig(:set_count).to_i
|
13
|
+
@year_from = data.dig(:year_from).to_i
|
14
|
+
@year_to = data.dig(:year_to).to_i
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Brickset
|
2
|
+
class Theme
|
3
|
+
attr_accessor :name, :set_count, :subtheme_count, :year_from, :year_to
|
4
|
+
# theme String
|
5
|
+
# setCount Integer
|
6
|
+
# subthemeCount Integer Populated by getThemes method only
|
7
|
+
# yearFrom Integer Populated by getThemes method only
|
8
|
+
# yearTo Integer Populated by getThemes method only
|
9
|
+
def initialize(data)
|
10
|
+
@name = data.dig(:theme)
|
11
|
+
@set_count = data.dig(:set_count).to_i
|
12
|
+
@subtheme_count = data.dig(:subtheme_count).to_i
|
13
|
+
@year_from = data.dig(:year_from).to_i
|
14
|
+
@year_to = data.dig(:year_to).to_i
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Brickset
|
2
|
+
class Year
|
3
|
+
attr_accessor :theme, :year, :set_count
|
4
|
+
# theme String
|
5
|
+
# year String
|
6
|
+
# setCount Integer
|
7
|
+
def initialize(data)
|
8
|
+
@theme = data.dig(:theme)
|
9
|
+
@year = data.dig(:year)
|
10
|
+
@set_count = data.dig(:set_count).to_i
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
metadata
ADDED
@@ -0,0 +1,164 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: brickset-api
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- schultzy51
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-09-16 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: savon
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.11'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.11'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activesupport
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '4'
|
34
|
+
- - ">="
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '4'
|
37
|
+
type: :runtime
|
38
|
+
prerelease: false
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - "~>"
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '4'
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '4'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: bundler
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '1.12'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '1.12'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: rake
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '10.0'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '10.0'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: rspec
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '3.0'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '3.0'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: pry
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - "~>"
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0.10'
|
99
|
+
type: :development
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - "~>"
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0'
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '0.10'
|
109
|
+
description:
|
110
|
+
email:
|
111
|
+
- schultzy51@gmail.com
|
112
|
+
executables: []
|
113
|
+
extensions: []
|
114
|
+
extra_rdoc_files: []
|
115
|
+
files:
|
116
|
+
- ".gitignore"
|
117
|
+
- ".rspec"
|
118
|
+
- ".ruby-gemset"
|
119
|
+
- ".ruby-version"
|
120
|
+
- ".travis.yml"
|
121
|
+
- Gemfile
|
122
|
+
- LICENSE.txt
|
123
|
+
- README.md
|
124
|
+
- Rakefile
|
125
|
+
- bin/console
|
126
|
+
- bin/setup
|
127
|
+
- brickset-api.gemspec
|
128
|
+
- lib/brickset.rb
|
129
|
+
- lib/brickset/api.rb
|
130
|
+
- lib/brickset/collection_tools.rb
|
131
|
+
- lib/brickset/configuration.rb
|
132
|
+
- lib/brickset/instruction.rb
|
133
|
+
- lib/brickset/minifig_collection.rb
|
134
|
+
- lib/brickset/set.rb
|
135
|
+
- lib/brickset/subtheme.rb
|
136
|
+
- lib/brickset/theme.rb
|
137
|
+
- lib/brickset/version.rb
|
138
|
+
- lib/brickset/year.rb
|
139
|
+
homepage: https://github.com/schultzy51/brickset-api-ruby
|
140
|
+
licenses:
|
141
|
+
- MIT
|
142
|
+
metadata:
|
143
|
+
allowed_push_host: https://rubygems.org
|
144
|
+
post_install_message:
|
145
|
+
rdoc_options: []
|
146
|
+
require_paths:
|
147
|
+
- lib
|
148
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
154
|
+
requirements:
|
155
|
+
- - ">="
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
158
|
+
requirements: []
|
159
|
+
rubyforge_project:
|
160
|
+
rubygems_version: 2.5.1
|
161
|
+
signing_key:
|
162
|
+
specification_version: 4
|
163
|
+
summary: Ruby wrapper for the Brickset.com v2 API
|
164
|
+
test_files: []
|