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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '009142a54f57b5635f5dfdd7c4b91a78929c64826e4db1ce7feb7821a6f8447d'
4
- data.tar.gz: c9394eb3c74fe0a50c66159fd29c35c829532df41d087330b9da169f4432e84f
3
+ metadata.gz: db3388dec99bb707aa6cd6195324026c7d04e5b58cfbefc0497a6a6d3d8ee359
4
+ data.tar.gz: 44889a89dd93ccbc6130f0d370ab8e98b7f0299beacf22bdadc6954042bda680
5
5
  SHA512:
6
- metadata.gz: a223909ee91cc5d85f42db39d0188a1bdb0624e518a7070d0ed125a88453ed265f09ae5af680d263f6f5f6da9dde66100039700bb64c83931a994ed5b912588a
7
- data.tar.gz: dd33feb0faf9e65be53a0c3200ff4db27ceea15e21c8e349c299432faf9a9dc46664db898b63fef933220494a67f2efeef7d1234089e83040cfb426fa0818b65
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
@@ -4,11 +4,3 @@ source "https://rubygems.org"
4
4
 
5
5
  # Specify your gem's dependencies in swapi_dev.gemspec
6
6
  gemspec
7
-
8
- gem "minitest", "~> 5.0"
9
- gem "rake", "~> 13.0"
10
- gem "standardrb", "~> 1.0"
11
-
12
- group :test do
13
- gem "webmock"
14
- end
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
- There is 6 diferents statistics to request
35
- ### People
36
-
37
- ```ruby
38
- SwapiDev.people_all
39
- SwapiDev.people_id(id)
40
- SwapiDev.people_name(name)
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.film_all
47
- SwapiDev.film_id(id)
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
- ### Planets
52
+ ## Searching
53
+ All searches will use case-insensitive partial matches on the set of search fields.
52
54
 
53
55
  ```ruby
54
- SwapiDev.planet_all
55
- SwapiDev.planet_id(id)
56
- SwapiDev.planet_name(name)
56
+ # people search
57
+ SwapiDev.people(search: "Luke Skywalker")
58
+ # vehicle search
59
+ SwapiDev.vehicle(search: "Sand Crawler")
57
60
  ```
58
61
 
59
- ### Species
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.specie_all
63
- SwapiDev.specie_id(id)
64
- SwapiDev.specie_name(name)
99
+ SwapiDev.people(page: 2)
65
100
  ```
66
101
 
67
- ### Starships
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.starship_all
71
- SwapiDev.starship_id(id)
72
- SwapiDev.starship_name(name)
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) { |uri| Net::HTTP::Get.new(uri) }
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, **args)
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
- response = client.get(resource)
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 delete(**data)
38
- client.delete(resource, **data)
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, **args)
6
- serializer = args[:format] == "wookiee" ? WookieeSerializer : JsonSerializer
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(:format, :search, :page))
11
+ uri.query = URI.encode_www_form(options.slice(:search, :page, :format))
12
12
  yield if block_given?
13
13
  uri
14
14
  end
@@ -12,7 +12,11 @@ module SwapiDev
12
12
  }
13
13
  )
14
14
  rescue
15
- nil
15
+ {
16
+ message: content.message,
17
+ code: content.code,
18
+ detail: "Try without format or page"
19
+ }
16
20
  end
17
21
  end
18
22
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SwapiDev
4
- VERSION = "0.1.0"
4
+ VERSION = "1.0.1"
5
5
  end
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.people_all
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.find(id)
29
+ def self.people_id(id, **args)
30
+ People.new.find_id(id, **args.slice(:format))
32
31
  end
33
32
 
34
- def self.people_name(name)
35
- People.new.search(name)
33
+ def self.films(**args)
34
+ Film.new.all(**args)
36
35
  end
37
36
 
38
- def self.film_all
39
- Film.new.all
37
+ def self.film_id(id, **args)
38
+ Film.new.find_id(id, **args.slice(:format))
40
39
  end
41
40
 
42
- def self.film_id(id)
43
- Film.new.find(id)
41
+ def self.planets(**args)
42
+ Planet.new.all(**args)
44
43
  end
45
44
 
46
- def self.film_title(name)
47
- Film.new.search(name)
45
+ def self.planet_id(id, **args)
46
+ Planet.new.find_id(id, **args.slice(:format))
48
47
  end
49
48
 
50
- def self.planet_all
51
- Planet.new.all
49
+ def self.species(**args)
50
+ Specie.new.all(**args)
52
51
  end
53
52
 
54
- def self.planet_id(id)
55
- Planet.new.find(id)
53
+ def self.specie_id(id, **args)
54
+ Specie.new.find_id(id, **args.slice(:format))
56
55
  end
57
56
 
58
- def self.planet_name(name)
59
- Planet.new.search(name)
57
+ def self.starships(**args)
58
+ Starship.new.all(**args)
60
59
  end
61
60
 
62
- def self.specie_all
63
- Specie.new.all
61
+ def self.starship_id(id, **args)
62
+ Starship.new.find_id(id, **args.slice(:format))
64
63
  end
65
64
 
66
- def self.specie_id(id)
67
- Specie.new.find(id)
65
+ def self.vehicles(**args)
66
+ Vehicle.new.all(**args)
68
67
  end
69
68
 
70
- def self.specie_name(name)
71
- Specie.new.search(name)
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 = Gem::Requirement.new(">= 2.6.0")
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.0
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: 2021-12-30 00:00:00.000000000 Z
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: 2.6.0
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.15
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