Class: AudioBookCreator::Cli
- Inherits:
-
Object
- Object
- AudioBookCreator::Cli
- Includes:
- Logging
- Defined in:
- lib/audio_book_creator/cli.rb
Defined Under Namespace
Classes: OptSetter
Instance Attribute Summary collapse
-
#set_defaults ⇒ Object
true if we are setting the defaults.
-
#skip_defaults ⇒ Object
Returns the value of attribute skip_defaults.
-
#web ⇒ Object
writeonly
stub for testing.
Instance Method Summary collapse
- #book_def ⇒ Object
- #conductor ⇒ Object
- #defaulter ⇒ Object
-
#page_def ⇒ Object
parameter objects.
- #parse(argv) ⇒ Object
-
#run ⇒ Object
integration method.
- #speaker_def ⇒ Object
- #surfer_def ⇒ Object
- #verbose=(val) ⇒ Object
Methods included from Logging
Instance Attribute Details
#set_defaults ⇒ Object
true if we are setting the defaults
14 15 16 |
# File 'lib/audio_book_creator/cli.rb', line 14 def set_defaults @set_defaults end |
#skip_defaults ⇒ Object
Returns the value of attribute skip_defaults.
15 16 17 |
# File 'lib/audio_book_creator/cli.rb', line 15 def skip_defaults @skip_defaults end |
#web=(value) ⇒ Object (writeonly)
stub for testing
11 12 13 |
# File 'lib/audio_book_creator/cli.rb', line 11 def web=(value) @web = value end |
Instance Method Details
#book_def ⇒ Object
63 64 65 |
# File 'lib/audio_book_creator/cli.rb', line 63 def book_def @book_def ||= BookDef.new end |
#conductor ⇒ Object
79 80 81 |
# File 'lib/audio_book_creator/cli.rb', line 79 def conductor @conductor ||= Conductor.new(page_def, book_def, speaker_def, surfer_def) end |
#defaulter ⇒ Object
75 76 77 |
# File 'lib/audio_book_creator/cli.rb', line 75 def defaulter @defaulter ||= Defaulter.new(page_def, book_def) end |
#page_def ⇒ Object
parameter objects
59 60 61 |
# File 'lib/audio_book_creator/cli.rb', line 59 def page_def @page_def ||= PageDef.new end |
#parse(argv) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/audio_book_creator/cli.rb', line 21 def parse(argv) = OptionParser.new do |opts| opts.program_name = "audio_book_creator" opts.version = VERSION opts. = "Usage: audio_book_creator [options] [title] url [url] [...]" opt(opts, self) do |o| o.opt(:verbose, "-v", "--verbose", "--[no-]verbose", "Run verbosely") o.opt(:set_defaults, "--default", "Set these parameters as default for this url regular expression") o.opt(:skip_defaults, "--skip-defaults", "Skip using defaults") end opt(opts, page_def) do |o| o.opt(:title_path, "--title STRING", "Title css (e.g.: h1)") o.opt(:body_path, "--body STRING", "Content css (e.g.: p)") o.opt(:link_path, "--link STRING", "Next Page css (e.g.: a.Next)") o.opt(:chapter_path, "--chapter STRING", "Next Chapter css") end opt(opts, surfer_def) do |o| o.opt(:max, "--no-max", "Don't limit the number of pages to visit") o.opt(:max, "--max NUMBER", Integer, "Maximum number of pages to visit") o.opt(:regen_html, "--force-html", "Regerate the audio") end opt(opts, speaker_def) do |o| o.opt(:regen_audio, "--force-audio", "Regerate the audio") o.opt(:rate, "--rate NUMBER", Integer, "Set words per minute") o.opt(:voice, "--voice STRING", "Set speaker voice") end opt(opts, book_def) do |o| o.opt(:base_dir, "--base-dir STRING", "Directory to hold files") o.opt(:itunes, "--[no-]itunes", "-A", "Load book into itunes") end end .parse!(argv) set_args(argv, .to_s) self end |
#run ⇒ Object
integration method
84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/audio_book_creator/cli.rb', line 84 def run if set_defaults if defaulter.store puts "stored for #{defaulter.host}" else puts "not stored" end else defaulter.load_unset_values unless skip_defaults conductor.run end end |
#speaker_def ⇒ Object
67 68 69 |
# File 'lib/audio_book_creator/cli.rb', line 67 def speaker_def @speaker_def ||= SpeakerDef.new end |
#surfer_def ⇒ Object
71 72 73 |
# File 'lib/audio_book_creator/cli.rb', line 71 def surfer_def @surfer_def ||= SurferDef.new end |
#verbose=(val) ⇒ Object
17 18 19 |
# File 'lib/audio_book_creator/cli.rb', line 17 def verbose=(val) logger.level = val ? Logger::INFO : Logger::WARN end |