dolarhoy 0.2.0 → 0.3.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.
- data/bin/dolarhoy +5 -34
- data/dolarhoy.gemspec +16 -0
- data/dolarhoy.gemspec.erb +19 -0
- data/lib/dolarhoy.rb +42 -0
- data/lib/dolarhoy/currency.rb +2 -2
- data/ohm.gemspec +24 -0
- metadata +42 -58
data/bin/dolarhoy
CHANGED
@@ -1,40 +1,11 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
2
|
|
3
|
-
require "
|
4
|
-
require "dolarhoy/currency"
|
3
|
+
require "dolarhoy"
|
5
4
|
|
6
|
-
|
7
|
-
File.read(ARGV.first)
|
5
|
+
if ARGV.first
|
6
|
+
currencies = DolarHoy.fetch(File.read(ARGV.first))
|
8
7
|
else
|
9
|
-
|
10
|
-
require 'uri'
|
11
|
-
|
12
|
-
response = Net::HTTP.start(URI.parse('http://www.dolarhoy.com').host) do |http|
|
13
|
-
http.get('/indexx.php', 'Referer' => 'http://www.dolarhoy.com')
|
14
|
-
end
|
15
|
-
|
16
|
-
if RUBY_VERSION > "1.9"
|
17
|
-
response.body.force_encoding("ISO-8859-1").encode("UTF-8")
|
18
|
-
else
|
19
|
-
response.body
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
doc = Nokogiri::HTML(html)
|
24
|
-
|
25
|
-
currencies = []
|
26
|
-
|
27
|
-
doc.css("body > div table[@bgcolor='#000000']").each do |table|
|
28
|
-
values = table.css("font[@size='3']")
|
29
|
-
next unless values.size > 1
|
30
|
-
|
31
|
-
currency = Currency.new(
|
32
|
-
table.at_css("td:first").inner_text,
|
33
|
-
values[0].inner_text,
|
34
|
-
values[1].inner_text
|
35
|
-
)
|
36
|
-
|
37
|
-
currencies << currency if currency.aliased?
|
8
|
+
currencies = DolarHoy.fetch
|
38
9
|
end
|
39
10
|
|
40
|
-
puts
|
11
|
+
puts(currencies.select { |c| c.aliased? }.sort.join("\n"))
|
data/dolarhoy.gemspec
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require "./lib/dolarhoy"
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = "dolarhoy"
|
5
|
+
s.version = DolarHoy::VERSION
|
6
|
+
s.summary = %{A command-line tool for DolarHoy.com.}
|
7
|
+
s.author = "Damian Janowski"
|
8
|
+
s.email = "damian.janowski@gmail.com"
|
9
|
+
|
10
|
+
s.files = `git ls-files`.split("\n")
|
11
|
+
|
12
|
+
s.bindir = "bin"
|
13
|
+
s.executables = "dolarhoy"
|
14
|
+
|
15
|
+
s.add_dependency("nokogiri", ">= 1.4.2")
|
16
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = 'dolarhoy'
|
3
|
+
s.version = '0.3.0'
|
4
|
+
s.summary = %{A command-line tool for DolarHoy.com.}
|
5
|
+
s.date = %q{2009-01-09}
|
6
|
+
s.author = "Damian Janowski"
|
7
|
+
s.email = "damian.janowski@gmail.com"
|
8
|
+
|
9
|
+
s.specification_version = 2 if s.respond_to? :specification_version=
|
10
|
+
|
11
|
+
s.files = <%= Dir['lib/**/*.rb', 'lib/aliases.yml', 'bin/**', 'README*', 'LICENSE', 'Rakefile', 'doc/**/*.*'].inspect %>
|
12
|
+
|
13
|
+
s.require_paths = ['lib']
|
14
|
+
|
15
|
+
s.bindir = "bin"
|
16
|
+
s.executables = "dolarhoy"
|
17
|
+
|
18
|
+
s.add_dependency("nokogiri", ">= 1.4.2")
|
19
|
+
end
|
data/lib/dolarhoy.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
require "nokogiri"
|
2
|
+
require "net/http"
|
3
|
+
require "uri"
|
4
|
+
|
5
|
+
module DolarHoy
|
6
|
+
VERSION = "0.3.0"
|
7
|
+
|
8
|
+
def self.fetch(html = self.html)
|
9
|
+
doc = Nokogiri::HTML(html)
|
10
|
+
|
11
|
+
currencies = []
|
12
|
+
|
13
|
+
doc.css("body > div table[@bgcolor='#000000']").each do |table|
|
14
|
+
values = table.css("font[@size='3']")
|
15
|
+
next unless values.size > 1
|
16
|
+
|
17
|
+
currency = Currency.new(
|
18
|
+
table.at_css("td:first").inner_text,
|
19
|
+
values[0].inner_text,
|
20
|
+
values[1].inner_text
|
21
|
+
)
|
22
|
+
|
23
|
+
currencies << currency
|
24
|
+
end
|
25
|
+
|
26
|
+
currencies
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.html
|
30
|
+
response = Net::HTTP.start(URI.parse('http://www.dolarhoy.com').host) do |http|
|
31
|
+
http.get('/indexx.php', 'Referer' => 'http://www.dolarhoy.com')
|
32
|
+
end
|
33
|
+
|
34
|
+
if RUBY_VERSION > "1.9"
|
35
|
+
response.body.force_encoding("ISO-8859-1").encode("UTF-8")
|
36
|
+
else
|
37
|
+
response.body
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
require "dolarhoy/currency"
|
data/lib/dolarhoy/currency.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require "yaml"
|
4
4
|
|
5
|
-
class Currency
|
5
|
+
class DolarHoy::Currency
|
6
6
|
include Comparable
|
7
7
|
|
8
8
|
attr_accessor :name, :buy, :sell
|
@@ -44,7 +44,7 @@ class Currency
|
|
44
44
|
def aliases
|
45
45
|
@@aliases ||= YAML.load_file(File.expand_path(File.join(File.dirname(__FILE__), '..', 'aliases.yml')))
|
46
46
|
end
|
47
|
-
|
47
|
+
|
48
48
|
def reverse_aliases
|
49
49
|
@@reverse_aliases ||= aliases.inject({}) do |reverse, (code, names)|
|
50
50
|
[*names].each { |name| reverse[name] = code }
|
data/ohm.gemspec
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = "ohm"
|
3
|
+
s.version = "1.2.0"
|
4
|
+
s.summary = %{Object-hash mapping library for Redis.}
|
5
|
+
s.description = %Q{Ohm is a library that allows to store an object in Redis, a persistent key-value database. It includes an extensible list of validations and has very good performance.}
|
6
|
+
s.authors = ["Michel Martens", "Damian Janowski", "Cyril David"]
|
7
|
+
s.email = ["michel@soveran.com", "djanowski@dimaion.com", "me@cyrildavid.com"]
|
8
|
+
s.homepage = "http://soveran.github.com/ohm/"
|
9
|
+
|
10
|
+
s.files = Dir[
|
11
|
+
"lib/**/*.rb",
|
12
|
+
"README*",
|
13
|
+
"LICENSE",
|
14
|
+
"Rakefile",
|
15
|
+
"test/**/*.rb",
|
16
|
+
"test/test.conf"
|
17
|
+
]
|
18
|
+
|
19
|
+
s.rubyforge_project = "ohm"
|
20
|
+
s.add_dependency "redis"
|
21
|
+
s.add_dependency "nest", "~> 1.0"
|
22
|
+
s.add_dependency "scrivener", "~> 0.0.3"
|
23
|
+
s.add_development_dependency "cutest", "~> 1.1"
|
24
|
+
end
|
metadata
CHANGED
@@ -1,87 +1,71 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: dolarhoy
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 2
|
9
|
-
- 0
|
10
|
-
version: 0.2.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.0
|
5
|
+
prerelease:
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Damian Janowski
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-11-09 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: nokogiri
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 3
|
30
|
-
segments:
|
31
|
-
- 1
|
32
|
-
- 4
|
33
|
-
- 2
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
34
21
|
version: 1.4.2
|
35
22
|
type: :runtime
|
36
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.4.2
|
37
30
|
description:
|
38
31
|
email: damian.janowski@gmail.com
|
39
|
-
executables:
|
32
|
+
executables:
|
40
33
|
- dolarhoy
|
41
34
|
extensions: []
|
42
|
-
|
43
35
|
extra_rdoc_files: []
|
44
|
-
|
45
|
-
files:
|
46
|
-
- lib/dolarhoy/currency.rb
|
47
|
-
- lib/aliases.yml
|
48
|
-
- bin/dolarhoy
|
49
|
-
- README
|
36
|
+
files:
|
50
37
|
- LICENSE
|
38
|
+
- README
|
51
39
|
- Rakefile
|
52
|
-
|
40
|
+
- bin/dolarhoy
|
41
|
+
- dolarhoy.gemspec
|
42
|
+
- dolarhoy.gemspec.erb
|
43
|
+
- lib/aliases.yml
|
44
|
+
- lib/dolarhoy.rb
|
45
|
+
- lib/dolarhoy/currency.rb
|
46
|
+
- ohm.gemspec
|
53
47
|
homepage:
|
54
48
|
licenses: []
|
55
|
-
|
56
49
|
post_install_message:
|
57
50
|
rdoc_options: []
|
58
|
-
|
59
|
-
require_paths:
|
51
|
+
require_paths:
|
60
52
|
- lib
|
61
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
53
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
62
54
|
none: false
|
63
|
-
requirements:
|
64
|
-
- -
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
|
67
|
-
|
68
|
-
- 0
|
69
|
-
version: "0"
|
70
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - ! '>='
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: '0'
|
59
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
60
|
none: false
|
72
|
-
requirements:
|
73
|
-
- -
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
|
76
|
-
segments:
|
77
|
-
- 0
|
78
|
-
version: "0"
|
61
|
+
requirements:
|
62
|
+
- - ! '>='
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '0'
|
79
65
|
requirements: []
|
80
|
-
|
81
66
|
rubyforge_project:
|
82
|
-
rubygems_version: 1.
|
67
|
+
rubygems_version: 1.8.21
|
83
68
|
signing_key:
|
84
|
-
specification_version:
|
69
|
+
specification_version: 3
|
85
70
|
summary: A command-line tool for DolarHoy.com.
|
86
71
|
test_files: []
|
87
|
-
|