metromobilite 0.2 → 0.2.1

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.
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: []