sw_info 0.0.1 → 1.0.4

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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sw_info.rb +154 -64
  3. data/lib/swapi.json +328 -0
  4. metadata +25 -13
  5. data/test/test_sw_info.rb +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: befd3215ad86efdcd0182b084d13bb8e9e2f80c4073598390748dae60e1f8135
4
- data.tar.gz: dcb9cb1c6ad5e3eefcb2a3a1ab8818d439a91079483f5b24092bb7b1d9f1ab98
3
+ metadata.gz: ad9210c3b37fa6604ae1df5bc4487d0033827e185d2e2b3195e98df7e34b0049
4
+ data.tar.gz: 2a8036934c02bd6322e9454f410a11dac535d44dcf78ea8d776a42622289eb62
5
5
  SHA512:
6
- metadata.gz: a3e4b15a67866debdef2af0496a67a77ed630cbb8c09a452e157da39e97dfec2f32fd1950a2444b80a14f32e279b87d65f9de432ea276ddaa30864954d464196
7
- data.tar.gz: 722ede6d6be26f6e5dcef51604fba39a9a6f6312b8511e71abbb825afdcddbeab982b486728866940ecd5f97581b7efaa13c7eacaabc2699dca11584c0858993
6
+ metadata.gz: d1fa8308472c0226a3d5121d0916118affc935d6f150ce3903ed5888e0c35214e2cda4c30c8085c2bb56de975b273724b4e8c288ea7afa1b6f06beea13d3f545
7
+ data.tar.gz: e3a00f6f4a86ac8a88b58d787751a84721fe78352c1d7472256f56435b0254e95b1901d2ece294f341893bc1f7ecef07d5e7ccd7990dbb162b71345449bdc220
data/lib/sw_info.rb CHANGED
@@ -11,95 +11,185 @@ require 'debug'
11
11
 
12
12
  # https://github.com/ruby/debug
13
13
 
14
- #Cargo toda la data de swapi en la variable JSONDATA como hash
15
- =begin JSONDATA = JSON.load_file('./swapi.json').each_with_object({}) do |(key, value), hash|
16
- hash[key] = value
17
- end
18
- =end
14
+ # Cargo toda la data de swapi en la variable JSONDATA como hash
15
+ # JSONDATA = JSON.load_file('./swapi.json').each_with_object({}) do |(key, value), hash|
16
+ # hash[key] = value
17
+ # end
19
18
 
20
19
  JSONDATA = File.expand_path('swapi.json', __dir__)
21
20
 
22
- DATA = JSON.load_file(JSONDATA).each_with_object({}) do |(key, value), hash|
23
- hash[key] = value
21
+ DATA = JSON.load_file(JSONDATA)
22
+
23
+ class Pal
24
+ attr_accessor :data
25
+
26
+ def to_s
27
+ debugger
28
+ name
29
+ end
30
+
31
+ def id
32
+ @data['id']
33
+ end
34
+
35
+ def name
36
+ @data['name']
37
+ end
38
+
39
+ def self.find(id); end
40
+
41
+ def self.all; end
42
+
43
+ def self.search_for_all(key)
44
+ DATA[key].map { |j| new(j) }
45
+ end
46
+
47
+ def self.search_for_id(key, id)
48
+ variable = DATA[key].find { |j| j['id'] == id }
49
+ new(variable)
50
+ end
51
+
52
+ def initialize(data)
53
+ @data = data
54
+ end
24
55
  end
25
56
 
26
- #En esta clase voy a querer acceder a esa data dependiendo de la key que me pase
57
+ # En esta clase voy a querer acceder a esa data dependiendo de la key que me pase
27
58
  # y mostrar el atributo que se pida según el método llamado
28
- class Person
29
- attr_accessor :data
59
+ class Person < Pal
60
+ attr_accessor :data, :alias
30
61
 
31
- def initialize(data)
32
- @data = data
33
- end
62
+ def birth_year
63
+ @data['birth_year']
64
+ end
34
65
 
35
- def name
36
- @data['name']
37
- end
66
+ def eye_color
67
+ @data['eye_color']
68
+ end
38
69
 
39
- def birth_year
40
- @data['birth_year']
41
- end
70
+ def hair_color
71
+ @data['hair_color']
72
+ end
42
73
 
43
- def eye_color
44
- @data['eye_color']
45
- end
74
+ def skin_color
75
+ @data['skin_color']
76
+ end
46
77
 
47
- def hair_color
48
- @data['hair_color']
49
- end
78
+ def height
79
+ @data['height']
80
+ end
50
81
 
51
- def skin_color
52
- @data['skin_color']
53
- end
82
+ def mass
83
+ @data['mass']
84
+ end
54
85
 
55
- def id
56
- @data['id']
57
- end
58
-
59
- def height
60
- @data['height']
61
- end
86
+ def gender
87
+ @data['gender']
88
+ end
89
+ end
62
90
 
63
- def mass
64
- @data['mass']
65
- end
91
+ class Starship < Pal
92
+ attr_accessor :data
66
93
 
67
- def gender
68
- @data['gender']
69
- end
94
+ def starships
95
+ @data['starships']
96
+ end
70
97
 
71
- def vehicles
98
+ def model
99
+ @data['model']
100
+ end
72
101
 
102
+ def manufacturer
103
+ @data['manufacturer']
104
+ end
73
105
 
74
- def self.all
75
- debugger
76
- end
77
- end
106
+ def cost_in_credits
107
+ @data['cost_in_credits']
108
+ end
78
109
 
79
- class Starship
80
- attr_accessor :data
110
+ def length
111
+ @data['length']
112
+ end
81
113
 
82
- def initialize(data)
83
- @data = data
84
- end
114
+ def max_atmosphering_speed
115
+ @data['max_atmosphering_speed']
116
+ end
85
117
 
86
- def star
87
- @data['starship']
88
- end
118
+ def crew
119
+ @data['crew']
120
+ end
89
121
 
90
- end
122
+ def passengers
123
+ @data['passengers']
124
+ end
125
+
126
+ def cargo_capacity
127
+ @data['cargo_capacity']
128
+ end
91
129
 
92
- class Vehicle
93
- attr_accessor :data
130
+ def consumables
131
+ @data['consumables']
132
+ end
94
133
 
95
- def initialize(data)
96
- @data = data
97
- end
134
+ def hyperdrive_rating
135
+ @data['hyperdrive_rating']
136
+ end
98
137
 
99
- def vehicle
100
- @data['vehicles']
101
- end
138
+ def MGLT
139
+ @data['MGLT']
140
+ end
141
+
142
+ def starship_class
143
+ @data['starship_class']
144
+ end
102
145
  end
103
146
 
147
+ class Vehicle < Pal
148
+ attr_accessor :data
149
+
150
+ def vehicles
151
+ @data['vehicles']
152
+ end
153
+
154
+ def model
155
+ @data['model']
156
+ end
157
+
158
+ def manufacturer
159
+ @data['manufacturer']
160
+ end
161
+
162
+ def cost_in_credits
163
+ @data['cost_in_credits']
164
+ end
165
+
166
+ def length
167
+ @data['length']
168
+ end
169
+
170
+ def max_atmosphering_speed
171
+ @data['max_atmosphering_speed']
172
+ end
173
+
174
+ def crew
175
+ @data['crew']
176
+ end
177
+
178
+ def passengers
179
+ @data['passengers']
180
+ end
181
+
182
+ def cargo_capacity
183
+ @data['cargo_capacity']
184
+ end
185
+
186
+ def consumables
187
+ @data['consumables']
188
+ end
189
+
190
+ def vehicle_class
191
+ @data['vehicle_class']
192
+ end
193
+ end
104
194
 
105
- puts "Hi! I'm Luke Skywalker, I'm your SWAPI helper!"
195
+ puts Person.search_for_id('people', 1).to_json
data/lib/swapi.json ADDED
@@ -0,0 +1,328 @@
1
+ {
2
+ "people": [
3
+ {
4
+ "id": 1,
5
+ "name": "Luke Skywalker",
6
+ "height": "172",
7
+ "mass": "77",
8
+ "hair_color": "blond",
9
+ "skin_color": "fair",
10
+ "eye_color": "blue",
11
+ "birth_year": "19BBY",
12
+ "gender": "male",
13
+ "vehicles": [
14
+ 14,
15
+ 30
16
+ ],
17
+ "starships": [
18
+ 12,
19
+ 22
20
+ ]
21
+ },
22
+ {
23
+ "id": 2,
24
+ "name": "C-3PO",
25
+ "height": "167",
26
+ "mass": "75",
27
+ "hair_color": "n/a",
28
+ "skin_color": "gold",
29
+ "eye_color": "yellow",
30
+ "birth_year": "112BBY",
31
+ "gender": "n/a",
32
+ "vehicles": [],
33
+ "starships": []
34
+ },
35
+ {
36
+ "id": 3,
37
+ "name": "R2-D2",
38
+ "height": "96",
39
+ "mass": "32",
40
+ "hair_color": "n/a",
41
+ "skin_color": "white, blue",
42
+ "eye_color": "red",
43
+ "birth_year": "33BBY",
44
+ "gender": "n/a",
45
+ "vehicles": [],
46
+ "starships": []
47
+ },
48
+ {
49
+ "id": 4,
50
+ "name": "Darth Vader",
51
+ "height": "202",
52
+ "mass": "136",
53
+ "hair_color": "none",
54
+ "skin_color": "white",
55
+ "eye_color": "yellow",
56
+ "birth_year": "41.9BBY",
57
+ "gender": "male",
58
+ "vehicles": [],
59
+ "starships": [
60
+ 13
61
+ ]
62
+ },
63
+ {
64
+ "id": 5,
65
+ "name": "Leia Organa",
66
+ "height": "150",
67
+ "mass": "49",
68
+ "hair_color": "brown",
69
+ "skin_color": "light",
70
+ "eye_color": "brown",
71
+ "birth_year": "19BBY",
72
+ "gender": "female",
73
+ "vehicles": [
74
+ 30
75
+ ],
76
+ "starships": []
77
+ },
78
+ {
79
+ "id": 6,
80
+ "name": "Owen Lars",
81
+ "height": "178",
82
+ "mass": "120",
83
+ "hair_color": "brown, grey",
84
+ "skin_color": "light",
85
+ "eye_color": "blue",
86
+ "birth_year": "52BBY",
87
+ "gender": "male",
88
+ "vehicles": [],
89
+ "starships": []
90
+ },
91
+ {
92
+ "id": 7,
93
+ "name": "Beru Whitesun lars",
94
+ "height": "165",
95
+ "mass": "75",
96
+ "hair_color": "brown",
97
+ "skin_color": "light",
98
+ "eye_color": "blue",
99
+ "birth_year": "47BBY",
100
+ "gender": "female",
101
+ "vehicles": [],
102
+ "starships": []
103
+ },
104
+ {
105
+ "id": 8,
106
+ "name": "R5-D4",
107
+ "height": "97",
108
+ "mass": "32",
109
+ "hair_color": "n/a",
110
+ "skin_color": "white, red",
111
+ "eye_color": "red",
112
+ "birth_year": "unknown",
113
+ "gender": "n/a",
114
+ "vehicles": [],
115
+ "starships": []
116
+ },
117
+ {
118
+ "id": 9,
119
+ "name": "Biggs Darklighter",
120
+ "height": "183",
121
+ "mass": "84",
122
+ "hair_color": "black",
123
+ "skin_color": "light",
124
+ "eye_color": "brown",
125
+ "birth_year": "24BBY",
126
+ "gender": "male",
127
+ "vehicles": [],
128
+ "starships": [
129
+ 12
130
+ ]
131
+ },
132
+ {
133
+ "id": 10,
134
+ "name": "Obi-Wan Kenobi",
135
+ "height": "182",
136
+ "mass": "77",
137
+ "hair_color": "auburn, white",
138
+ "skin_color": "fair",
139
+ "eye_color": "blue-gray",
140
+ "birth_year": "57BBY",
141
+ "gender": "male",
142
+ "vehicles": [
143
+ 38
144
+ ],
145
+ "starships": [
146
+ 48,
147
+ 59,
148
+ 64,
149
+ 65,
150
+ 74
151
+ ]
152
+ }
153
+ ],
154
+ "vehicles": [
155
+ {
156
+ "id": 14,
157
+ "name": "Snowspeeder",
158
+ "model": "t-47 airspeeder",
159
+ "manufacturer": "Incom corporation",
160
+ "cost_in_credits": "unknown",
161
+ "length": "4.5",
162
+ "max_atmosphering_speed": "650",
163
+ "crew": "2",
164
+ "passengers": "0",
165
+ "cargo_capacity": "10",
166
+ "consumables": "none",
167
+ "vehicle_class": "airspeeder"
168
+ },
169
+ {
170
+ "id": 30,
171
+ "name": "Imperial Speeder Bike",
172
+ "model": "74-Z speeder bike",
173
+ "manufacturer": "Aratech Repulsor Company",
174
+ "cost_in_credits": "8000",
175
+ "length": "3",
176
+ "max_atmosphering_speed": "360",
177
+ "crew": "1",
178
+ "passengers": "1",
179
+ "cargo_capacity": "4",
180
+ "consumables": "1 day",
181
+ "vehicle_class": "speeder"
182
+ },
183
+ {
184
+ "id": 38,
185
+ "name": "Tribubble bongo",
186
+ "model": "Tribubble bongo",
187
+ "manufacturer": "Otoh Gunga Bongameken Cooperative",
188
+ "cost_in_credits": "unknown",
189
+ "length": "15",
190
+ "max_atmosphering_speed": "85",
191
+ "crew": "1",
192
+ "passengers": "2",
193
+ "cargo_capacity": "1600",
194
+ "consumables": "unknown",
195
+ "vehicle_class": "submarine"
196
+ }
197
+ ],
198
+ "starships": [
199
+ {
200
+ "id": 12,
201
+ "name": "X-wing",
202
+ "model": "T-65 X-wing",
203
+ "manufacturer": "Incom Corporation",
204
+ "cost_in_credits": "149999",
205
+ "length": "12.5",
206
+ "max_atmosphering_speed": "1050",
207
+ "crew": "1",
208
+ "passengers": "0",
209
+ "cargo_capacity": "110",
210
+ "consumables": "1 week",
211
+ "hyperdrive_rating": "1.0",
212
+ "MGLT": "100",
213
+ "starship_class": "Starfighter"
214
+ },
215
+ {
216
+ "id": 13,
217
+ "name": "TIE Advanced x1",
218
+ "model": "Twin Ion Engine Advanced x1",
219
+ "manufacturer": "Sienar Fleet Systems",
220
+ "cost_in_credits": "unknown",
221
+ "length": "9.2",
222
+ "max_atmosphering_speed": "1200",
223
+ "crew": "1",
224
+ "passengers": "0",
225
+ "cargo_capacity": "150",
226
+ "consumables": "5 days",
227
+ "hyperdrive_rating": "1.0",
228
+ "MGLT": "105",
229
+ "starship_class": "Starfighter"
230
+ },
231
+ {
232
+ "id": 22,
233
+ "name": "Imperial shuttle",
234
+ "model": "Lambda-class T-4a shuttle",
235
+ "manufacturer": "Sienar Fleet Systems",
236
+ "cost_in_credits": "240000",
237
+ "length": "20",
238
+ "max_atmosphering_speed": "850",
239
+ "crew": "6",
240
+ "passengers": "20",
241
+ "cargo_capacity": "80000",
242
+ "consumables": "2 months",
243
+ "hyperdrive_rating": "1.0",
244
+ "MGLT": "50",
245
+ "starship_class": "Armed government transport"
246
+ },
247
+ {
248
+ "id": 48,
249
+ "name": "Jedi starfighter",
250
+ "model": "Delta-7 Aethersprite-class interceptor",
251
+ "manufacturer": "Kuat Systems Engineering",
252
+ "cost_in_credits": "180000",
253
+ "length": "8",
254
+ "max_atmosphering_speed": "1150",
255
+ "crew": "1",
256
+ "passengers": "0",
257
+ "cargo_capacity": "60",
258
+ "consumables": "7 days",
259
+ "hyperdrive_rating": "1.0",
260
+ "MGLT": "unknown",
261
+ "starship_class": "Starfighter"
262
+ },
263
+ {
264
+ "id": 59,
265
+ "name": "Trade Federation cruiser",
266
+ "model": "Providence-class carrier/destroyer",
267
+ "manufacturer": "Rendili StarDrive, Free Dac Volunteers Engineering corps.",
268
+ "cost_in_credits": "125000000",
269
+ "length": "1088",
270
+ "max_atmosphering_speed": "1050",
271
+ "crew": "600",
272
+ "passengers": "48247",
273
+ "cargo_capacity": "50000000",
274
+ "consumables": "4 years",
275
+ "hyperdrive_rating": "1.5",
276
+ "MGLT": "unknown",
277
+ "starship_class": "capital ship"
278
+ },
279
+ {
280
+ "id": 64,
281
+ "name": "Naboo star skiff",
282
+ "model": "J-type star skiff",
283
+ "manufacturer": "Theed Palace Space Vessel Engineering Corps/Nubia Star Drives, Incorporated",
284
+ "cost_in_credits": "unknown",
285
+ "length": "29.2",
286
+ "max_atmosphering_speed": "1050",
287
+ "crew": "3",
288
+ "passengers": "3",
289
+ "cargo_capacity": "unknown",
290
+ "consumables": "unknown",
291
+ "hyperdrive_rating": "0.5",
292
+ "MGLT": "unknown",
293
+ "starship_class": "yacht"
294
+ },
295
+ {
296
+ "id": 65,
297
+ "name": "Jedi Interceptor",
298
+ "model": "Eta-2 Actis-class light interceptor",
299
+ "manufacturer": "Kuat Systems Engineering",
300
+ "cost_in_credits": "320000",
301
+ "length": "5.47",
302
+ "max_atmosphering_speed": "1500",
303
+ "crew": "1",
304
+ "passengers": "0",
305
+ "cargo_capacity": "60",
306
+ "consumables": "2 days",
307
+ "hyperdrive_rating": "1.0",
308
+ "MGLT": "unknown",
309
+ "starship_class": "starfighter"
310
+ },
311
+ {
312
+ "id": 74,
313
+ "name": "Belbullab-22 starfighter",
314
+ "model": "Belbullab-22 starfighter",
315
+ "manufacturer": "Feethan Ottraw Scalable Assemblies",
316
+ "cost_in_credits": "168000",
317
+ "length": "6.71",
318
+ "max_atmosphering_speed": "1100",
319
+ "crew": "1",
320
+ "passengers": "0",
321
+ "cargo_capacity": "140",
322
+ "consumables": "7 days",
323
+ "hyperdrive_rating": "6",
324
+ "MGLT": "unknown",
325
+ "starship_class": "starfighter"
326
+ }
327
+ ]
328
+ }
metadata CHANGED
@@ -1,18 +1,31 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sw_info
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
- - Emilio D. Ballardini
7
+ - EmilioD
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-21 00:00:00.000000000 Z
12
- dependencies: []
13
- description: This gem is a simple wrapper that provides information about the Star
14
- Wars characters stored in the swapi file.
15
- email: emilio@ballardini.co
11
+ date: 2022-01-23 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: debug
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: A simple gem that display Star Wars characters info
28
+ email: emilio@daniel.fake
16
29
  executables: []
17
30
  extensions: []
18
31
  extra_rdoc_files: []
@@ -20,7 +33,7 @@ files:
20
33
  - Rakefile
21
34
  - bin/sw_info
22
35
  - lib/sw_info.rb
23
- - test/test_sw_info.rb
36
+ - lib/swapi.json
24
37
  homepage: http://rubygems.org/gems/sw_info
25
38
  licenses:
26
39
  - MIT
@@ -33,7 +46,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
33
46
  requirements:
34
47
  - - ">="
35
48
  - !ruby/object:Gem::Version
36
- version: '0'
49
+ version: 3.0.3
37
50
  required_rubygems_version: !ruby/object:Gem::Requirement
38
51
  requirements:
39
52
  - - ">="
@@ -42,7 +55,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
42
55
  requirements: []
43
56
  rubygems_version: 3.2.32
44
57
  signing_key:
45
- specification_version: 3
46
- summary: A simple gem about SW characters.
47
- test_files:
48
- - test/test_sw_info.rb
58
+ specification_version: 4
59
+ summary: Star Wars API
60
+ test_files: []
data/test/test_sw_info.rb DELETED
File without changes