metromobilite 0.2 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,12 +1,24 @@
1
- # ruby-metromobilite
2
- Implémentation Ruby de l'API Métromobilite (Transports en commun de Grenoble et d'Isère)
3
-
4
- Pour plus d'informations, voir la [Documentation de l'API](http://www.metromobilite.fr/pages/opendata/OpenDataApi.html)
5
-
6
- # Utilisation
7
-
8
- ```ruby
9
- require 'metromobilite'
10
-
11
- Metromobilite::Times.readStop '{SEM,C38}:id'
12
- ```
1
+ [![Gem Version](https://badge.fury.io/rb/metromobilite.svg)](https://badge.fury.io/rb/metromobilite)
2
+ # ruby-metromobilite
3
+ Implémentation Ruby de l'API Métromobilite (Transports en commun de Grenoble et d'Isère)
4
+
5
+ Pour plus d'informations, voir la [Documentation de l'API](https://www.mobilites-m.fr/pages/opendata/OpenDataApi.html)
6
+
7
+ # Installation
8
+ En ligne de commande :
9
+ ```bash
10
+ $ gem install metromobilite
11
+ ```
12
+
13
+ Gemfile :
14
+ ```ruby
15
+ gem 'metromobilite', '>= 0.2'
16
+ ```
17
+
18
+ # Utilisation
19
+
20
+ ```ruby
21
+ require 'metromobilite'
22
+
23
+ Metromobilite::Times.readStop '{SEM,C38}:id'
24
+ ```
data/Rakefile CHANGED
@@ -1,8 +1,6 @@
1
- require 'rake/testtask'
2
-
3
- Rake::TestTask.new do |t|
4
- t.libs << 'test'
5
- end
6
-
7
- desc "Run tests"
8
- task :default => :test
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "metromobilite"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -1,31 +1,31 @@
1
- require 'json'
2
-
3
- module Metromobilite
4
- module Model
5
- class Pattern
6
-
7
- # Initializes a new Metromobilite::Pattern object
8
- #
9
- # +jsonData_Hash+::
10
- # The JSON data received and parsed as a Hash
11
- def initialize(jsonData)
12
-
13
- @id = jsonData['id']
14
- @desc = jsonData['desc']
15
- @dir = jsonData['dir']
16
- @shortDesc = jsonData['shortDesc']
17
- end
18
-
19
- attr_reader :id
20
- attr_reader :desc
21
- attr_reader :dir
22
- attr_reader :shortDesc
23
-
24
- def to_json(opts = nil)
25
- hash = {}
26
- instance_variables.each {|var| hash[var.to_s.delete("@")] = instance_variable_get(var) }
27
- hash.to_json
28
- end
29
- end
30
- end
1
+ require 'json'
2
+
3
+ module Metromobilite
4
+ module Model
5
+ class Pattern
6
+
7
+ # Initializes a new Metromobilite::Pattern object
8
+ #
9
+ # +jsonData_Hash+::
10
+ # The JSON data received and parsed as a Hash
11
+ def initialize(jsonData)
12
+
13
+ @id = jsonData['id']
14
+ @desc = jsonData['desc']
15
+ @dir = jsonData['dir']
16
+ @shortDesc = jsonData['shortDesc']
17
+ end
18
+
19
+ attr_reader :id
20
+ attr_reader :desc
21
+ attr_reader :dir
22
+ attr_reader :shortDesc
23
+
24
+ def to_json(opts = nil)
25
+ hash = {}
26
+ instance_variables.each {|var| hash[var.to_s.delete("@")] = instance_variable_get(var) }
27
+ hash.to_json
28
+ end
29
+ end
30
+ end
31
31
  end
@@ -1,21 +1,21 @@
1
- require 'json'
2
-
3
- module Metromobilite
4
- module Model
5
- class Stop
6
- def initialize(pattern, times)
7
- @pattern = pattern
8
- @times = times
9
- end
10
-
11
- attr_reader :pattern
12
- attr_reader :times
13
-
14
- def to_json(opts = nil)
15
- hash = {}
16
- instance_variables.each {|var| hash[var.to_s.delete("@")] = instance_variable_get(var) }
17
- hash.to_json
18
- end
19
- end
20
- end
21
- end
1
+ require 'json'
2
+
3
+ module Metromobilite
4
+ module Model
5
+ class Stop
6
+ def initialize(pattern, times)
7
+ @pattern = pattern
8
+ @times = times
9
+ end
10
+
11
+ attr_reader :pattern
12
+ attr_reader :times
13
+
14
+ def to_json(opts = nil)
15
+ hash = {}
16
+ instance_variables.each {|var| hash[var.to_s.delete("@")] = instance_variable_get(var) }
17
+ hash.to_json
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,49 +1,49 @@
1
- require 'json'
2
-
3
- module Metromobilite
4
- module Model
5
- class Time
6
- # Class representing time info at a stop for a single route
7
-
8
- # Instantiates a new Time object from received JSON data
9
- # :call-seq:
10
- # Time.new(jsonObj)
11
- #
12
- # +jsonData_Hash+::
13
- # The Time JSON hash object received from the API
14
- def initialize(jsonData)
15
- @stopId = jsonData['stopId']
16
- @stopName = jsonData['stopName']
17
- @scheduledArrival = jsonData['scheduledArrival']
18
- @scheduledDeparture = jsonData['scheduledDeparture']
19
- @realtimeArrival = jsonData['realtimeArrival']
20
- @realtimeDeparture = jsonData['realtimeDeparture']
21
- @arrivalDelay = jsonData['arrivalDelay']
22
- @departureDelay = jsonData['departureDelay']
23
- @timepoint = jsonData['timepoint']
24
- @realtime = jsonData['realtime']
25
- @serviceDay = jsonData['serviceDay']
26
- @tripId = jsonData['tripId']
27
- end
28
-
29
- attr_reader :stopId
30
- attr_reader :stopName
31
- attr_reader :scheduledArrival
32
- attr_reader :scheduledDeparture
33
- attr_reader :realtimeArrival
34
- attr_reader :realtimeDeparture
35
- attr_reader :arrivalDelay
36
- attr_reader :departureDelay
37
- attr_reader :timepoint
38
- attr_reader :realtime
39
- attr_reader :serviceDay
40
- attr_reader :tripId
41
-
42
- def to_json(opts = nil)
43
- hash = {}
44
- instance_variables.each {|var| hash[var.to_s.delete("@")] = instance_variable_get(var) }
45
- hash.to_json
46
- end
47
- end
48
- end
49
- end
1
+ require 'json'
2
+
3
+ module Metromobilite
4
+ module Model
5
+ class Time
6
+ # Class representing time info at a stop for a single route
7
+
8
+ # Instantiates a new Time object from received JSON data
9
+ # :call-seq:
10
+ # Time.new(jsonObj)
11
+ #
12
+ # +jsonData_Hash+::
13
+ # The Time JSON hash object received from the API
14
+ def initialize(jsonData)
15
+ @stopId = jsonData['stopId']
16
+ @stopName = jsonData['stopName']
17
+ @scheduledArrival = jsonData['scheduledArrival']
18
+ @scheduledDeparture = jsonData['scheduledDeparture']
19
+ @realtimeArrival = jsonData['realtimeArrival']
20
+ @realtimeDeparture = jsonData['realtimeDeparture']
21
+ @arrivalDelay = jsonData['arrivalDelay']
22
+ @departureDelay = jsonData['departureDelay']
23
+ @timepoint = jsonData['timepoint']
24
+ @realtime = jsonData['realtime']
25
+ @serviceDay = jsonData['serviceDay']
26
+ @tripId = jsonData['tripId']
27
+ end
28
+
29
+ attr_reader :stopId
30
+ attr_reader :stopName
31
+ attr_reader :scheduledArrival
32
+ attr_reader :scheduledDeparture
33
+ attr_reader :realtimeArrival
34
+ attr_reader :realtimeDeparture
35
+ attr_reader :arrivalDelay
36
+ attr_reader :departureDelay
37
+ attr_reader :timepoint
38
+ attr_reader :realtime
39
+ attr_reader :serviceDay
40
+ attr_reader :tripId
41
+
42
+ def to_json(opts = nil)
43
+ hash = {}
44
+ instance_variables.each {|var| hash[var.to_s.delete("@")] = instance_variable_get(var) }
45
+ hash.to_json
46
+ end
47
+ end
48
+ end
49
+ end
@@ -1,14 +1,15 @@
1
- require 'httparty'
2
- require 'json'
3
-
4
- module Metromobilite
5
- module Request
6
- API_URI = 'http://data.metromobilite.fr/api'
7
-
8
- def self.get(reqUri)
9
- puts 'Calling GET on ' + API_URI + reqUri
10
- httpResult = HTTParty.get(API_URI + reqUri)
11
- JSON.parse(httpResult.body)
12
- end
13
- end
14
- end
1
+ require 'httparty'
2
+ require 'json'
3
+
4
+ module Metromobilite
5
+ module Request
6
+ API_URI = 'http://data.mobilites-m.fr/api'
7
+ HEADERS = { 'Origin' => 'rubygems.org' }
8
+
9
+ def self.get(reqUri)
10
+ puts 'Calling GET on ' + API_URI + reqUri
11
+ httpResult = HTTParty.get(API_URI + reqUri, headers: HEADERS)
12
+ JSON.parse(httpResult.body)
13
+ end
14
+ end
15
+ end
@@ -1,34 +1,34 @@
1
- require 'metromobilite/request'
2
- require 'metromobilite/model/pattern'
3
- require 'metromobilite/model/time'
4
- require 'metromobilite/model/stop'
5
- require 'json'
6
-
7
- module Metromobilite
8
- module Times
9
- RECORDS_URI = '/ficheHoraires/json'
10
- LIVE_URI = '/routers/default/index/stops/%s/stoptimes'
11
-
12
- # Reads the next stop times at a stop, eventually for a given route
13
- # Returns an array of Metromobilite::Model::Stop with their associated stop times
14
- #
15
- # +stopId_string+::
16
- # the stop id
17
- #
18
- def self.readStop(stopId)
19
- uri = LIVE_URI % stopId.to_s
20
- jsonData = Metromobilite::Request.get(uri)
21
- res = []
22
- jsonData.each do |item|
23
- pattern = Metromobilite::Model::Pattern.new(item['pattern'])
24
- times = []
25
- item['times'].each do |timeJson|
26
- times.push(Metromobilite::Model::Time.new timeJson)
27
- end
28
- res.push(Metromobilite::Model::Stop.new pattern, times)
29
- end
30
-
31
- return res
32
- end
33
- end
34
- end
1
+ require 'metromobilite/request'
2
+ require 'metromobilite/model/pattern'
3
+ require 'metromobilite/model/time'
4
+ require 'metromobilite/model/stop'
5
+ require 'json'
6
+
7
+ module Metromobilite
8
+ module Times
9
+ RECORDS_URI = '/ficheHoraires/json'
10
+ LIVE_URI = '/routers/default/index/stops/%s/stoptimes'
11
+
12
+ # Reads the next stop times at a stop, eventually for a given route
13
+ # Returns an array of Metromobilite::Model::Stop with their associated stop times
14
+ #
15
+ # +stopId_string+::
16
+ # the stop id
17
+ #
18
+ def self.readStop(stopId)
19
+ uri = LIVE_URI % stopId.to_s
20
+ jsonData = Metromobilite::Request.get(uri)
21
+ res = []
22
+ jsonData.each do |item|
23
+ pattern = Metromobilite::Model::Pattern.new(item['pattern'])
24
+ times = []
25
+ item['times'].each do |timeJson|
26
+ times.push(Metromobilite::Model::Time.new timeJson)
27
+ end
28
+ res.push(Metromobilite::Model::Stop.new pattern, times)
29
+ end
30
+
31
+ return res
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,3 @@
1
+ module Metromobilite
2
+ VERSION = "0.2.1"
3
+ end
data/lib/metromobilite.rb CHANGED
@@ -1,2 +1,2 @@
1
- require 'metromobilite/times'
2
- require 'metromobilite/request'
1
+ require 'metromobilite/times'
2
+ require 'metromobilite/request'
@@ -1,21 +1,34 @@
1
- lib = File.expand_path('../lib', __FILE__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
-
4
- Gem::Specification.new do |spec|
5
- spec.add_dependency 'faraday', '~> 0.15'
6
- spec.add_dependency 'json', '~> 2.1'
7
- spec.add_dependency 'httparty', '~> 0.17.3'
8
- spec.add_development_dependency 'bundler', '~> 1.0'
9
- spec.authors = ['Léo Gatellier']
10
- spec.summary = 'Implémentation Ruby de l\'API Métromobilite (Transports en commun de Grenoble et d\'Isère).'
11
- spec.description = 'Implémentation Ruby de l\'API Métromobilité (Transports en commun de Grenoble et d\'Isère) initialement développée pour être intégrée dans un job dashing/smashing'
12
- spec.email = %w(github@leogatellier.fr)
13
- spec.files = %w(LICENSE README.md metromobilite.gemspec Rakefile) + Dir['lib/**/*.rb']
14
- spec.homepage = 'https://github.com/lgatellier/ruby-metromobilite/'
15
- spec.licenses = %w(GPL-3.0)
16
- spec.name = 'metromobilite'
17
- spec.require_paths = %w(lib)
18
- spec.required_ruby_version = '>= 2'
19
- spec.required_rubygems_version = '>= 1.3.5'
20
- spec.version = 0.2
21
- end
1
+ require_relative 'lib/metromobilite/version'
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "metromobilite"
5
+ spec.version = Metromobilite::VERSION
6
+ spec.license = 'GPL-3.0'
7
+ spec.authors = ["Léo GATELLIER"]
8
+ spec.email = ["github@leogatellier.fr"]
9
+
10
+ spec.summary = %q{Wrapper Ruby de l'API Métromobilite (Transports en commun de Grenoble et d'Isère).}
11
+ spec.description = %q{Wrapper Ruby de l'API Métromobilité (Transports en commun de Grenoble et d'Isère) initialement développée pour être intégrée dans un job smashing.}
12
+ spec.homepage = "https://github.com/lgatellier/ruby-metromobilite"
13
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
14
+
15
+ spec.metadata["homepage_uri"] = spec.homepage
16
+ spec.metadata["source_code_uri"] = spec.homepage
17
+ spec.metadata["changelog_uri"] = "#{spec.homepage}/CHANGELOG.md"
18
+ spec.metadata["bug_tracker_uri"] = "#{spec.homepage}/issues"
19
+
20
+ spec.add_dependency 'faraday', '~> 0.15'
21
+ spec.add_dependency 'json', '~> 2.1'
22
+ spec.add_dependency 'httparty', '~> 0.17.3'
23
+
24
+ spec.add_development_dependency 'bundler', '~> 2.2.10'
25
+
26
+ # Specify which files should be added to the gem when it is released.
27
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
28
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
29
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
30
+ end
31
+ spec.bindir = "exe"
32
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
33
+ spec.require_paths = ["lib"]
34
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metromobilite
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
- - Léo Gatellier
7
+ - Léo GATELLIER
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-11 00:00:00.000000000 Z
11
+ date: 2021-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -58,36 +58,50 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.0'
61
+ version: 2.2.10
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.0'
69
- description: Implémentation Ruby de l'API Métromobilité (Transports en commun de Grenoble
70
- et d'Isère) initialement développée pour être intégrée dans un job dashing/smashing
68
+ version: 2.2.10
69
+ description: Wrapper Ruby de l'API Métromobilité (Transports en commun de Grenoble
70
+ et d'Isère) initialement développée pour être intégrée dans un job smashing.
71
71
  email:
72
72
  - github@leogatellier.fr
73
73
  executables: []
74
74
  extensions: []
75
75
  extra_rdoc_files: []
76
76
  files:
77
+ - ".github/workflows/ci.yml"
78
+ - ".gitignore"
79
+ - ".rspec"
80
+ - ".vscode/launch.json"
81
+ - CODE_OF_CONDUCT.md
82
+ - Gemfile
83
+ - Gemfile.lock
77
84
  - LICENSE
78
85
  - README.md
79
86
  - Rakefile
87
+ - bin/console
88
+ - bin/setup
80
89
  - lib/metromobilite.rb
81
90
  - lib/metromobilite/model/pattern.rb
82
91
  - lib/metromobilite/model/stop.rb
83
92
  - lib/metromobilite/model/time.rb
84
93
  - lib/metromobilite/request.rb
85
94
  - lib/metromobilite/times.rb
95
+ - lib/metromobilite/version.rb
86
96
  - metromobilite.gemspec
87
- homepage: https://github.com/lgatellier/ruby-metromobilite/
97
+ homepage: https://github.com/lgatellier/ruby-metromobilite
88
98
  licenses:
89
99
  - GPL-3.0
90
- metadata: {}
100
+ metadata:
101
+ homepage_uri: https://github.com/lgatellier/ruby-metromobilite
102
+ source_code_uri: https://github.com/lgatellier/ruby-metromobilite
103
+ changelog_uri: https://github.com/lgatellier/ruby-metromobilite/CHANGELOG.md
104
+ bug_tracker_uri: https://github.com/lgatellier/ruby-metromobilite/issues
91
105
  post_install_message:
92
106
  rdoc_options: []
93
107
  require_paths:
@@ -96,16 +110,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
96
110
  requirements:
97
111
  - - ">="
98
112
  - !ruby/object:Gem::Version
99
- version: '2'
113
+ version: 2.3.0
100
114
  required_rubygems_version: !ruby/object:Gem::Requirement
101
115
  requirements:
102
116
  - - ">="
103
117
  - !ruby/object:Gem::Version
104
- version: 1.3.5
118
+ version: '0'
105
119
  requirements: []
106
- rubygems_version: 3.0.2
120
+ rubygems_version: 3.1.2
107
121
  signing_key:
108
122
  specification_version: 4
109
- summary: Implémentation Ruby de l'API Métromobilite (Transports en commun de Grenoble
110
- et d'Isère).
123
+ summary: Wrapper Ruby de l'API Métromobilite (Transports en commun de Grenoble et
124
+ d'Isère).
111
125
  test_files: []