sw_info 0.0.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/sw_info.rb +128 -29
- data/lib/swapi.json +328 -0
- metadata +9 -11
- data/test/test_sw_info.rb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: df0ff7601fa48043da4d0127afd1d278bcce6a425f625945955cf0e7fade14b0
|
4
|
+
data.tar.gz: a9d1ae918816007ced61596ffc873ece104d234a56bf6164c25c3aca5a91b0df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ccd0543f72f6b4901ad1a86809687e9193245555b81f62adf5a1964d1a35694c2e37ffd09f23acafe5f99604e18cfe12a3637dc033dcc39a044617fa6a849b58
|
7
|
+
data.tar.gz: d1cd017ace2d88397562109bedf8c318b770aa4f27d6b2f3f7f68e545d60dc21a4951c05f296a02545a03a1f24e31d71e6275c4a8a6d6b4505b2a37507046e5b
|
data/lib/sw_info.rb
CHANGED
@@ -19,23 +19,55 @@ end
|
|
19
19
|
|
20
20
|
JSONDATA = File.expand_path('swapi.json', __dir__)
|
21
21
|
|
22
|
-
DATA = JSON.load_file(JSONDATA)
|
23
|
-
hash[key] = value
|
24
|
-
end
|
22
|
+
DATA = JSON.load_file(JSONDATA)
|
25
23
|
|
26
|
-
|
27
|
-
# y mostrar el atributo que se pida según el método llamado
|
28
|
-
class Person
|
24
|
+
class Pal
|
29
25
|
attr_accessor :data
|
30
26
|
|
31
|
-
def
|
32
|
-
|
27
|
+
def to_s
|
28
|
+
name
|
29
|
+
end
|
30
|
+
|
31
|
+
def id
|
32
|
+
@data['id']
|
33
33
|
end
|
34
34
|
|
35
35
|
def name
|
36
36
|
@data['name']
|
37
37
|
end
|
38
38
|
|
39
|
+
def self.find(id)
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.all
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.search_for_all(key)
|
48
|
+
variable = DATA[key].map {|p| new(p)}
|
49
|
+
return variable
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.search_for_id(key, id)
|
53
|
+
variable = DATA[key].find do |p|
|
54
|
+
p["id"] == id
|
55
|
+
end
|
56
|
+
return new(variable)
|
57
|
+
end
|
58
|
+
|
59
|
+
def initialize(data)
|
60
|
+
@data = data
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
#En esta clase voy a querer acceder a esa data dependiendo de la key que me pase
|
67
|
+
# y mostrar el atributo que se pida según el método llamado
|
68
|
+
class Person < Pal
|
69
|
+
attr_accessor :data, :alias
|
70
|
+
|
39
71
|
def birth_year
|
40
72
|
@data['birth_year']
|
41
73
|
end
|
@@ -51,10 +83,6 @@ class Person
|
|
51
83
|
def skin_color
|
52
84
|
@data['skin_color']
|
53
85
|
end
|
54
|
-
|
55
|
-
def id
|
56
|
-
@data['id']
|
57
|
-
end
|
58
86
|
|
59
87
|
def height
|
60
88
|
@data['height']
|
@@ -67,39 +95,110 @@ class Person
|
|
67
95
|
def gender
|
68
96
|
@data['gender']
|
69
97
|
end
|
98
|
+
end
|
70
99
|
|
71
|
-
|
100
|
+
class Starship < Pal
|
101
|
+
attr_accessor :data
|
72
102
|
|
103
|
+
def starships
|
104
|
+
@data['starships']
|
105
|
+
end
|
73
106
|
|
74
|
-
def
|
75
|
-
|
107
|
+
def model
|
108
|
+
@data['model']
|
76
109
|
end
|
77
|
-
end
|
78
110
|
|
79
|
-
|
80
|
-
|
111
|
+
def manufacturer
|
112
|
+
@data['manufacturer']
|
113
|
+
end
|
114
|
+
|
115
|
+
def cost_in_credits
|
116
|
+
@data['cost_in_credits']
|
117
|
+
end
|
81
118
|
|
82
|
-
def
|
83
|
-
@data
|
119
|
+
def length
|
120
|
+
@data['length']
|
121
|
+
end
|
122
|
+
|
123
|
+
def max_atmosphering_speed
|
124
|
+
@data['max_atmosphering_speed']
|
125
|
+
end
|
126
|
+
|
127
|
+
def crew
|
128
|
+
@data['crew']
|
129
|
+
end
|
130
|
+
|
131
|
+
def passengers
|
132
|
+
@data['passengers']
|
133
|
+
end
|
134
|
+
|
135
|
+
def cargo_capacity
|
136
|
+
@data['cargo_capacity']
|
84
137
|
end
|
85
138
|
|
86
|
-
def
|
87
|
-
@data['
|
139
|
+
def consumables
|
140
|
+
@data['consumables']
|
141
|
+
end
|
142
|
+
|
143
|
+
def hyperdrive_rating
|
144
|
+
@data['hyperdrive_rating']
|
145
|
+
end
|
146
|
+
|
147
|
+
def MGLT
|
148
|
+
@data['MGLT']
|
149
|
+
end
|
150
|
+
|
151
|
+
def starship_class
|
152
|
+
@data['starship_class']
|
88
153
|
end
|
89
154
|
|
90
155
|
end
|
91
156
|
|
92
|
-
class Vehicle
|
157
|
+
class Vehicle < Pal
|
93
158
|
attr_accessor :data
|
94
159
|
|
95
|
-
def
|
96
|
-
@data
|
160
|
+
def vehicles
|
161
|
+
@data['vehicles']
|
97
162
|
end
|
98
163
|
|
99
|
-
def
|
100
|
-
@data['
|
164
|
+
def model
|
165
|
+
@data['model']
|
166
|
+
end
|
167
|
+
|
168
|
+
def manufacturer
|
169
|
+
@data['manufacturer']
|
170
|
+
end
|
171
|
+
|
172
|
+
def cost_in_credits
|
173
|
+
@data['cost_in_credits']
|
174
|
+
end
|
175
|
+
|
176
|
+
def length
|
177
|
+
@data['length']
|
178
|
+
end
|
179
|
+
|
180
|
+
def max_atmosphering_speed
|
181
|
+
@data['max_atmosphering_speed']
|
101
182
|
end
|
102
|
-
end
|
103
183
|
|
184
|
+
def crew
|
185
|
+
@data['crew']
|
186
|
+
end
|
187
|
+
|
188
|
+
def passengers
|
189
|
+
@data['passengers']
|
190
|
+
end
|
191
|
+
|
192
|
+
def cargo_capacity
|
193
|
+
@data['cargo_capacity']
|
194
|
+
end
|
104
195
|
|
105
|
-
|
196
|
+
def consumables
|
197
|
+
@data['consumables']
|
198
|
+
end
|
199
|
+
|
200
|
+
def vehicle_class
|
201
|
+
@data['vehicle_class']
|
202
|
+
end
|
203
|
+
|
204
|
+
end
|
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,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sw_info
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- EmilioD
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-01-
|
11
|
+
date: 2022-01-22 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description:
|
14
|
-
|
15
|
-
email: emilio@ballardini.co
|
13
|
+
description: A simple hello world gem
|
14
|
+
email: emilio@daniel.fake
|
16
15
|
executables: []
|
17
16
|
extensions: []
|
18
17
|
extra_rdoc_files: []
|
@@ -20,7 +19,7 @@ files:
|
|
20
19
|
- Rakefile
|
21
20
|
- bin/sw_info
|
22
21
|
- lib/sw_info.rb
|
23
|
-
-
|
22
|
+
- lib/swapi.json
|
24
23
|
homepage: http://rubygems.org/gems/sw_info
|
25
24
|
licenses:
|
26
25
|
- MIT
|
@@ -42,7 +41,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
42
41
|
requirements: []
|
43
42
|
rubygems_version: 3.2.32
|
44
43
|
signing_key:
|
45
|
-
specification_version:
|
46
|
-
summary:
|
47
|
-
test_files:
|
48
|
-
- test/test_sw_info.rb
|
44
|
+
specification_version: 4
|
45
|
+
summary: Hola!
|
46
|
+
test_files: []
|
data/test/test_sw_info.rb
DELETED
File without changes
|