quoth 0.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.
- data/.gitignore +18 -0
- data/.rvmrc +2 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/README.md +47 -0
- data/Rakefile +2 -0
- data/bin/quoth +4 -0
- data/lib/data/data.html +6253 -0
- data/lib/quoth.rb +40 -0
- data/quoth.gemspec +16 -0
- data/spec/quoth_spec.rb +8 -0
- metadata +80 -0
data/lib/quoth.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
#!/usr/bin/evn ruby
|
2
|
+
require 'net/http'
|
3
|
+
require 'open-uri'
|
4
|
+
require 'nokogiri'
|
5
|
+
|
6
|
+
# The main random wiki driver
|
7
|
+
module Quoth
|
8
|
+
FILE_NAME = File.dirname(__FILE__)+'/data/data.html'
|
9
|
+
URL = 'http://en.wikiquote.org/wiki/Wikiquote:Quote_of_the_Day'
|
10
|
+
|
11
|
+
# Get a random quote of the day from wikiquotes
|
12
|
+
#
|
13
|
+
# Example:
|
14
|
+
# >> RandomWikiQuote.get
|
15
|
+
# => "Ruby rocks"
|
16
|
+
def self.get
|
17
|
+
quotes.sample
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.get_first
|
21
|
+
quotes.first
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.refresh_quotes
|
25
|
+
File.open(FILE_NAME, 'w') do |file|
|
26
|
+
open(URL) do |uri|
|
27
|
+
file.write(uri.read)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
"Successfully refreshed quotes from #{URL}."
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def self.quotes
|
36
|
+
refresh_quotes unless File.exist? FILE_NAME
|
37
|
+
Nokogiri::HTML(File.read(FILE_NAME)).css('dd,li').map &:text
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
data/quoth.gemspec
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
Gem::Specification.new do |gem|
|
3
|
+
gem.authors = ['Alister Scott']
|
4
|
+
gem.email = ['alister.scott@gmail.com']
|
5
|
+
gem.description = 'Pseudo random quote of the day from wikiquotes'
|
6
|
+
gem.summary = 'Pseudo random quote of the day from wikiquotes'
|
7
|
+
gem.homepage = ""
|
8
|
+
gem.files = `git ls-files`.split($\)
|
9
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
10
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
11
|
+
gem.name = 'quoth'
|
12
|
+
gem.require_paths = ['lib']
|
13
|
+
gem.version = '0.0.1'
|
14
|
+
gem.add_dependency 'nokogiri'
|
15
|
+
gem.add_development_dependency 'rspec'
|
16
|
+
end
|
data/spec/quoth_spec.rb
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
require 'quoth'
|
3
|
+
|
4
|
+
describe Quoth do
|
5
|
+
it 'returns a quote' do
|
6
|
+
Quoth.get_first.should == '11. I have a dream that my four little children will one day live in a nation where they will not be judged by the color of their skin but by the content of their character. ~ Martin Luther King (This was the first "Quote of the Day" at Wikiquote, selected by Nanobug on 11 July 2003.)'
|
7
|
+
end
|
8
|
+
end
|
metadata
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: quoth
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Alister Scott
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-06-07 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: nokogiri
|
16
|
+
requirement: &70181946716740 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70181946716740
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rspec
|
27
|
+
requirement: &70181946716180 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70181946716180
|
36
|
+
description: Pseudo random quote of the day from wikiquotes
|
37
|
+
email:
|
38
|
+
- alister.scott@gmail.com
|
39
|
+
executables:
|
40
|
+
- quoth
|
41
|
+
extensions: []
|
42
|
+
extra_rdoc_files: []
|
43
|
+
files:
|
44
|
+
- .gitignore
|
45
|
+
- .rvmrc
|
46
|
+
- Gemfile
|
47
|
+
- LICENSE
|
48
|
+
- README.md
|
49
|
+
- Rakefile
|
50
|
+
- bin/quoth
|
51
|
+
- lib/data/data.html
|
52
|
+
- lib/quoth.rb
|
53
|
+
- quoth.gemspec
|
54
|
+
- spec/quoth_spec.rb
|
55
|
+
homepage: ''
|
56
|
+
licenses: []
|
57
|
+
post_install_message:
|
58
|
+
rdoc_options: []
|
59
|
+
require_paths:
|
60
|
+
- lib
|
61
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
62
|
+
none: false
|
63
|
+
requirements:
|
64
|
+
- - ! '>='
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
67
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
69
|
+
requirements:
|
70
|
+
- - ! '>='
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '0'
|
73
|
+
requirements: []
|
74
|
+
rubyforge_project:
|
75
|
+
rubygems_version: 1.8.17
|
76
|
+
signing_key:
|
77
|
+
specification_version: 3
|
78
|
+
summary: Pseudo random quote of the day from wikiquotes
|
79
|
+
test_files:
|
80
|
+
- spec/quoth_spec.rb
|