pla 0.4.0 → 0.5.0

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.
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