Class: HamRadio
- Inherits:
-
Object
- Object
- HamRadio
- Defined in:
- lib/hamradio.rb
Instance Method Summary collapse
- #grid_encode(dms) ⇒ Object
-
#initialize ⇒ HamRadio
constructor
A new instance of HamRadio.
- #lookup_callsign(call) ⇒ Object
- #valid_callsign(call) ⇒ Object
- #valid_gridsquare(grid) ⇒ Object
Constructor Details
#initialize ⇒ HamRadio
Returns a new instance of HamRadio.
3 4 5 |
# File 'lib/hamradio.rb', line 3 def initialize() end |
Instance Method Details
#grid_encode(dms) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/hamradio.rb', line 7 def grid_encode(dms) # return nil if this isn't a valid gridsquare return nil if self.valid_gridsquare(dms) == nil grid = '' lat = dms[0].to_f+90 lon = dms[1].to_f+180 v = (lon/20).to_i lon -= (v*20) grid += ((?A.ord + v).chr).to_s # first letter v = (lat/10).to_i lat -= (v*10) grid += ((?A.ord + v).chr).to_s # second letter p3 = (lon/2).to_i grid += p3.to_s # third number p4 = (lat).to_i grid += p4.to_s # fourth number lon -= p3*2 lat -= p4 p3 = (?0.ord + p3.to_i).chr p4 = (?0.ord + p4).chr p5 = (12.ord * lon).to_i p6 = (24.ord * lat).to_i grid += ((?a.ord + p5).chr).to_s # fifth letter grid += ((?a.ord + p6).chr).to_s # sixth letter end |
#lookup_callsign(call) ⇒ Object
45 46 47 48 49 50 |
# File 'lib/hamradio.rb', line 45 def lookup_callsign(call) require 'nestful' c = Nestful.get 'http://callbytxt.org/db/'+call+'.json', :format => :json #=> {:json_hash => 1} c['calls'] end |
#valid_callsign(call) ⇒ Object
52 53 54 |
# File 'lib/hamradio.rb', line 52 def valid_callsign(call) (call =~ /^([BFGIKMNTW]|[A-Z0-9]{2})[0-9][A-Z0-9]{0,3}[A-Z]$/i) != nil end |
#valid_gridsquare(grid) ⇒ Object
41 42 43 |
# File 'lib/hamradio.rb', line 41 def valid_gridsquare(grid) (grid =~ /[a-z][a-z]\d\d[a-z]*/i) != nil end |