strans-client 0.0.1 → 0.0.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1cb35d18c073fc060e0300bf0adf29be725b13cf
4
- data.tar.gz: 4af402b94efe32c1bffef2acda7b73b23dda31cc
3
+ metadata.gz: f2f3edb1e916f3b63d86d2d02818669217b84cc1
4
+ data.tar.gz: ef0936f9c63e5f88d95251fe9056b1a1fc4b2543
5
5
  SHA512:
6
- metadata.gz: 418cfce27a412da2705cf5436dd4962324f5a5cc3bc29ba2fa4773263d6f5cc1681cacb7f2595d64a9d4e97d460a92f5761ec24ed374dcf09b20ca03bd88472b
7
- data.tar.gz: 5b9b416865c22285a92915ba3471024ff8c0a6b2391fb4cde382c970198f71f62831e09b16ebc069647b7d12c58aebaf40e03bd80ece1e0a5ed954a112e28641
6
+ metadata.gz: 1699064a738e96fc6bbe37672e7bd80058d6f6155a5d2972e9b8686787201c66d3ccd5f8098c40189155726f65f41f7a2abb6198eb3e014f4dd00598864e9815
7
+ data.tar.gz: ccf8b1a7ae3942f5109f8600c7580856c94d08fc3172a731d04abdc367c1e8a7e9924fad12c515c69febb2f8e573a0de6561c89cd1455cb13578c53b43b1b63f
@@ -0,0 +1,33 @@
1
+
2
+ class Linha
3
+
4
+ def initialize(fields)
5
+ load_atts(fields)
6
+ end
7
+
8
+ attr_accessor :codigoLinha, :denomicao, :origem,
9
+ :retorno, :circular, :veiculos, :paradas
10
+
11
+ def load_atts(fields)
12
+ @codigoLinha = fields['CodigoLinha'] || fields[:codigoLinha]
13
+ @denomicao = fields['Denomicao'] || fields[:denomicao]
14
+ @origem = fields['Origem'] || fields[:origem]
15
+ @retorno = fields['Retorno'] || fields[:retorno]
16
+ @circular = fields['Circular'] || fields[:circular]
17
+ @veiculos = load_objs(fields['Veiculos']||fields[:veiculos], Veiculo)
18
+ @paradas = load_objs(fields['Paradas']||fields[:paradas], Parada)
19
+ end
20
+
21
+
22
+ def load_objs(objs, klass)
23
+ if objs.is_a?(Array)
24
+ objs = objs.map do |o|
25
+ o = klass.new(o)
26
+ o.linha = self
27
+ o
28
+ end
29
+ end
30
+ return objs
31
+ end
32
+
33
+ end
@@ -0,0 +1,17 @@
1
+ class Parada
2
+
3
+ def initialize(fields)
4
+ load_atts(fields)
5
+ end
6
+
7
+ attr_accessor :codigoParada, :denomicao, :endereco, :lat, :long, :linha
8
+
9
+ def load_atts(fields)
10
+ @codigoParada = fields['CodigoParada'] || fields[:codigoParada]
11
+ @denomicao = fields['Denomicao'] || fields[:denomicao]
12
+ @endereco = fields['Endereco'] || fields[:endereco]
13
+ @lat = fields['Lat'] || fields[:lat]
14
+ @long = fields['Long'] || fields[:long]
15
+ end
16
+
17
+ end
@@ -1,5 +1,6 @@
1
1
  require 'net/http'
2
2
  require 'json'
3
+ require 'linha'
3
4
 
4
5
  class StransClient
5
6
 
@@ -66,12 +67,16 @@ class StransClient
66
67
  def linhas( busca = nil)
67
68
  params = busca.nil? ? nil : {busca: busca}
68
69
  res = create_request( :get, "/linhas", params)
69
- JSON.parse(res.body)
70
+ JSON.parse(res.body).map{|l| Linha.new(l) }
70
71
  end
71
72
 
72
73
  def veiculos()
73
74
  res = create_request( :get, "/veiculos")
74
- JSON.parse(res.body)
75
+ veiculos = JSON.parse(res.body).map do |node|
76
+ linha = Linha.new(node['Linha'])
77
+ linha.veiculos
78
+ end
79
+ veiculos.reduce(:concat)
75
80
  end
76
81
 
77
82
  def veiculos_linha(num_linha)
@@ -82,12 +87,14 @@ class StransClient
82
87
  def paradas (busca = nil)
83
88
  params = busca.nil? ? nil : {busca: busca}
84
89
  res = create_request( :get, "/paradas", params)
85
- JSON.parse(res.body)
90
+ JSON.parse(res.body).map{|p| Parada.new(p) }
86
91
  end
87
92
 
88
93
  def paradas_linha(num_linha)
89
94
  res = create_request( :get, "/paradasLinha", {busca: num_linha})
90
- JSON.parse(res.body)
95
+ result = JSON.parse(res.body)
96
+ result = result['Linha'].merge!( 'Paradas' => result['Paradas'])
97
+ Linha.new(result).paradas
91
98
  end
92
99
 
93
100
  end
@@ -0,0 +1,16 @@
1
+ class Veiculo
2
+
3
+ def initialize(fields)
4
+ load_atts(fields)
5
+ end
6
+
7
+ attr_accessor :codigoVeiculo, :hora, :lat, :long, :linha
8
+
9
+ def load_atts(fields)
10
+ @codigoVeiculo = fields['CodigoVeiculo'] || fields[:codigoVeiculo]
11
+ @hora = fields['Hora'] || fields[:hora]
12
+ @lat = fields['Lat'] || fields[:lat]
13
+ @long = fields['Long'] || fields[:long]
14
+ end
15
+
16
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: strans-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luan Pontes
@@ -16,7 +16,10 @@ executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
+ - lib/linha.rb
20
+ - lib/parada.rb
19
21
  - lib/strans-client.rb
22
+ - lib/veiculo.rb
20
23
  homepage: https://github.com/tOOlmaker-equalsp/ruby-apiStransTHE
21
24
  licenses:
22
25
  - MIT