marinetraffic 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +1 -1
- data/Guardfile +5 -0
- data/README.md +21 -1
- data/lib/marinetraffic.rb +5 -1
- data/lib/marinetraffic/api.rb +15 -0
- data/lib/marinetraffic/version.rb +1 -1
- data/lib/marinetraffic/vessel.rb +68 -0
- data/marinetraffic.gemspec +8 -0
- metadata +102 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d0009285cd9ec60abb0264806ae7e1efdd054828
|
4
|
+
data.tar.gz: d9a588dba5761380f20b6e3c59d09d926c992cf1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6aa89875c1c71a660b66b97b39e438b24fd77d0e081469861574e7f6c0a8c6b8508be6bd5ac90d9ac629de80ad0860f37784993341c16a3b664ca4a6209572e3
|
7
|
+
data.tar.gz: 729f6793faab79abe5e610748e2f23427290da7d5b47b6582e6997ac156e78d5311c892818312d9c9ed5220a0141ba2a20f4dd70dce6f352bafae4d27c053b4b
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/Guardfile
ADDED
data/README.md
CHANGED
@@ -23,7 +23,27 @@ Or install it yourself as:
|
|
23
23
|
|
24
24
|
## Usage
|
25
25
|
|
26
|
-
|
26
|
+
### Authentication
|
27
|
+
|
28
|
+
You authenticate to the MarineTraffic API by providing your secret API key in the request.
|
29
|
+
To use your API key, you need only set Marinetraffic.api_key equal to the key. The Ruby library will automatically send this key in each request.
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
require "stripe"
|
33
|
+
Marinetraffic.api_key = "2571121d07b9ce09c1abc34db75606a840a2c68c"
|
34
|
+
```
|
35
|
+
|
36
|
+
### Find vessels
|
37
|
+
|
38
|
+
You can call vessel informations by the Vessel.find method. This method accepts a *MMSI Number* and an optional flag for *extended data* (false by default).
|
39
|
+
|
40
|
+
```ruby
|
41
|
+
vessel = Marinetraffic::Vessel.find("311026000", true)
|
42
|
+
vessel.mmsi # => "311026000"
|
43
|
+
vessel.lat # => "54.520730"
|
44
|
+
vessel.lng # => "10.421800"
|
45
|
+
vessel.ship_name # => "NINA"
|
46
|
+
```
|
27
47
|
|
28
48
|
## Development
|
29
49
|
|
data/lib/marinetraffic.rb
CHANGED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
API_URL = "http://services.marinetraffic.com/api"
|
5
|
+
|
6
|
+
module Marinetraffic
|
7
|
+
class API
|
8
|
+
def self.call(name, params = {})
|
9
|
+
params[:protocol] = :json
|
10
|
+
param_string = params.map{|attr| "#{attr.first}:#{attr.last}"}.join('/')
|
11
|
+
url = "#{API_URL}/#{name}/#{Marinetraffic.api_key}/#{param_string}"
|
12
|
+
response = Faraday.get(url)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
module Marinetraffic
|
2
|
+
class Vessel
|
3
|
+
|
4
|
+
attr_reader :mmsi, :lat, :lon, :speed, :course, :status, :timestamp
|
5
|
+
attr_reader :ship_type, :ship_name, :imo, :callsign, :flag, :current_port, :last_port, :last_port_time, :destination, :eta, :length, :draught, :grt, :dwt, :year_built
|
6
|
+
|
7
|
+
def initialize(attributes = {})
|
8
|
+
@mmsi = attributes["mmsi"]
|
9
|
+
@lat = attributes["lat"]
|
10
|
+
@lon = attributes["lon"]
|
11
|
+
@speed = attributes["speed"]
|
12
|
+
@course = attributes["course"]
|
13
|
+
@status = attributes["status"]
|
14
|
+
@timestamp = attributes["timestamp"]
|
15
|
+
@ship_type = attributes["ship_type"]
|
16
|
+
@ship_name = attributes["ship_name"]
|
17
|
+
@imo = attributes["imo"]
|
18
|
+
@callsign = attributes["callsign"]
|
19
|
+
@flag = attributes["flag"]
|
20
|
+
@current_port = attributes["current_port"]
|
21
|
+
@last_port = attributes["last_port"]
|
22
|
+
@last_port_time = attributes["last_port_time"]
|
23
|
+
@destination = attributes["destination"]
|
24
|
+
@eta = attributes["eta"]
|
25
|
+
@length = attributes["length"]
|
26
|
+
@draught = attributes["draught"]
|
27
|
+
@grt = attributes["grt"]
|
28
|
+
@dwt = attributes["dwt"]
|
29
|
+
@year_built = attributes["year_built"]
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.find(mmsi, extended = false)
|
33
|
+
params = { mmsi: mmsi, timespan: 20 }
|
34
|
+
params[:msgtype] = :extended if extended
|
35
|
+
response = API.call(:exportvessel, params)
|
36
|
+
list = JSON.parse(response.body).first
|
37
|
+
attributes = map_attributes(list)
|
38
|
+
new(attributes)
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.map_attributes(list)
|
42
|
+
attributes = {}
|
43
|
+
attributes["mmsi"] = list.shift
|
44
|
+
attributes["lat"] = list.shift
|
45
|
+
attributes["lon"] = list.shift
|
46
|
+
attributes["speed"] = list.shift
|
47
|
+
attributes["course"] = list.shift
|
48
|
+
attributes["status"] = list.shift
|
49
|
+
attributes["timestamp"] = list.shift
|
50
|
+
attributes["ship_type"] = list.shift
|
51
|
+
attributes["ship_name"] = list.shift
|
52
|
+
attributes["imo"] = list.shift
|
53
|
+
attributes["callsign"] = list.shift
|
54
|
+
attributes["flag"] = list.shift
|
55
|
+
attributes["current_port"] = list.shift
|
56
|
+
attributes["last_port"] = list.shift
|
57
|
+
attributes["last_port_time"] = list.shift
|
58
|
+
attributes["destination"] = list.shift
|
59
|
+
attributes["eta"] = list.shift
|
60
|
+
attributes["length"] = list.shift
|
61
|
+
attributes["draught"] = list.shift
|
62
|
+
attributes["grt"] = list.shift
|
63
|
+
attributes["dwt"] = list.shift
|
64
|
+
attributes["year_built"] = list.shift
|
65
|
+
attributes
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
data/marinetraffic.gemspec
CHANGED
@@ -19,6 +19,14 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
+
spec.add_dependency "faraday"
|
23
|
+
spec.add_dependency "json"
|
24
|
+
|
22
25
|
spec.add_development_dependency "bundler", "~> 1.9"
|
23
26
|
spec.add_development_dependency "rake", "~> 10.0"
|
27
|
+
spec.add_development_dependency "guard"
|
28
|
+
spec.add_development_dependency "guard-minitest", "~> 2.4.4"
|
29
|
+
spec.add_development_dependency "minitest"
|
30
|
+
spec.add_development_dependency "vcr"
|
31
|
+
spec.add_development_dependency "webmock"
|
24
32
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: marinetraffic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fabio Kuhn
|
@@ -10,6 +10,34 @@ bindir: exe
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2015-08-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: faraday
|
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
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: json
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
13
41
|
- !ruby/object:Gem::Dependency
|
14
42
|
name: bundler
|
15
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,6 +66,76 @@ dependencies:
|
|
38
66
|
- - "~>"
|
39
67
|
- !ruby/object:Gem::Version
|
40
68
|
version: '10.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: guard
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: guard-minitest
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 2.4.4
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 2.4.4
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: minitest
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: vcr
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: webmock
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
41
139
|
description: 'This is a API wrapper for MarineTraffic written in Ruby. You can find
|
42
140
|
more information about the API of MarineTraffic on this page: https://www.marinetraffic.com/en/ais-api-services'
|
43
141
|
email:
|
@@ -50,13 +148,16 @@ files:
|
|
50
148
|
- ".travis.yml"
|
51
149
|
- CODE_OF_CONDUCT.md
|
52
150
|
- Gemfile
|
151
|
+
- Guardfile
|
53
152
|
- LICENSE.txt
|
54
153
|
- README.md
|
55
154
|
- Rakefile
|
56
155
|
- bin/console
|
57
156
|
- bin/setup
|
58
157
|
- lib/marinetraffic.rb
|
158
|
+
- lib/marinetraffic/api.rb
|
59
159
|
- lib/marinetraffic/version.rb
|
160
|
+
- lib/marinetraffic/vessel.rb
|
60
161
|
- marinetraffic.gemspec
|
61
162
|
homepage: https://github.com/mordaroso/marinetraffic.
|
62
163
|
licenses:
|