swapi_dev 0.1.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
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