pla 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -2
- data/lib/pla.rb +19 -10
- data/lib/pla/movement.rb +5 -0
- data/pla.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 13660d050b7cfa88aad173f305e762e0f9c77f84
|
4
|
+
data.tar.gz: 3ca8b095bd9e1e1d3ae4d796c2440f57564c9ac8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3fbdbe48f1614219ceacfd49364d0195cfb8191b48fcd7b55f5416e119053eb77fffd445f23cca3dfa85b57d081133691196053b41bac424f926fc031ab89712
|
7
|
+
data.tar.gz: 782a7bff59d0c00654acea8837afac6da350b7ce264ea9b2222f634681f9d41af18182dba9cb7d8ffccdce5533f7ac4667f83b44bf0bcfa5cac895efa4c0e3fb
|
data/README.md
CHANGED
@@ -34,10 +34,10 @@ puts in_port
|
|
34
34
|
puts all
|
35
35
|
|
36
36
|
# Find next ten boats set to arrive
|
37
|
-
puts PLA.
|
37
|
+
puts PLA.sort_arrivals_by_timestamp[0..9]
|
38
38
|
|
39
39
|
# List vessels alphabetically, as per PLA website
|
40
|
-
puts PLA.
|
40
|
+
puts PLA.sort_all_by_vessel_name
|
41
41
|
|
42
42
|
# Find all movements made by Panamanian vessels
|
43
43
|
puts PLA.find_all_by_country 'Panama'
|
@@ -47,6 +47,12 @@ puts PLA.find_all_by_vessel_name 'feo swan'
|
|
47
47
|
|
48
48
|
# Listing the movements of a vessel by time
|
49
49
|
puts PLA.find_all_by_vessel_name('balmoral').sort_by{|s| s[:timestamp]}
|
50
|
+
|
51
|
+
# Find all vessels leaving a location
|
52
|
+
puts PLA.find_all_by_from('rotterdam')
|
53
|
+
|
54
|
+
# Likewise; all locations
|
55
|
+
puts PLA.find_all_by_location('rotterdam')
|
50
56
|
```
|
51
57
|
|
52
58
|
Licence
|
data/lib/pla.rb
CHANGED
@@ -26,7 +26,15 @@ class PLA
|
|
26
26
|
def self.find movement_type, field, key
|
27
27
|
if self.methods.include? movement_type
|
28
28
|
movements = self.send(movement_type)
|
29
|
-
|
29
|
+
|
30
|
+
if field == :location
|
31
|
+
return [
|
32
|
+
self.munge_by_field(movements, :select, :to, key),
|
33
|
+
self.munge_by_field(movements, :select, :from, key)
|
34
|
+
].flatten.uniq
|
35
|
+
else
|
36
|
+
return self.munge_by_field movements, :select, field, key
|
37
|
+
end
|
30
38
|
end
|
31
39
|
[]
|
32
40
|
end
|
@@ -56,22 +64,23 @@ class PLA
|
|
56
64
|
end
|
57
65
|
|
58
66
|
def self.method_missing(m, *args, &block)
|
59
|
-
if m.to_s =~ /^(.*)_by_(.*)$/
|
60
|
-
|
61
|
-
|
67
|
+
if m.to_s =~ /^(find|sort)_(.*)_by_(.*)$/
|
68
|
+
querier = $1
|
69
|
+
type = $2.to_sym
|
70
|
+
field = $3.to_sym
|
62
71
|
|
63
|
-
if
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
return self.sort(movement_type, field)
|
72
|
+
if querier == 'find'
|
73
|
+
return self.find(type, field, args.first)
|
74
|
+
elsif querier == 'sort'
|
75
|
+
return self.sort(type, field)
|
68
76
|
end
|
69
77
|
end
|
70
78
|
super
|
71
79
|
end
|
72
80
|
|
73
81
|
def self.respond_to?(method_sym, include_private = false)
|
74
|
-
if method_sym.to_s =~ /^(.*)_by_(.*)$/
|
82
|
+
if method_sym.to_s =~ /^(find|sort)_(.*)_by_(.*)$/ and
|
83
|
+
self.methods.include? $2.to_sym
|
75
84
|
true
|
76
85
|
else
|
77
86
|
super
|
data/lib/pla/movement.rb
CHANGED
@@ -10,6 +10,7 @@ class PLA
|
|
10
10
|
def to_h
|
11
11
|
normalise_timestamp!
|
12
12
|
normalise_vessel!
|
13
|
+
normalise_notes!
|
13
14
|
normalise_fields!
|
14
15
|
|
15
16
|
@record
|
@@ -48,6 +49,10 @@ class PLA
|
|
48
49
|
@record.delete(:at)
|
49
50
|
end
|
50
51
|
|
52
|
+
def normalise_notes!
|
53
|
+
@record[:notes].empty? ? @records[:notes] = nil : nil
|
54
|
+
end
|
55
|
+
|
51
56
|
def gen_date year, month, day, hour, minute
|
52
57
|
# Because the pla doesn't provide a year we run the risk of providing
|
53
58
|
# a date in the past if the data wraps around the end of the year.
|
data/pla.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pla
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jspc
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-05-
|
11
|
+
date: 2016-05-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|