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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sw_info.rb +128 -29
  3. data/lib/swapi.json +328 -0
  4. metadata +9 -11
  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: df0ff7601fa48043da4d0127afd1d278bcce6a425f625945955cf0e7fade14b0
4
+ data.tar.gz: a9d1ae918816007ced61596ffc873ece104d234a56bf6164c25c3aca5a91b0df
5
5
  SHA512:
6
- metadata.gz: a3e4b15a67866debdef2af0496a67a77ed630cbb8c09a452e157da39e97dfec2f32fd1950a2444b80a14f32e279b87d65f9de432ea276ddaa30864954d464196
7
- data.tar.gz: 722ede6d6be26f6e5dcef51604fba39a9a6f6312b8511e71abbb825afdcddbeab982b486728866940ecd5f97581b7efaa13c7eacaabc2699dca11584c0858993
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).each_with_object({}) do |(key, value), hash|
23
- hash[key] = value
24
- end
22
+ DATA = JSON.load_file(JSONDATA)
25
23
 
26
- #En esta clase voy a querer acceder a esa data dependiendo de la key que me pase
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 initialize(data)
32
- @data = data
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
- def vehicles
100
+ class Starship < Pal
101
+ attr_accessor :data
72
102
 
103
+ def starships
104
+ @data['starships']
105
+ end
73
106
 
74
- def self.all
75
- debugger
107
+ def model
108
+ @data['model']
76
109
  end
77
- end
78
110
 
79
- class Starship
80
- attr_accessor :data
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 initialize(data)
83
- @data = 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 star
87
- @data['starship']
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 initialize(data)
96
- @data = data
160
+ def vehicles
161
+ @data['vehicles']
97
162
  end
98
163
 
99
- def vehicle
100
- @data['vehicles']
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
- puts "Hi! I'm Luke Skywalker, I'm your SWAPI helper!"
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.1
4
+ version: 1.0.0
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
11
+ date: 2022-01-22 00:00:00.000000000 Z
12
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
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
- - test/test_sw_info.rb
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: 3
46
- summary: A simple gem about SW characters.
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