Module: Musical

Extended by:
Util
Defined in:
lib/musical.rb,
lib/musical/dvd.rb,
lib/musical/util.rb,
lib/musical/dvd/wav.rb,
lib/musical/version.rb,
lib/musical/dvd/chapter.rb,
lib/musical/configuration.rb,
lib/musical/notification/progress_bar.rb

Defined Under Namespace

Modules: Notification, Util Classes: Configuration, DVD

Constant Summary collapse

VERSION =
"1.0.6"

Constants included from Util

Util::REQUIRED_APPS

Class Method Summary collapse

Methods included from Util

check_env, execute_command, installed?

Class Method Details

.configurationObject



19
20
21
# File 'lib/musical.rb', line 19

def configuration
  Configuration.config || Musical.setup
end

.setup {|configuration| ... } ⇒ Object

Yields:



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
# File 'lib/musical.rb', line 24

def setup
  return unless check_env

  # init working directory
  working_dir = File.join(File.expand_path('~'), '.musical')
  FileUtils.mkdir_p(working_dir) unless File.exist?(working_dir)

  # parse options
  options = Trollop::options do
    version "musical #{Musical::VERSION}"
    opt :info, "Show your DVD data", type: :boolean
    opt :ignore_convert_sound, "Rip data only, NOT convert them to wav file", type: :boolean
    opt :ignore_use_itunes, "NOT add ripped files to iTunes and encode them", type: :boolean
    opt :path, "Set device path of DVD", type: :string
    opt :title, "Set DVD title", type: :string, default: 'LIVE'
    opt :artist, "Set DVD artist", type: :string, default: 'Artist'
    opt :year, "Set year DVD was recorded", type: :int, default: Time.now.year
    opt :output, "Set location of ripped data", type: :string, default: 'ripped'
  end

  configuration = Configuration.build(options.merge(working_dir: working_dir))
  yield(configuration) if block_given?

  configuration
end