juliocesar-goingtorain-cli 0.1

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.
@@ -0,0 +1,23 @@
1
+ #goingtorain.com CLI interface
2
+
3
+ A simple CLI interface for (goingtorain.com)[http://goingtorain.com].
4
+
5
+ ##Usage
6
+
7
+ I'll build a gem soon. In the meantime, clone this repo, then run
8
+
9
+ ./goingtorain
10
+
11
+ That will give you the prospects of raining today where you are, as precise as goingtorain.com can determine. You
12
+ can also specify a location, like for instance
13
+
14
+ ./goingtorain london
15
+
16
+ Or alternatively, you can find out tomorrow's weather by just passing on "tomorrow" as an argument
17
+
18
+ ./goingtorain tomorrow tokyo
19
+
20
+ ##Notes
21
+
22
+ goingtorain.com apparently only takes input from a cookie. Attempting to just submit the form on the page
23
+ with a location's name would always yield a forecast for my current detected location. Had to resort to WWW::Mechanize.
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'echoe'
4
+
5
+ Echoe.new('goingtorain-cli', '0.1') do |g|
6
+ g.description = 'A command line interface for goingtorain.com'
7
+ g.url = 'http://github.com/juliocesar/goingtorain-cli'
8
+ g.author = 'Julio Cesar Ody'
9
+ g.email = 'julioody@gmail.com'
10
+ end
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ begin
4
+ %w(rubygems mechanize hpricot).each { |lib| require lib }
5
+ rescue LoadError
6
+ STDERR.puts 'Seems you\'re missing either WWW::Mechanize or Hpricot. Run "sudo gem install mechanize" and/or "sudo gem install hpricot"'
7
+ exit(-1)
8
+ end
9
+
10
+ tomorrow = ARGV.member?('tomorrow') ? ARGV.delete('tomorrow') : ''
11
+
12
+ agent = WWW::Mechanize.new
13
+ page = agent.get "http://goingtorain.com/#{tomorrow}"
14
+ unless ARGV.empty?
15
+ cookie = agent.cookies.first
16
+ cookie.value = [cookie.value.split('%3A').first, '%3A', ARGV.join(' ')].join
17
+ page = agent.get "http://goingtorain.com/#{tomorrow}"
18
+ end
19
+ puts page.search('#forecast').text.gsub(/[\n\t]+/, ' ').sub(/^ /, '').capitalize
@@ -0,0 +1,36 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{goingtorain-cli}
5
+ s.version = "0.1"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Julio Cesar Ody"]
9
+ s.date = %q{2008-12-01}
10
+ s.default_executable = %q{goingtorain}
11
+ s.description = %q{A command line interface for goingtorain.com}
12
+ s.email = %q{julioody@gmail.com}
13
+ s.executables = ["goingtorain"]
14
+ s.extra_rdoc_files = ["bin/goingtorain", "README.markdown"]
15
+ s.files = ["bin/goingtorain", "Rakefile", "README.markdown", "Manifest", "goingtorain-cli.gemspec"]
16
+ s.has_rdoc = true
17
+ s.homepage = %q{http://github.com/juliocesar/goingtorain-cli}
18
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Goingtorain-cli", "--main", "README.markdown"]
19
+ s.require_paths = ["lib"]
20
+ s.rubyforge_project = %q{goingtorain-cli}
21
+ s.rubygems_version = %q{1.3.1}
22
+ s.summary = %q{A command line interface for goingtorain.com}
23
+
24
+ if s.respond_to? :specification_version then
25
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
26
+ s.specification_version = 2
27
+
28
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
29
+ s.add_development_dependency(%q<echoe>, [">= 0"])
30
+ else
31
+ s.add_dependency(%q<echoe>, [">= 0"])
32
+ end
33
+ else
34
+ s.add_dependency(%q<echoe>, [">= 0"])
35
+ end
36
+ end
metadata ADDED
@@ -0,0 +1,71 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: juliocesar-goingtorain-cli
3
+ version: !ruby/object:Gem::Version
4
+ version: "0.1"
5
+ platform: ruby
6
+ authors:
7
+ - Julio Cesar Ody
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-12-01 00:00:00 -08:00
13
+ default_executable: goingtorain
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: echoe
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "0"
23
+ version:
24
+ description: A command line interface for goingtorain.com
25
+ email: julioody@gmail.com
26
+ executables:
27
+ - goingtorain
28
+ extensions: []
29
+
30
+ extra_rdoc_files:
31
+ - bin/goingtorain
32
+ - README.markdown
33
+ files:
34
+ - bin/goingtorain
35
+ - Rakefile
36
+ - README.markdown
37
+ - Manifest
38
+ - goingtorain-cli.gemspec
39
+ has_rdoc: true
40
+ homepage: http://github.com/juliocesar/goingtorain-cli
41
+ post_install_message:
42
+ rdoc_options:
43
+ - --line-numbers
44
+ - --inline-source
45
+ - --title
46
+ - Goingtorain-cli
47
+ - --main
48
+ - README.markdown
49
+ require_paths:
50
+ - lib
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: "0"
56
+ version:
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: "1.2"
62
+ version:
63
+ requirements: []
64
+
65
+ rubyforge_project: goingtorain-cli
66
+ rubygems_version: 1.2.0
67
+ signing_key:
68
+ specification_version: 2
69
+ summary: A command line interface for goingtorain.com
70
+ test_files: []
71
+