swapi_dev 0.1.0 → 1.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 +4 -4
- data/.rubocop.yml +26 -0
- data/.rubocop_todo.yml +20 -0
- data/CHANGELOG.md +12 -0
- data/Gemfile +0 -8
- data/README.md +61 -35
- data/lib/swapi_dev/client/client.rb +2 -15
- data/lib/swapi_dev/client/endpoint.rb +4 -28
- data/lib/swapi_dev/client/response.rb +3 -8
- data/lib/swapi_dev/client/uri_builder.rb +1 -1
- data/lib/swapi_dev/serializers/error_serializer.rb +5 -1
- data/lib/swapi_dev/version.rb +1 -1
- data/lib/swapi_dev.rb +24 -57
- data/swapi_dev.gemspec +7 -1
- metadata +96 -8
- data/Gemfile.lock +0 -61
- data/lib/swapi_dev/serializers/wookiee_serializer.rb +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db3388dec99bb707aa6cd6195324026c7d04e5b58cfbefc0497a6a6d3d8ee359
|
4
|
+
data.tar.gz: 44889a89dd93ccbc6130f0d370ab8e98b7f0299beacf22bdadc6954042bda680
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69aba0fa1e974d42bd588329582d1ff1bef97036262ab265397dacc01601bb8c6980fa316d37979c933f477a18489a4d245f545ee70253bd30b4b7419de3f630
|
7
|
+
data.tar.gz: efe9a2c1a9cd253488896607ed8e1d24557d3613502d2f9e7a4fdf86749edebe17e1549943ce9bf2f316a3713106e567a376661ed544bfe189302cd9bef124ff
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
inherit_from: .rubocop_todo.yml
|
2
|
+
|
3
|
+
AllCops:
|
4
|
+
NewCops: enable
|
5
|
+
SuggestExtensions: false
|
6
|
+
TargetRubyVersion: 3
|
7
|
+
Exclude:
|
8
|
+
- 'bin/**/*'
|
9
|
+
- 'db/**/*.rb'
|
10
|
+
- 'node_modules/**/*'
|
11
|
+
- 'vendor/**/*'
|
12
|
+
- 'log/**/*'
|
13
|
+
|
14
|
+
Gemspec/DevelopmentDependencies:
|
15
|
+
EnforcedStyle: gemspec
|
16
|
+
|
17
|
+
Style/StringLiterals:
|
18
|
+
Enabled: true
|
19
|
+
EnforcedStyle: double_quotes
|
20
|
+
|
21
|
+
Style/Documentation:
|
22
|
+
Enabled: false
|
23
|
+
|
24
|
+
Style/StringLiteralsInInterpolation:
|
25
|
+
Enabled: true
|
26
|
+
EnforcedStyle: double_quotes
|
data/.rubocop_todo.yml
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# This configuration was generated by
|
2
|
+
# `rubocop --auto-gen-config`
|
3
|
+
# on 2023-08-04 03:37:09 UTC using RuboCop version 1.55.1.
|
4
|
+
# The point is for the user to remove these configuration records
|
5
|
+
# one by one as the offenses are removed from the code base.
|
6
|
+
# Note that changes in the inspected code, or installation of new
|
7
|
+
# versions of RuboCop, may require this file to be generated again.
|
8
|
+
|
9
|
+
# Offense count: 3
|
10
|
+
# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
|
11
|
+
Metrics/MethodLength:
|
12
|
+
Max: 36
|
13
|
+
|
14
|
+
# Offense count: 1
|
15
|
+
# This cop supports safe autocorrection (--autocorrect).
|
16
|
+
# Configuration parameters: EnforcedStyle.
|
17
|
+
# SupportedStyles: implicit, explicit
|
18
|
+
Style/RescueStandardError:
|
19
|
+
Exclude:
|
20
|
+
- 'lib/swapi_dev/serializers/error_serializer.rb'
|
data/CHANGELOG.md
CHANGED
@@ -3,3 +3,15 @@
|
|
3
3
|
## [0.1.0] - 2021-12-29
|
4
4
|
|
5
5
|
- Initial release
|
6
|
+
|
7
|
+
## [1.0.0] - 2023-08-14
|
8
|
+
|
9
|
+
- Update minimun ruby version (3.0.0)
|
10
|
+
- Update development dependencies
|
11
|
+
- Change linter gem
|
12
|
+
- apply some KISS coding 😘
|
13
|
+
- update readme
|
14
|
+
- remove not necessary methods
|
15
|
+
## [1.0.1] - 2023-08-14
|
16
|
+
|
17
|
+
- update release date 😅
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
A Ruby wrapper for the Star Wars API
|
4
4
|
|
5
|
+
# RubyGem
|
6
|
+
|
7
|
+
[https://rubygems.org/gems/swapi_dev](https://rubygems.org/gems/swapi_dev)
|
8
|
+
|
5
9
|
|
6
10
|
# Api documentation
|
7
11
|
here is the documentation of [The Star War API](https://swapi.dev/)
|
@@ -31,56 +35,78 @@ require "swapi_dev"
|
|
31
35
|
|
32
36
|
## Methods
|
33
37
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
### Films
|
38
|
+
You will find methods for 6 diferent Resources, all of them with the same behavior:
|
39
|
+
- Planets
|
40
|
+
- Starships
|
41
|
+
- Vehicles
|
42
|
+
- People
|
43
|
+
- Films
|
44
|
+
- Species
|
45
|
+
#### Example using People
|
44
46
|
|
45
47
|
```ruby
|
46
|
-
SwapiDev.
|
47
|
-
SwapiDev.
|
48
|
-
SwapiDev.film_title(title)
|
48
|
+
SwapiDev.people # accepts: format, page, search
|
49
|
+
SwapiDev.people_id(some_id) # accepts: format
|
49
50
|
```
|
50
51
|
|
51
|
-
|
52
|
+
## Searching
|
53
|
+
All searches will use case-insensitive partial matches on the set of search fields.
|
52
54
|
|
53
55
|
```ruby
|
54
|
-
|
55
|
-
SwapiDev.
|
56
|
-
|
56
|
+
# people search
|
57
|
+
SwapiDev.people(search: "Luke Skywalker")
|
58
|
+
# vehicle search
|
59
|
+
SwapiDev.vehicle(search: "Sand Crawler")
|
57
60
|
```
|
58
61
|
|
59
|
-
|
62
|
+
To see the set of search fields for each resource, check the table below:
|
63
|
+
|
64
|
+
<table>
|
65
|
+
<tr>
|
66
|
+
<td><b>Resource</b></td>
|
67
|
+
<td><b>Fields</b></td>
|
68
|
+
</tr>
|
69
|
+
<tr>
|
70
|
+
<td>People</td>
|
71
|
+
<td>name</td>
|
72
|
+
</tr>
|
73
|
+
<tr>
|
74
|
+
<td>Films</td>
|
75
|
+
<td>title</td>
|
76
|
+
</tr>
|
77
|
+
<tr>
|
78
|
+
<td>Starships</td>
|
79
|
+
<td>name, model</td>
|
80
|
+
</tr>
|
81
|
+
<tr>
|
82
|
+
<td>Vehicles</td>
|
83
|
+
<td>name, model</td>
|
84
|
+
</tr>
|
85
|
+
<tr>
|
86
|
+
<td>Species</td>
|
87
|
+
<td>name</td>
|
88
|
+
</tr>
|
89
|
+
<tr>
|
90
|
+
<td>Planets</td>
|
91
|
+
<td>name</td>
|
92
|
+
</tr>
|
93
|
+
</table>
|
94
|
+
|
95
|
+
## Pagination
|
96
|
+
You can pass a `page` argument if you want to get specific page.
|
60
97
|
|
61
98
|
```ruby
|
62
|
-
SwapiDev.
|
63
|
-
SwapiDev.specie_id(id)
|
64
|
-
SwapiDev.specie_name(name)
|
99
|
+
SwapiDev.people(page: 2)
|
65
100
|
```
|
66
101
|
|
67
|
-
|
68
|
-
|
102
|
+
## Format
|
103
|
+
This encoding is identical to JSON except with wookiee translations. All methods accept wookiee format keyword.
|
69
104
|
```ruby
|
70
|
-
SwapiDev.
|
71
|
-
SwapiDev.
|
72
|
-
SwapiDev.
|
73
|
-
SwapiDev.starship_model(model)
|
105
|
+
SwapiDev.people(format: :wookie)
|
106
|
+
SwapiDev.people(search: "Luke", format: :wookie)
|
107
|
+
SwapiDev.people_id(1, format: :wookie)
|
74
108
|
```
|
75
109
|
|
76
|
-
### Vehicles
|
77
|
-
|
78
|
-
```ruby
|
79
|
-
SwapiDev.vehicle_all
|
80
|
-
SwapiDev.vehicle_id(id)
|
81
|
-
SwapiDev.vehicle_name(name)
|
82
|
-
SwapiDev.vehicle_model(model)
|
83
|
-
```
|
84
110
|
|
85
111
|
## Contributing
|
86
112
|
|
@@ -9,19 +9,7 @@ module SwapiDev
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def get(resource, **args)
|
12
|
-
request(resource, **args) {
|
13
|
-
end
|
14
|
-
|
15
|
-
def post(resource, **args)
|
16
|
-
request(resource, **args) { |uri| Net::HTTP::Post.new(uri) }
|
17
|
-
end
|
18
|
-
|
19
|
-
def put(resource, **args)
|
20
|
-
request(resource, **args) { |uri| Net::HTTP::Put.new(uri) }
|
21
|
-
end
|
22
|
-
|
23
|
-
def delete(resource, **args)
|
24
|
-
request(resource, **args) { |uri| Net::HTTP::Delete.new(uri) }
|
12
|
+
request(resource, **args) { Net::HTTP::Get.new(_1) }
|
25
13
|
end
|
26
14
|
|
27
15
|
private
|
@@ -32,10 +20,9 @@ module SwapiDev
|
|
32
20
|
uri = uri_builder.build(resource, **args)
|
33
21
|
http_response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
|
34
22
|
request = yield(uri)
|
35
|
-
request["Content-Type"] = "application/json" if request.instance_of?(Net::HTTP::Put) || request.instance_of?(Net::HTTP::Post)
|
36
23
|
http.request(request)
|
37
24
|
end
|
38
|
-
Response.handle(http_response
|
25
|
+
Response.handle(http_response)
|
39
26
|
end
|
40
27
|
end
|
41
28
|
end
|
@@ -6,36 +6,12 @@ module SwapiDev
|
|
6
6
|
@client = Client.new("https://swapi.dev/api/")
|
7
7
|
end
|
8
8
|
|
9
|
-
def all
|
10
|
-
|
11
|
-
return response if response[:next].nil?
|
12
|
-
|
13
|
-
range = (2..(response[:count] / 10.0).ceil)
|
14
|
-
response[:results] + AsyncStream.new(range).sum { |page| list(page) }
|
15
|
-
end
|
16
|
-
|
17
|
-
def list(page = nil)
|
18
|
-
client.get(resource, page: page)[:results]
|
19
|
-
end
|
20
|
-
|
21
|
-
def find(id)
|
22
|
-
client.get("#{resource}/#{id}")
|
23
|
-
end
|
24
|
-
|
25
|
-
def search(field)
|
26
|
-
client.get(resource, search: field.to_s)
|
27
|
-
end
|
28
|
-
|
29
|
-
def update(**data)
|
30
|
-
client.put(resource, **data)
|
31
|
-
end
|
32
|
-
|
33
|
-
def create(**data)
|
34
|
-
client.post(resource, **data)
|
9
|
+
def all(**args)
|
10
|
+
client.get("#{resource}/", **args)
|
35
11
|
end
|
36
12
|
|
37
|
-
def
|
38
|
-
client.
|
13
|
+
def find_id(id, **args)
|
14
|
+
client.get("#{resource}/#{id}/", **args)
|
39
15
|
end
|
40
16
|
|
41
17
|
private
|
@@ -2,14 +2,9 @@
|
|
2
2
|
|
3
3
|
module SwapiDev
|
4
4
|
class Response
|
5
|
-
def self.handle(http_response
|
6
|
-
|
7
|
-
|
8
|
-
case http_response
|
9
|
-
when Net::HTTPSuccess
|
10
|
-
serializer.call(http_response.body)
|
11
|
-
when Net::HTTPOK
|
12
|
-
serializer.call(http_response.body)
|
5
|
+
def self.handle(http_response)
|
6
|
+
if [Net::HTTPSuccess, Net::HTTPOK].member? http_response.class
|
7
|
+
JsonSerializer.call(http_response.body)
|
13
8
|
else
|
14
9
|
ErrorSerializer.call(http_response)
|
15
10
|
end
|
@@ -8,7 +8,7 @@ module SwapiDev
|
|
8
8
|
|
9
9
|
def build(resource, **options)
|
10
10
|
uri = URI.join(@base_url, resource)
|
11
|
-
uri.query = URI.encode_www_form(options.slice(:
|
11
|
+
uri.query = URI.encode_www_form(options.slice(:search, :page, :format))
|
12
12
|
yield if block_given?
|
13
13
|
uri
|
14
14
|
end
|
data/lib/swapi_dev/version.rb
CHANGED
data/lib/swapi_dev.rb
CHANGED
@@ -11,7 +11,6 @@ require_relative "swapi_dev/client/async_stream"
|
|
11
11
|
require_relative "swapi_dev/serializers/base_serializer"
|
12
12
|
require_relative "swapi_dev/serializers/error_serializer"
|
13
13
|
require_relative "swapi_dev/serializers/json_serializer"
|
14
|
-
require_relative "swapi_dev/serializers/wookiee_serializer"
|
15
14
|
|
16
15
|
require_relative "swapi_dev/resources/people"
|
17
16
|
require_relative "swapi_dev/resources/starship"
|
@@ -23,83 +22,51 @@ require_relative "swapi_dev/resources/specie"
|
|
23
22
|
module SwapiDev
|
24
23
|
class Error < StandardError; end
|
25
24
|
|
26
|
-
def self.
|
27
|
-
People.new.all
|
25
|
+
def self.people(**args)
|
26
|
+
People.new.all(**args)
|
28
27
|
end
|
29
28
|
|
30
|
-
def self.people_id(id)
|
31
|
-
People.new.
|
29
|
+
def self.people_id(id, **args)
|
30
|
+
People.new.find_id(id, **args.slice(:format))
|
32
31
|
end
|
33
32
|
|
34
|
-
def self.
|
35
|
-
|
33
|
+
def self.films(**args)
|
34
|
+
Film.new.all(**args)
|
36
35
|
end
|
37
36
|
|
38
|
-
def self.
|
39
|
-
Film.new.
|
37
|
+
def self.film_id(id, **args)
|
38
|
+
Film.new.find_id(id, **args.slice(:format))
|
40
39
|
end
|
41
40
|
|
42
|
-
def self.
|
43
|
-
|
41
|
+
def self.planets(**args)
|
42
|
+
Planet.new.all(**args)
|
44
43
|
end
|
45
44
|
|
46
|
-
def self.
|
47
|
-
|
45
|
+
def self.planet_id(id, **args)
|
46
|
+
Planet.new.find_id(id, **args.slice(:format))
|
48
47
|
end
|
49
48
|
|
50
|
-
def self.
|
51
|
-
|
49
|
+
def self.species(**args)
|
50
|
+
Specie.new.all(**args)
|
52
51
|
end
|
53
52
|
|
54
|
-
def self.
|
55
|
-
|
53
|
+
def self.specie_id(id, **args)
|
54
|
+
Specie.new.find_id(id, **args.slice(:format))
|
56
55
|
end
|
57
56
|
|
58
|
-
def self.
|
59
|
-
|
57
|
+
def self.starships(**args)
|
58
|
+
Starship.new.all(**args)
|
60
59
|
end
|
61
60
|
|
62
|
-
def self.
|
63
|
-
|
61
|
+
def self.starship_id(id, **args)
|
62
|
+
Starship.new.find_id(id, **args.slice(:format))
|
64
63
|
end
|
65
64
|
|
66
|
-
def self.
|
67
|
-
|
65
|
+
def self.vehicles(**args)
|
66
|
+
Vehicle.new.all(**args)
|
68
67
|
end
|
69
68
|
|
70
|
-
def self.
|
71
|
-
|
72
|
-
end
|
73
|
-
|
74
|
-
def self.starship_all
|
75
|
-
Starship.new.all
|
76
|
-
end
|
77
|
-
|
78
|
-
def self.starship_id(id)
|
79
|
-
Starship.new.find(id)
|
80
|
-
end
|
81
|
-
|
82
|
-
def self.starship_name(name)
|
83
|
-
Starship.new.search(name)
|
84
|
-
end
|
85
|
-
|
86
|
-
def self.starship_model(model)
|
87
|
-
Starship.new.search(model)
|
88
|
-
end
|
89
|
-
|
90
|
-
def self.vehicle_all
|
91
|
-
Vehicle.new.all
|
92
|
-
end
|
93
|
-
|
94
|
-
def self.vehicle_id(id)
|
95
|
-
Vehicle.new.find(id)
|
96
|
-
end
|
97
|
-
|
98
|
-
def self.vehicle_name(name)
|
99
|
-
Vehicle.new.search(name)
|
100
|
-
end
|
101
|
-
|
102
|
-
def self.vehicle_model(model)
|
103
|
-
Vehicle.new.search(model)
|
69
|
+
def self.vehicle_id(id, **args)
|
70
|
+
Vehicle.new.find_id(id, **args.slice(:format))
|
104
71
|
end
|
105
72
|
end
|
data/swapi_dev.gemspec
CHANGED
@@ -12,7 +12,13 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.description = "Ruby wrapper for The Star Wars API"
|
13
13
|
spec.homepage = "https://github.com/Eduardo-Lpz/swapi_dev"
|
14
14
|
spec.license = "MIT"
|
15
|
-
spec.required_ruby_version =
|
15
|
+
spec.required_ruby_version = "~> 3.0.0"
|
16
|
+
|
17
|
+
spec.add_development_dependency "minitest", "~> 5.19"
|
18
|
+
spec.add_development_dependency "rake", "~> 13.0", ">= 13.0.6"
|
19
|
+
spec.add_development_dependency "rubocop", "~> 1.55", ">= 1.55.1"
|
20
|
+
spec.add_development_dependency "simplecov", "~> 0.22.0"
|
21
|
+
spec.add_development_dependency "webmock", "~> 3.18", ">= 3.18.1"
|
16
22
|
|
17
23
|
# spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
|
18
24
|
|
metadata
CHANGED
@@ -1,15 +1,103 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: swapi_dev
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eduardo Lopez
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
11
|
+
date: 2023-08-14 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: minitest
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '5.19'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '5.19'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '13.0'
|
34
|
+
- - ">="
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: 13.0.6
|
37
|
+
type: :development
|
38
|
+
prerelease: false
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - "~>"
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '13.0'
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 13.0.6
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rubocop
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '1.55'
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 1.55.1
|
57
|
+
type: :development
|
58
|
+
prerelease: false
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - "~>"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '1.55'
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 1.55.1
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: simplecov
|
69
|
+
requirement: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - "~>"
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 0.22.0
|
74
|
+
type: :development
|
75
|
+
prerelease: false
|
76
|
+
version_requirements: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - "~>"
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: 0.22.0
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: webmock
|
83
|
+
requirement: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - "~>"
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '3.18'
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 3.18.1
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "~>"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '3.18'
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: 3.18.1
|
13
101
|
description: Ruby wrapper for The Star Wars API
|
14
102
|
email:
|
15
103
|
- jramos@arkusnexus.com
|
@@ -18,10 +106,11 @@ extensions: []
|
|
18
106
|
extra_rdoc_files: []
|
19
107
|
files:
|
20
108
|
- ".gitignore"
|
109
|
+
- ".rubocop.yml"
|
110
|
+
- ".rubocop_todo.yml"
|
21
111
|
- CHANGELOG.md
|
22
112
|
- CODE_OF_CONDUCT.md
|
23
113
|
- Gemfile
|
24
|
-
- Gemfile.lock
|
25
114
|
- LICENSE.txt
|
26
115
|
- README.md
|
27
116
|
- Rakefile
|
@@ -42,7 +131,6 @@ files:
|
|
42
131
|
- lib/swapi_dev/serializers/base_serializer.rb
|
43
132
|
- lib/swapi_dev/serializers/error_serializer.rb
|
44
133
|
- lib/swapi_dev/serializers/json_serializer.rb
|
45
|
-
- lib/swapi_dev/serializers/wookiee_serializer.rb
|
46
134
|
- lib/swapi_dev/version.rb
|
47
135
|
- swapi_dev.gemspec
|
48
136
|
homepage: https://github.com/Eduardo-Lpz/swapi_dev
|
@@ -56,16 +144,16 @@ require_paths:
|
|
56
144
|
- lib
|
57
145
|
required_ruby_version: !ruby/object:Gem::Requirement
|
58
146
|
requirements:
|
59
|
-
- - "
|
147
|
+
- - "~>"
|
60
148
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
149
|
+
version: 3.0.0
|
62
150
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
151
|
requirements:
|
64
152
|
- - ">="
|
65
153
|
- !ruby/object:Gem::Version
|
66
154
|
version: '0'
|
67
155
|
requirements: []
|
68
|
-
rubygems_version: 3.2.
|
156
|
+
rubygems_version: 3.2.3
|
69
157
|
signing_key:
|
70
158
|
specification_version: 4
|
71
159
|
summary: SWAPI Wrapper
|
data/Gemfile.lock
DELETED
@@ -1,61 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
swapi_dev (0.1.0)
|
5
|
-
|
6
|
-
GEM
|
7
|
-
remote: https://rubygems.org/
|
8
|
-
specs:
|
9
|
-
addressable (2.8.0)
|
10
|
-
public_suffix (>= 2.0.2, < 5.0)
|
11
|
-
ast (2.4.2)
|
12
|
-
crack (0.4.5)
|
13
|
-
rexml
|
14
|
-
hashdiff (1.0.1)
|
15
|
-
minitest (5.15.0)
|
16
|
-
parallel (1.21.0)
|
17
|
-
parser (3.0.3.2)
|
18
|
-
ast (~> 2.4.1)
|
19
|
-
public_suffix (4.0.6)
|
20
|
-
rainbow (3.0.0)
|
21
|
-
rake (13.0.6)
|
22
|
-
regexp_parser (2.2.0)
|
23
|
-
rexml (3.2.5)
|
24
|
-
rubocop (1.23.0)
|
25
|
-
parallel (~> 1.10)
|
26
|
-
parser (>= 3.0.0.0)
|
27
|
-
rainbow (>= 2.2.2, < 4.0)
|
28
|
-
regexp_parser (>= 1.8, < 3.0)
|
29
|
-
rexml
|
30
|
-
rubocop-ast (>= 1.12.0, < 2.0)
|
31
|
-
ruby-progressbar (~> 1.7)
|
32
|
-
unicode-display_width (>= 1.4.0, < 3.0)
|
33
|
-
rubocop-ast (1.15.0)
|
34
|
-
parser (>= 3.0.1.1)
|
35
|
-
rubocop-performance (1.12.0)
|
36
|
-
rubocop (>= 1.7.0, < 2.0)
|
37
|
-
rubocop-ast (>= 0.4.0)
|
38
|
-
ruby-progressbar (1.11.0)
|
39
|
-
standard (1.5.0)
|
40
|
-
rubocop (= 1.23.0)
|
41
|
-
rubocop-performance (= 1.12.0)
|
42
|
-
standardrb (1.0.0)
|
43
|
-
standard
|
44
|
-
unicode-display_width (2.1.0)
|
45
|
-
webmock (3.14.0)
|
46
|
-
addressable (>= 2.8.0)
|
47
|
-
crack (>= 0.3.2)
|
48
|
-
hashdiff (>= 0.4.0, < 2.0.0)
|
49
|
-
|
50
|
-
PLATFORMS
|
51
|
-
x86_64-darwin-21
|
52
|
-
|
53
|
-
DEPENDENCIES
|
54
|
-
minitest (~> 5.0)
|
55
|
-
rake (~> 13.0)
|
56
|
-
standardrb (~> 1.0)
|
57
|
-
swapi_dev!
|
58
|
-
webmock
|
59
|
-
|
60
|
-
BUNDLED WITH
|
61
|
-
2.2.15
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "json"
|
4
|
-
|
5
|
-
module SwapiDev
|
6
|
-
class WookieeSerializer < BaseSerializer
|
7
|
-
def self.call(content)
|
8
|
-
# this encoding is identical to JSON except with wookiee translations.
|
9
|
-
# for some reason json does not work
|
10
|
-
# TODO Wookie transalation
|
11
|
-
JSON.parse(content, symbolize_names: true)
|
12
|
-
rescue JSON::ParserError
|
13
|
-
nil
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|