notams 0.1 → 0.2.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.
@@ -1,3 +1,4 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.2
3
+ - 1.9.3
4
+ - 2.0.0
@@ -0,0 +1,8 @@
1
+ ## Contributing to "notams"
2
+
3
+ 1. Fork it
4
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
5
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
6
+ 4. Make sure all tests pass!
7
+ 5. Push to the branch (`git push origin my-new-feature`)
8
+ 6. Create new Pull Request
data/Guardfile CHANGED
@@ -1,7 +1,4 @@
1
- # A sample Guardfile
2
- # More info at https://github.com/guard/guard#readme
3
-
4
- guard 'rspec', :version => 2 do
1
+ guard 'rspec' do
5
2
  watch(%r{^spec/.+_spec\.rb$})
6
3
  watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
7
4
  watch('spec/spec_helper.rb') { "spec" }
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012 Svilen Vassilev
1
+ Copyright (c) 2013 Svilen Vassilev
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -4,9 +4,15 @@ A ruby gem for retrieving the currently active NOTAMs for an airport or a region
4
4
  Supports multiple airports/regions in one request. Pulls data from
5
5
  [FAA](http://www.faa.gov/) website. Depends on `nokogiri` for the heavy lifting.
6
6
 
7
- [![Build Status](https://secure.travis-ci.org/tarakanbg/notams.png)](http://travis-ci.org/tarakanbg/notams)
8
- [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/tarakanbg/notams)
7
+ [![Build Status](https://secure.travis-ci.org/tarakanbg/notams.png?branch=master)](http://travis-ci.org/tarakanbg/notams)
9
8
  [![Gemnasium](https://gemnasium.com/tarakanbg/notams.png?travis)](https://gemnasium.com/tarakanbg/notams)
9
+ [![Gem Version](https://badge.fury.io/rb/notams.png)](http://badge.fury.io/rb/notams)
10
+ [![Code Climate](https://codeclimate.com/github/tarakanbg/notams.png)](https://codeclimate.com/github/tarakanbg/notams)
11
+
12
+ ## Requirements
13
+
14
+ [Ruby 1.9.3](http://www.ruby-lang.org/en/downloads/) or higher | **Supports Ruby 2.0!**
15
+
10
16
 
11
17
  ## Installation
12
18
 
@@ -107,7 +113,13 @@ end
107
113
 
108
114
  ## Changelog
109
115
 
110
- ### v. 0.1 28 July 2012
116
+ ### v. 0.2.0 27 February 2013
117
+
118
+ * Ruby 2.0 support
119
+ * dependencies update
120
+ * classes refactored
121
+
122
+ ### v. 0.1.0 28 July 2012
111
123
 
112
124
  * added optional arguments customization to the `.notams` method (see [Advanced Usage](#advanced-usage))
113
125
  * code refactored into classes for flexibility
@@ -118,6 +130,18 @@ end
118
130
  1. Fork it
119
131
  2. Create your feature branch (`git checkout -b my-new-feature`)
120
132
  3. Commit your changes (`git commit -am 'Added some feature'`)
121
- 4. Make sure all tests are passing
133
+ 4. Make sure all tests pass!
122
134
  5. Push to the branch (`git push origin my-new-feature`)
123
135
  6. Create new Pull Request
136
+
137
+
138
+ ## Credits
139
+
140
+ Copyright © 2013 [Svilen Vassilev](http://svilen.rubystudio.net)
141
+
142
+ *If you find my work useful or time-saving, you can endorse it or buy me a cup of coffee:*
143
+
144
+ [![endorse](http://api.coderwall.com/svilenv/endorsecount.png)](http://coderwall.com/svilenv)
145
+ [![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5FR7AQA4PLD8A)
146
+
147
+ Released under the [MIT LICENSE](https://github.com/tarakanbg/notams/blob/master/LICENSE)
@@ -1,4 +1,4 @@
1
- require "notams/version"
1
+ %w{notams/version notams/notam_fetcher notams/notam}.each { |lib| require lib }
2
2
 
3
3
  class String
4
4
  def notams(args={})
@@ -7,76 +7,9 @@ class String
7
7
  end
8
8
 
9
9
  module Notams
10
+
10
11
  def self.notams(icao, args)
11
12
  NotamFetcher.new(icao, args).fetch
12
13
  end
13
14
 
14
- class NotamFetcher
15
- require 'nokogiri'
16
- require 'open-uri'
17
-
18
- attr_accessor :icao, :obj_list, :notams, :string_notams
19
-
20
- def initialize(icao, args = nil)
21
- @icao = icao
22
- process_arguments(args) if args.class == Hash
23
- @notams = []; @string_notams = []
24
- notams_object_list
25
- notams_string_list
26
- end
27
-
28
- def raw_list
29
- Nokogiri::HTML(open("https://pilotweb.nas.faa.gov/PilotWeb/notamRetrievalByICAOAction.do?method=displayByICAOs&reportType=RAW&formatType=DOMESTIC&retrieveLocId=#{@icao}&actionType=notamRetrievalByICAOs"))
30
- end
31
-
32
- def fetch
33
- @obj_list == true ? @notams : @string_notams
34
- end
35
-
36
- private
37
-
38
- def notams_string_list
39
- @notams.each {|n| @string_notams << n.to_s}
40
- end
41
-
42
- def notams_object_list
43
- raw_list.css("pre").each {|n| @notams << Notam.new(n.text)}
44
- end
45
-
46
- def process_arguments(args)
47
- args[:objects] == true ? @obj_list = true : @obj_list = false
48
- end
49
-
50
- end
51
-
52
- class Notam
53
-
54
- attr_accessor :raw, :message, :icao
55
-
56
- def initialize(text)
57
- @raw = text
58
- @message = get_message
59
- @icao = get_icao
60
- end
61
-
62
- def to_s
63
- @raw
64
- end
65
-
66
- private
67
-
68
- def get_message
69
- starts = @raw.index('E)') + 3
70
- @raw.index('F)') ? ends = @raw.index('F)') : ends = @raw.length
71
- @raw[starts..ends]
72
- end
73
-
74
- def get_icao
75
- starts = @raw.index('A)') + 3
76
- ends = @raw.index('B)') - 2
77
- @raw[starts..ends]
78
- end
79
-
80
- end
81
-
82
15
  end
@@ -0,0 +1,33 @@
1
+ module Notams
2
+
3
+ class Notam
4
+
5
+ attr_accessor :raw, :message, :icao
6
+
7
+ def initialize(text)
8
+ @raw = text
9
+ @message = get_message
10
+ @icao = get_icao
11
+ end
12
+
13
+ def to_s
14
+ @raw
15
+ end
16
+
17
+ private
18
+
19
+ def get_message
20
+ starts = @raw.index('E)') + 3
21
+ @raw.index('F)') ? ends = @raw.index('F)') : ends = @raw.length
22
+ @raw[starts..ends]
23
+ end
24
+
25
+ def get_icao
26
+ starts = @raw.index('A)') + 3
27
+ ends = @raw.index('B)') - 2
28
+ @raw[starts..ends]
29
+ end
30
+
31
+ end
32
+
33
+ end
@@ -0,0 +1,41 @@
1
+ module Notams
2
+
3
+ class NotamFetcher
4
+ require 'nokogiri'
5
+ require 'open-uri'
6
+
7
+ attr_accessor :icao, :obj_list, :notams, :string_notams
8
+
9
+ def initialize(icao, args = nil)
10
+ @icao = icao
11
+ process_arguments(args) if args.class == Hash
12
+ @notams = []; @string_notams = []
13
+ notams_object_list
14
+ notams_string_list
15
+ end
16
+
17
+ def raw_list
18
+ Nokogiri::HTML(open("https://pilotweb.nas.faa.gov/PilotWeb/notamRetrievalByICAOAction.do?method=displayByICAOs&reportType=RAW&formatType=DOMESTIC&retrieveLocId=#{@icao}&actionType=notamRetrievalByICAOs"))
19
+ end
20
+
21
+ def fetch
22
+ @obj_list == true ? @notams : @string_notams
23
+ end
24
+
25
+ private
26
+
27
+ def notams_string_list
28
+ @notams.each {|n| @string_notams << n.to_s}
29
+ end
30
+
31
+ def notams_object_list
32
+ raw_list.css("pre").each {|n| @notams << Notam.new(n.text)}
33
+ end
34
+
35
+ def process_arguments(args)
36
+ args[:objects] == true ? @obj_list = true : @obj_list = false
37
+ end
38
+
39
+ end
40
+
41
+ end
@@ -1,3 +1,3 @@
1
1
  module Notams
2
- VERSION = "0.1"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -20,6 +20,6 @@ Gem::Specification.new do |gem|
20
20
  gem.add_development_dependency "guard"
21
21
  gem.add_development_dependency "libnotify"
22
22
  gem.add_development_dependency "guard-rspec"
23
- gem.add_dependency "nokogiri", "~> 1.5.5"
23
+ gem.add_dependency "nokogiri", "~> 1.5.6"
24
24
 
25
25
  end
@@ -54,7 +54,6 @@ describe String do
54
54
  icao = "lqsa"
55
55
  Notams::NotamFetcher.new(icao, :objects => true).fetch.first.message.should eq(icao.notams(:objects => true).first.message)
56
56
  icao.notams(:objects => true).first.message.class.should eq(String)
57
- # "lqsb".notams(:objects => true).first.message.should eq("moo")
58
57
  end
59
58
 
60
59
  it "should properly return the notam object icao" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: notams
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.1'
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-28 00:00:00.000000000 Z
12
+ date: 2013-02-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -98,7 +98,7 @@ dependencies:
98
98
  requirements:
99
99
  - - ~>
100
100
  - !ruby/object:Gem::Version
101
- version: 1.5.5
101
+ version: 1.5.6
102
102
  type: :runtime
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
@@ -106,7 +106,7 @@ dependencies:
106
106
  requirements:
107
107
  - - ~>
108
108
  - !ruby/object:Gem::Version
109
- version: 1.5.5
109
+ version: 1.5.6
110
110
  description: Retrieves the currently active NOTAMs for an airport or a region. Supports
111
111
  multiple airports/regions in one request. Pulls data from FAA website.
112
112
  email:
@@ -117,12 +117,15 @@ extra_rdoc_files: []
117
117
  files:
118
118
  - .gitignore
119
119
  - .travis.yml
120
+ - CONTRIBUTING.md
120
121
  - Gemfile
121
122
  - Guardfile
122
123
  - LICENSE
123
124
  - README.md
124
125
  - Rakefile
125
126
  - lib/notams.rb
127
+ - lib/notams/notam.rb
128
+ - lib/notams/notam_fetcher.rb
126
129
  - lib/notams/version.rb
127
130
  - notams.gemspec
128
131
  - spec/notams_spec.rb
@@ -147,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
150
  version: '0'
148
151
  requirements: []
149
152
  rubyforge_project:
150
- rubygems_version: 1.8.24
153
+ rubygems_version: 1.8.25
151
154
  signing_key:
152
155
  specification_version: 3
153
156
  summary: Retrieves the currently active NOTAMs for an airport or a region