wagon 2.0.1 → 2.0.2
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 +16 -21
- data/Gemfile +4 -0
- data/{LICENSE → LICENSE.txt} +1 -1
- data/README.md +25 -0
- data/Rakefile +9 -69
- data/bin/wagon +3 -144
- data/lib/wagon.rb +2 -5
- data/lib/wagon/cli.rb +138 -0
- data/lib/wagon/directory.rb +1 -1
- data/lib/wagon/household.rb +5 -3
- data/lib/wagon/version.rb +3 -0
- data/spec/spec_helper.rb +8 -8
- data/wagon.gemspec +30 -0
- metadata +168 -85
- data/.document +0 -5
- data/README.rdoc +0 -19
- data/VERSION +0 -1
data/.gitignore
CHANGED
@@ -1,24 +1,19 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
*.tmproj
|
6
|
-
tmtags
|
7
|
-
|
8
|
-
## EMACS
|
9
|
-
*~
|
10
|
-
\#*
|
11
|
-
.\#*
|
12
|
-
|
13
|
-
## VIM
|
14
|
-
*.swp
|
15
|
-
|
16
|
-
## PROJECT::GENERAL
|
17
|
-
coverage
|
18
|
-
doc
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
.bundle
|
4
|
+
.config
|
19
5
|
.yardoc
|
6
|
+
Gemfile.lock
|
7
|
+
InstalledFiles
|
8
|
+
_yardoc
|
9
|
+
coverage
|
10
|
+
doc/
|
11
|
+
lib/bundler/man
|
20
12
|
pkg
|
21
|
-
|
22
|
-
|
23
|
-
|
13
|
+
rdoc
|
14
|
+
spec/reports
|
15
|
+
test/tmp
|
16
|
+
test/version_tmp
|
17
|
+
tmp
|
18
|
+
user.dat
|
24
19
|
*.pdf
|
data/Gemfile
ADDED
data/{LICENSE → LICENSE.txt}
RENAMED
data/README.md
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
Wagon
|
2
|
+
==============
|
3
|
+
Provided a valid lds.org username and password Wagon will download the
|
4
|
+
information and pictures from the Photo Directory page and compile it
|
5
|
+
into a convenient PDF.
|
6
|
+
|
7
|
+
Usage
|
8
|
+
--------------
|
9
|
+
require 'wagon'
|
10
|
+
user = Wagon::connect('username', 'password')
|
11
|
+
pdf = user.ward.to_pdf(:font_size => 10, :rows => 9, ...)
|
12
|
+
pdf.render_file('photo_directory.pdf')
|
13
|
+
|
14
|
+
Terminal Usage
|
15
|
+
--------------
|
16
|
+
wagon --help
|
17
|
+
|
18
|
+
Installation
|
19
|
+
--------------
|
20
|
+
gem install wagon
|
21
|
+
|
22
|
+
Copyright
|
23
|
+
--------------
|
24
|
+
|
25
|
+
Copyright (c) 2012 Devin Christensen. See {file:LICENSE.txt LICENSE} for details.
|
data/Rakefile
CHANGED
@@ -1,77 +1,17 @@
|
|
1
|
-
|
2
|
-
require 'rake'
|
1
|
+
# encoding: utf-8
|
3
2
|
|
4
|
-
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = "wagon"
|
8
|
-
gem.summary = %Q{Create a PDF from the lds.org ward Photo Directory.}
|
9
|
-
gem.description = %Q{Provided a valid lds.org username and password, Wagon will download all the information from the Photo Directory page and compile it into a convenient PDF.}
|
10
|
-
gem.email = "devin@threetrieslater.com"
|
11
|
-
gem.homepage = "http://github.com/threetrieslater/wagon"
|
12
|
-
gem.authors = ["Devin Christensen"]
|
13
|
-
gem.bindir = 'bin'
|
14
|
-
gem.add_dependency "nokogiri", ">= 1.4.0"
|
15
|
-
gem.add_dependency "highline", ">= 1.5.1"
|
16
|
-
gem.add_dependency "prawn", "~> 0.8.0"
|
17
|
-
gem.add_dependency "queue_to_the_future", ">= 0.1.0"
|
18
|
-
gem.add_development_dependency "rspec", ">= 1.2.9"
|
19
|
-
gem.add_development_dependency "yard", ">= 0"
|
20
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
21
|
-
end
|
22
|
-
Jeweler::GemcutterTasks.new
|
23
|
-
rescue LoadError
|
24
|
-
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
25
|
-
end
|
26
|
-
|
27
|
-
require 'spec/rake/spectask'
|
28
|
-
Spec::Rake::SpecTask.new(:spec) do |spec|
|
29
|
-
spec.libs << 'lib' << 'spec'
|
30
|
-
spec.spec_files = FileList['spec/**/*_spec.rb']
|
31
|
-
end
|
3
|
+
require "bundler/gem_tasks"
|
32
4
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
spec.
|
5
|
+
require 'rspec/core'
|
6
|
+
require 'rspec/core/rake_task'
|
7
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
8
|
+
spec.pattern = FileList['spec/**/*_spec.rb']
|
37
9
|
end
|
38
10
|
|
39
|
-
task :spec => :check_dependencies
|
40
|
-
|
41
11
|
task :default => :spec
|
42
12
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
rescue LoadError
|
47
|
-
task :yardoc do
|
48
|
-
abort "YARD is not available. In order to run yardoc, you must: sudo gem install yard"
|
49
|
-
end
|
13
|
+
require 'yard'
|
14
|
+
YARD::Rake::YardocTask.new do |t|
|
15
|
+
t.files = ['-', 'LICENSE.txt']
|
50
16
|
end
|
51
17
|
|
52
|
-
project_path = File.dirname(__FILE__)
|
53
|
-
version = open("#{project_path}/VERSION").read().strip()
|
54
|
-
|
55
|
-
namespace :gui do
|
56
|
-
def run(command)
|
57
|
-
puts "#{command}"
|
58
|
-
`#{command}`
|
59
|
-
end
|
60
|
-
|
61
|
-
desc "Build and unpack gem and dependencies for the gui"
|
62
|
-
task :unpack_gem => ["check_dependencies:runtime", :build] do
|
63
|
-
|
64
|
-
run("find '#{project_path}/gui/lib/ruby/' -maxdepth 1 -mindepth 1 -type d -execdir rm -r '{}' \\;")
|
65
|
-
run("gem unpack '#{project_path}/pkg/wagon-#{version}.gem' --target='#{project_path}/gui/lib/ruby'")
|
66
|
-
run("gem unpack queue_to_the_future --target='#{project_path}/gui/lib/ruby'")
|
67
|
-
run("gem unpack nokogiri --target='#{project_path}/gui/lib/ruby'")
|
68
|
-
run("gem unpack prawn --target='#{project_path}/gui/lib/ruby'")
|
69
|
-
run("gem unpack prawn-core --target='#{project_path}/gui/lib/ruby'")
|
70
|
-
|
71
|
-
Dir.glob("#{project_path}/gui/lib/ruby/*") do |path|
|
72
|
-
next unless File.directory?(path)
|
73
|
-
new_path = path.sub(/-(\d\.)+\d$/, '')
|
74
|
-
run("mv '#{path}' '#{new_path}'")
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
data/bin/wagon
CHANGED
@@ -1,146 +1,5 @@
|
|
1
|
-
|
1
|
+
#! /usr/bin/env ruby
|
2
2
|
|
3
|
-
|
4
|
-
# wagon [options] [output_file]
|
5
|
-
#
|
6
|
-
# == Options
|
7
|
-
# -h, --help Displays this help message
|
8
|
-
# -v, --version Display the version, then exit
|
9
|
-
# -V, --verbose Verbose output
|
10
|
-
# -t, --title The title displayed on each page (default is the ward name)
|
11
|
-
# -r, --rows Number of rows per page (default is 6)
|
12
|
-
# -c, --columns Number of columns per page (default is 7)
|
13
|
-
# -p, --padding Padding between households (default is 2)
|
14
|
-
# -f, --font-size Primary font size (default is 8)
|
15
|
-
# --page-numbers Include page numbers in the footer, e.g. (1 of 3)
|
16
|
-
# --no-date Do not include the current date in the footer
|
17
|
-
# --no-picture Do not include pictures
|
18
|
-
# --no-address Do not include street addresses
|
19
|
-
# --no-phone Do not include phone numbers
|
20
|
-
# --no-email Do not include email addresses
|
21
|
-
#
|
22
|
-
# == Copyright
|
23
|
-
# Copyright (c) 2009 Devin Christensen. See LICENSE for details.
|
3
|
+
require 'wagon/cli'
|
24
4
|
|
25
|
-
|
26
|
-
|
27
|
-
require 'optparse'
|
28
|
-
require 'rdoc/usage'
|
29
|
-
require 'ostruct'
|
30
|
-
require 'wagon'
|
31
|
-
require 'highline/import'
|
32
|
-
|
33
|
-
class WagonApp
|
34
|
-
def initialize(arguments, stdin)
|
35
|
-
@arguments = arguments
|
36
|
-
@stdin = stdin
|
37
|
-
@options = OpenStruct.new()
|
38
|
-
|
39
|
-
# Set defaults
|
40
|
-
@options.verbose = false
|
41
|
-
@options.title = nil
|
42
|
-
@options.rows = 6
|
43
|
-
@options.columns = 7
|
44
|
-
@options.padding = 2
|
45
|
-
@options.font_size = 8
|
46
|
-
@options.page_numbers = false
|
47
|
-
@options.include_date = true
|
48
|
-
@options.picture = true
|
49
|
-
@options.address = true
|
50
|
-
@options.phone_number = true
|
51
|
-
@options.email = true
|
52
|
-
@options.output_file = "./photo_directory.pdf"
|
53
|
-
end
|
54
|
-
|
55
|
-
def run
|
56
|
-
if arguments_valid?
|
57
|
-
puts "Start at #{DateTime.now}\n\n" if @options.verbose
|
58
|
-
|
59
|
-
output_options if @options.verbose # [Optional]
|
60
|
-
|
61
|
-
process
|
62
|
-
|
63
|
-
puts "\nFinished in #{DateTime.now}" if @options.verbose
|
64
|
-
|
65
|
-
else
|
66
|
-
output_usage
|
67
|
-
end
|
68
|
-
|
69
|
-
end
|
70
|
-
|
71
|
-
protected
|
72
|
-
def arguments_valid?
|
73
|
-
# Specify options
|
74
|
-
opts = OptionParser.new
|
75
|
-
opts.on('-v', '--version') { output_version ; exit 0 }
|
76
|
-
opts.on('-h', '--help') { output_help }
|
77
|
-
opts.on('-V', '--verbose') { @options.verbose = true }
|
78
|
-
opts.on('-t', '--title=TITLE') { |title| @options.title = title }
|
79
|
-
opts.on('-r', '--rows=ROWS') { |rows| @options.rows = rows }
|
80
|
-
opts.on('-c', '--columns=COLUMNS') { |columns| @options.columns = columns }
|
81
|
-
opts.on('-p', '--padding=PADDING') { |padding| @options.padding = padding }
|
82
|
-
opts.on('-f', '--font-size=SIZE') { |size| @options.font_size = size }
|
83
|
-
opts.on('--page-numbers') { @options.page_numbering = true }
|
84
|
-
opts.on('--no--date') { @options.include_date = false }
|
85
|
-
opts.on('--no-picture') { @options.picture = false }
|
86
|
-
opts.on('--no-address') { @options.address = false }
|
87
|
-
opts.on('--no-phone') { @options.phone_number = false }
|
88
|
-
opts.on('--no-email') { @options.email = false }
|
89
|
-
|
90
|
-
opts.parse!(@arguments) rescue return false
|
91
|
-
@options.output_file = @arguments.last unless @arguments.empty?
|
92
|
-
|
93
|
-
true
|
94
|
-
end
|
95
|
-
|
96
|
-
def output_options
|
97
|
-
puts "Options:\n"
|
98
|
-
|
99
|
-
@options.marshal_dump.each do |name, val|
|
100
|
-
puts " #{name} = #{val}"
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
def output_help
|
105
|
-
output_version
|
106
|
-
RDoc::usage()
|
107
|
-
end
|
108
|
-
|
109
|
-
def output_usage
|
110
|
-
RDoc::usage('usage') # gets usage from comments above
|
111
|
-
end
|
112
|
-
|
113
|
-
def output_version
|
114
|
-
puts "#{File.basename(__FILE__)} version #{Wagon::VERSION}"
|
115
|
-
end
|
116
|
-
|
117
|
-
def process
|
118
|
-
username = ask("What is your lds.org username? ")
|
119
|
-
password = ask("What is your lds.org password? ") { |q| q.echo = "*" }
|
120
|
-
|
121
|
-
user = Wagon::connect(username, password)
|
122
|
-
|
123
|
-
puts "\nAlright, we're in!"
|
124
|
-
puts "I'm gonna go ahead and create that PDF for ya now."
|
125
|
-
puts "It might take a few minutes to gather all the info"
|
126
|
-
puts "so grab a crisp cool beverage, sit back and relax."
|
127
|
-
puts "I'll take it from here."
|
128
|
-
|
129
|
-
directory = user.ward.to_pdf( @options.marshal_dump )
|
130
|
-
directory.render_file(@options.output_file)
|
131
|
-
|
132
|
-
puts "\nFinished. Enjoy.\n"
|
133
|
-
|
134
|
-
rescue Wagon::AuthenticationFailure
|
135
|
-
puts "\nThe username and password combination you entered is invalid."
|
136
|
-
rescue
|
137
|
-
if @options.verbose
|
138
|
-
raise
|
139
|
-
else
|
140
|
-
puts "\nI encountered an unexpected problem, and I don't know what to do. :("
|
141
|
-
end
|
142
|
-
end
|
143
|
-
end
|
144
|
-
|
145
|
-
app = WagonApp.new(ARGV, STDIN)
|
146
|
-
app.run
|
5
|
+
Wagon::CLI.run
|
data/lib/wagon.rb
CHANGED
@@ -1,13 +1,10 @@
|
|
1
1
|
require 'queue_to_the_future'
|
2
|
+
require 'wagon/page'
|
3
|
+
require 'wagon/connection'
|
2
4
|
|
3
5
|
module Wagon
|
4
|
-
BASE_PATH = File.join(File.dirname(__FILE__), '..')
|
5
|
-
VERSION = open(File.join(BASE_PATH, 'VERSION')).read()
|
6
|
-
|
7
6
|
def self.connect(username, password)
|
8
7
|
Connection.new(username, password)
|
9
8
|
end
|
10
9
|
end
|
11
10
|
|
12
|
-
require 'wagon/page'
|
13
|
-
require 'wagon/connection'
|
data/lib/wagon/cli.rb
ADDED
@@ -0,0 +1,138 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'wagon'
|
4
|
+
require 'ostruct'
|
5
|
+
require 'optparse'
|
6
|
+
require 'highline/import'
|
7
|
+
|
8
|
+
module Wagon
|
9
|
+
class CLI
|
10
|
+
def self.run
|
11
|
+
CLI.new(ARGV).run
|
12
|
+
end
|
13
|
+
|
14
|
+
def initialize(arguments)
|
15
|
+
@arguments = arguments
|
16
|
+
@options = OpenStruct.new()
|
17
|
+
|
18
|
+
# Set defaults
|
19
|
+
@options.verbose = false
|
20
|
+
@options.title = nil
|
21
|
+
@options.rows = 6
|
22
|
+
@options.columns = 7
|
23
|
+
@options.padding = 2
|
24
|
+
@options.font_size = 8
|
25
|
+
@options.page_numbers = false
|
26
|
+
@options.include_date = true
|
27
|
+
@options.picture = true
|
28
|
+
@options.address = true
|
29
|
+
@options.phone_number = true
|
30
|
+
@options.email = true
|
31
|
+
@options.output_file = "./photo_directory.pdf"
|
32
|
+
|
33
|
+
@parser = OptionParser.new
|
34
|
+
@parser.banner = "wagon [options] [output_file]"
|
35
|
+
|
36
|
+
@parser.on('-h', '--help', 'Display this help message') do
|
37
|
+
output_help
|
38
|
+
exit
|
39
|
+
end
|
40
|
+
@parser.on('-v', '--version', 'Display the version') do
|
41
|
+
output_version
|
42
|
+
exit
|
43
|
+
end
|
44
|
+
@parser.on('-V', '--verbose', 'Verbose output') do
|
45
|
+
@options.verbose = true
|
46
|
+
end
|
47
|
+
@parser.on('-t', '--title=TITLE', 'The title displayed on each page (default is the ward name)') do |title|
|
48
|
+
@options.title = title
|
49
|
+
end
|
50
|
+
@parser.on('-r', '--rows=ROWS', 'Number of rows per page (default is 6)') do |rows|
|
51
|
+
@options.rows = rows
|
52
|
+
end
|
53
|
+
@parser.on('-c', '--columns=COLUMNS', 'Number of columns per page (default is 7)') do |columns|
|
54
|
+
@options.columns = columns
|
55
|
+
end
|
56
|
+
@parser.on('-p', '--padding=PADDING', 'Padding between households (default is 2)') do |padding|
|
57
|
+
@options.padding = padding
|
58
|
+
end
|
59
|
+
@parser.on('-f', '--font-size=SIZE', 'Primary font size (default is 8)') do |size|
|
60
|
+
@options.font_size = size
|
61
|
+
end
|
62
|
+
@parser.on('--page-numbers', 'Include page numbers in the footer, e.g. (1 of 3)') do
|
63
|
+
@options.page_numbering = true
|
64
|
+
end
|
65
|
+
@parser.on('--no--date', 'Do not include the current date in the footer') do
|
66
|
+
@options.include_date = false
|
67
|
+
end
|
68
|
+
@parser.on('--no-picture', 'Do not include pictures') do
|
69
|
+
@options.picture = false
|
70
|
+
end
|
71
|
+
@parser.on('--no-address', 'Do not include street addresses') do
|
72
|
+
@options.address = false
|
73
|
+
end
|
74
|
+
@parser.on('--no-phone', 'Do not include phone numbers') do
|
75
|
+
@options.phone_number = false
|
76
|
+
end
|
77
|
+
@parser.on('--no-email', 'Do not include email addresses') do
|
78
|
+
@options.email = false
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def run
|
83
|
+
begin
|
84
|
+
@parser.parse!(@arguments)
|
85
|
+
@options.output_file = @arguments.last unless @arguments.empty?
|
86
|
+
|
87
|
+
puts "Start at #{DateTime.now}\n\n" if @options.verbose
|
88
|
+
|
89
|
+
output_options if @options.verbose
|
90
|
+
|
91
|
+
username = ask("What is your lds.org username? ")
|
92
|
+
password = ask("What is your lds.org password? ") { |q| q.echo = "*" }
|
93
|
+
|
94
|
+
user = Wagon::connect(username, password)
|
95
|
+
|
96
|
+
puts "\nAlright, we're in!"
|
97
|
+
puts "I'm gonna go ahead and create that PDF for ya now."
|
98
|
+
puts "It might take a few minutes to gather all the info"
|
99
|
+
puts "so grab a crisp cool beverage, sit back and relax."
|
100
|
+
puts "I'll take it from here."
|
101
|
+
|
102
|
+
directory = user.ward.to_pdf( @options.marshal_dump )
|
103
|
+
directory.render_file(@options.output_file)
|
104
|
+
|
105
|
+
puts "\nFinished. Enjoy.\n"
|
106
|
+
puts "\nFinished at #{DateTime.now}" if @options.verbose
|
107
|
+
rescue OptionParser::InvalidOption
|
108
|
+
output_help
|
109
|
+
exit
|
110
|
+
rescue Wagon::AuthenticationFailure
|
111
|
+
puts "\nThe username and password combination you entered is invalid."
|
112
|
+
rescue
|
113
|
+
if @options.verbose
|
114
|
+
raise
|
115
|
+
else
|
116
|
+
puts "\nI encountered an unexpected problem, and I don't know what to do. :("
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
private
|
122
|
+
def output_options
|
123
|
+
puts "Options:\n"
|
124
|
+
|
125
|
+
@options.marshal_dump.each do |name, val|
|
126
|
+
puts " #{name} = #{val}"
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
def output_help
|
131
|
+
puts @parser
|
132
|
+
end
|
133
|
+
|
134
|
+
def output_version
|
135
|
+
puts "wagon v#{Wagon::VERSION}"
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
data/lib/wagon/directory.rb
CHANGED
@@ -62,7 +62,7 @@ module Wagon
|
|
62
62
|
info.push(household.phone_number.value) if options[:phone_number]
|
63
63
|
info.push(household.members.first.email) if options[:email]
|
64
64
|
|
65
|
-
pdf.image(household.has_image? ? StringIO.new(household.image_data) : File.join(
|
65
|
+
pdf.image(household.has_image? ? StringIO.new(household.image_data) : File.join('.', 'extra', 'placeholder.jpg'), :position => :center, :fit => [box_width, box_height - (padding*2 + info_height)] )
|
66
66
|
|
67
67
|
pdf.bounding_box([pdf.bounds.left, pdf.bounds.bottom + info_height], :height => info_height+1, :width => pdf.bounds.width) do
|
68
68
|
info.compact.each do |line|
|
data/lib/wagon/household.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'base64'
|
4
|
+
|
1
5
|
require 'wagon/address'
|
2
6
|
require 'wagon/phone_number'
|
3
7
|
require 'wagon/member'
|
4
8
|
|
5
|
-
require 'base64'
|
6
|
-
|
7
9
|
module Wagon
|
8
10
|
class Household
|
9
11
|
attr_reader :connection, :address, :phone_number, :image_path, :image_data, :members
|
@@ -57,4 +59,4 @@ module Wagon
|
|
57
59
|
self.new(connection, name_element.inner_text, address, phone_number, image_path, members)
|
58
60
|
end
|
59
61
|
end
|
60
|
-
end
|
62
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
BASE_PATH = File.join(File.dirname(__FILE__), '..')
|
2
2
|
USER_FILE = File.join(BASE_PATH, 'spec', 'user.dat')
|
3
|
-
|
3
|
+
$LOAD_PATH.unshift(BASE_PATH, 'lib')
|
4
4
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
5
|
-
|
6
|
-
|
7
|
-
require 'spec'
|
8
|
-
require 'spec/autorun'
|
9
|
-
require 'rubygems'
|
10
|
-
require 'wagon'
|
5
|
+
require 'rspec'
|
11
6
|
require 'highline/import'
|
7
|
+
require 'wagon'
|
8
|
+
|
9
|
+
# Requires supporting files with custom matchers and macros, etc,
|
10
|
+
# in ./support/ and its subdirectories.
|
11
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
12
12
|
|
13
13
|
$user = nil
|
14
14
|
|
@@ -36,6 +36,6 @@ else
|
|
36
36
|
establish_connection()
|
37
37
|
end
|
38
38
|
|
39
|
-
|
39
|
+
RSpec.configure do |config|
|
40
40
|
|
41
41
|
end
|
data/wagon.gemspec
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'wagon/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |gem|
|
7
|
+
gem.name = "wagon"
|
8
|
+
gem.version = Wagon::VERSION
|
9
|
+
gem.authors = ["Devin Christensen"]
|
10
|
+
gem.email = ["quixoten@gmail.com"]
|
11
|
+
gem.description = %Q{Provided a valid lds.org username and password, Wagon will download all the information from the Photo Directory page and compile it into a convenient PDF.}
|
12
|
+
gem.summary = %Q{Create a PDF from the lds.org ward Photo Directory.}
|
13
|
+
gem.homepage = "http://github.com/illogician/wagon"
|
14
|
+
gem.license = "MIT"
|
15
|
+
|
16
|
+
gem.files = `git ls-files`.split($/)
|
17
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
19
|
+
gem.require_paths = ["lib"]
|
20
|
+
|
21
|
+
gem.add_dependency "nokogiri", ">= 1.4.0"
|
22
|
+
gem.add_dependency "highline", ">= 1.5.1"
|
23
|
+
gem.add_dependency "prawn", "~> 0.8.0"
|
24
|
+
gem.add_dependency "queue_to_the_future", ">= 0.1.0"
|
25
|
+
gem.add_development_dependency "rspec", "~> 2.8.0"
|
26
|
+
gem.add_development_dependency "yard", "~> 0.7"
|
27
|
+
gem.add_development_dependency "rdoc", "~> 3.12"
|
28
|
+
gem.add_development_dependency "jeweler", "~> 1.8.4"
|
29
|
+
gem.add_development_dependency "redcarpet", "~> 2.2.1"
|
30
|
+
end
|
metadata
CHANGED
@@ -1,139 +1,222 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: wagon
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.0.2
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
|
-
authors:
|
7
|
+
authors:
|
7
8
|
- Devin Christensen
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-10-16 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: nokogiri
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.4.0
|
17
22
|
type: :runtime
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
23
29
|
version: 1.4.0
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
30
|
+
- !ruby/object:Gem::Dependency
|
26
31
|
name: highline
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 1.5.1
|
27
38
|
type: :runtime
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
30
|
-
|
31
|
-
|
32
|
-
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
33
45
|
version: 1.5.1
|
34
|
-
|
35
|
-
- !ruby/object:Gem::Dependency
|
46
|
+
- !ruby/object:Gem::Dependency
|
36
47
|
name: prawn
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.8.0
|
37
54
|
type: :runtime
|
38
|
-
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
40
|
-
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
41
59
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
60
|
+
- !ruby/object:Gem::Version
|
43
61
|
version: 0.8.0
|
44
|
-
|
45
|
-
- !ruby/object:Gem::Dependency
|
62
|
+
- !ruby/object:Gem::Dependency
|
46
63
|
name: queue_to_the_future
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.1.0
|
47
70
|
type: :runtime
|
48
|
-
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
50
|
-
|
51
|
-
|
52
|
-
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
53
77
|
version: 0.1.0
|
54
|
-
|
55
|
-
- !ruby/object:Gem::Dependency
|
78
|
+
- !ruby/object:Gem::Dependency
|
56
79
|
name: rspec
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ~>
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: 2.8.0
|
57
86
|
type: :development
|
58
|
-
|
59
|
-
version_requirements: !ruby/object:Gem::Requirement
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
- !ruby/object:Gem::Dependency
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 2.8.0
|
94
|
+
- !ruby/object:Gem::Dependency
|
66
95
|
name: yard
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ~>
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0.7'
|
67
102
|
type: :development
|
68
|
-
|
69
|
-
version_requirements: !ruby/object:Gem::Requirement
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0.7'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: rdoc
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ~>
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '3.12'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '3.12'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: jeweler
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ~>
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: 1.8.4
|
134
|
+
type: :development
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ~>
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: 1.8.4
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: redcarpet
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ~>
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: 2.2.1
|
150
|
+
type: :development
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ~>
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: 2.2.1
|
158
|
+
description: Provided a valid lds.org username and password, Wagon will download all
|
159
|
+
the information from the Photo Directory page and compile it into a convenient PDF.
|
160
|
+
email:
|
161
|
+
- quixoten@gmail.com
|
162
|
+
executables:
|
78
163
|
- wagon
|
79
164
|
extensions: []
|
80
|
-
|
81
|
-
|
82
|
-
- LICENSE
|
83
|
-
- README.rdoc
|
84
|
-
files:
|
85
|
-
- .document
|
165
|
+
extra_rdoc_files: []
|
166
|
+
files:
|
86
167
|
- .gitignore
|
87
|
-
-
|
88
|
-
-
|
168
|
+
- Gemfile
|
169
|
+
- LICENSE.txt
|
170
|
+
- README.md
|
89
171
|
- Rakefile
|
90
|
-
- VERSION
|
91
172
|
- bin/wagon
|
92
173
|
- extra/placeholder.jpg
|
93
174
|
- lib/wagon.rb
|
94
175
|
- lib/wagon/address.rb
|
176
|
+
- lib/wagon/cli.rb
|
95
177
|
- lib/wagon/connection.rb
|
96
178
|
- lib/wagon/directory.rb
|
97
179
|
- lib/wagon/household.rb
|
98
180
|
- lib/wagon/member.rb
|
99
181
|
- lib/wagon/page.rb
|
100
182
|
- lib/wagon/phone_number.rb
|
183
|
+
- lib/wagon/version.rb
|
101
184
|
- lib/wagon/ward.rb
|
102
185
|
- spec/spec.opts
|
103
186
|
- spec/spec_helper.rb
|
104
187
|
- spec/wagon/directory_spec.rb
|
105
188
|
- spec/wagon/ward_spec.rb
|
106
189
|
- spec/wagon_spec.rb
|
107
|
-
|
108
|
-
homepage: http://github.com/
|
109
|
-
licenses:
|
110
|
-
|
190
|
+
- wagon.gemspec
|
191
|
+
homepage: http://github.com/illogician/wagon
|
192
|
+
licenses:
|
193
|
+
- MIT
|
111
194
|
post_install_message:
|
112
|
-
rdoc_options:
|
113
|
-
|
114
|
-
require_paths:
|
195
|
+
rdoc_options: []
|
196
|
+
require_paths:
|
115
197
|
- lib
|
116
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
198
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
199
|
+
none: false
|
200
|
+
requirements:
|
201
|
+
- - ! '>='
|
202
|
+
- !ruby/object:Gem::Version
|
203
|
+
version: '0'
|
204
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
205
|
+
none: false
|
206
|
+
requirements:
|
207
|
+
- - ! '>='
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: '0'
|
128
210
|
requirements: []
|
129
|
-
|
130
211
|
rubyforge_project:
|
131
|
-
rubygems_version: 1.
|
212
|
+
rubygems_version: 1.8.24
|
132
213
|
signing_key:
|
133
214
|
specification_version: 3
|
134
215
|
summary: Create a PDF from the lds.org ward Photo Directory.
|
135
|
-
test_files:
|
216
|
+
test_files:
|
217
|
+
- spec/spec.opts
|
136
218
|
- spec/spec_helper.rb
|
137
219
|
- spec/wagon/directory_spec.rb
|
138
220
|
- spec/wagon/ward_spec.rb
|
139
221
|
- spec/wagon_spec.rb
|
222
|
+
has_rdoc:
|
data/.document
DELETED
data/README.rdoc
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
= Wagon
|
2
|
-
|
3
|
-
Provided a valid lds.org username and password Wagon will download the information and pictures from the "Photo Directory" page and compile it into a convenient PDF.
|
4
|
-
|
5
|
-
== Usage
|
6
|
-
require 'wagon'
|
7
|
-
user = Wagon::connect('username', 'password')
|
8
|
-
pdf = user.ward.to_pdf(:font_size => 10, :rows => 9, ...)
|
9
|
-
pdf.render_file('photo_directory.pdf')
|
10
|
-
|
11
|
-
== Terminal Usage
|
12
|
-
wagon --help
|
13
|
-
|
14
|
-
== Installation
|
15
|
-
gem install wagon
|
16
|
-
|
17
|
-
== Copyright
|
18
|
-
|
19
|
-
Copyright (c) 2009 Devin Christensen. See LICENSE for details.
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
2.0.1
|