sw_info 0.0.1 → 1.0.4

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 +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