wagon 2.0.1 → 2.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|