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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9b563329bb284dc1d88d82963b5ee5312208daa4
4
- data.tar.gz: d743f239e67902f784d91b5f051fed534b47531a
3
+ metadata.gz: 13660d050b7cfa88aad173f305e762e0f9c77f84
4
+ data.tar.gz: 3ca8b095bd9e1e1d3ae4d796c2440f57564c9ac8
5
5
  SHA512:
6
- metadata.gz: 784ad73ef881942547a48d4ef0400149be5b39ad9f9f893744fde462d6eb856cbf8e60a3eece3329572f8ddd221d7f9dceb6b995eed6e21762b04d3feb3e0f79
7
- data.tar.gz: 255e5bd0b487f5a9916cd4758fd540d9d8a59cd5baeec7c36d9e8c2089664c136a1009c83e61cec80f9369e7428c4936521f86477079c9d24cd95aff45d5785f
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.arrivals_by_timestamp[0..9]
37
+ puts PLA.sort_arrivals_by_timestamp[0..9]
38
38
 
39
39
  # List vessels alphabetically, as per PLA website
40
- puts PLA.all_by_vessel_name
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
- return self.munge_by_field movements, :select, field, key
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
- movement_type = $1.to_sym
61
- field = $2.to_sym
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 movement_type.to_s =~ /^find_(.*)$/
64
- movement_type = $1.to_sym
65
- return self.find(movement_type, field, args.first)
66
- else
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
@@ -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.
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "pla"
7
- spec.version = '0.4.0'
7
+ spec.version = '0.5.0'
8
8
  spec.authors = ["jspc"]
9
9
  spec.email = ["james@zero-internet.org.uk"]
10
10
 
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.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-29 00:00:00.000000000 Z
11
+ date: 2016-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler