Class: CW::BookDetails

Inherits:
Object
  • Object
show all
Includes:
FileDetails
Defined in:
lib/cw/book_details.rb

Constant Summary collapse

BOOK_NAME =
"book.txt"
BOOK_DIR =
TEXT
USER_BOOK_DEFAULT_DIR =
"books"

Constants included from FileDetails

FileDetails::ABBREVIATIONS, FileDetails::AUDIO_DIR, FileDetails::BOOKMARK_FILE, FileDetails::CALLS, FileDetails::CALLS_FILENAME, FileDetails::CODE, FileDetails::CODE_FILENAME, FileDetails::CONFIG_FILENAME, FileDetails::CONFIG_PATH, FileDetails::DASH_FILENAME, FileDetails::DATA, FileDetails::DEF_AUDIO_FILENAME, FileDetails::DICT_DIR, FileDetails::DICT_FILENAME, FileDetails::DOT_AUDIO_DIR, FileDetails::DOT_CW_DIR, FileDetails::DOT_FILENAME, FileDetails::E_SPACE_FILENAME, FileDetails::HERE, FileDetails::Q_CODES, FileDetails::ROOT, FileDetails::SPACE_FILENAME, FileDetails::TEXT, FileDetails::USER_CONFIG_PATH, FileDetails::WORK_DIR

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from FileDetails

#audio_dir, #audio_filename, #dash_path, #default_audio_dir, #dot_audio_dir, #dot_cw_dir, #dot_path, #e_space_path, #init_filenames, #process_audio_dir, #process_dot_audio, #process_dot_cw, #progress_file, #space_path, #user_audio_dir

Instance Attribute Details

#argsObject (readonly)

Returns the value of attribute args.



7
8
9
# File 'lib/cw/book_details.rb', line 7

def args
  @args
end

Instance Method Details

#arguments(args) ⇒ Object



39
40
41
42
43
44
45
# File 'lib/cw/book_details.rb', line 39

def arguments args
  @args = args
  @args[:output] = :letter unless @args[:output]
  if @args[:duration]
    @timeout = Time.now + @args[:duration] * 60.0
  end
end

#book_dirObject



26
27
28
29
30
31
32
33
# File 'lib/cw/book_details.rb', line 26

def book_dir
  @book_dir ||=
    Cfg.config["book_dir"] ?
      File.join(WORK_DIR, Cfg.config["book_dir"]) :
      is_user_book_default_dir? ?
        USER_BOOK_DEFAULT_DIR :
        BOOK_DIR
end

#book_locationObject



35
36
37
# File 'lib/cw/book_details.rb', line 35

def book_location
  File.expand_path(book_name, book_dir)
end

#book_nameObject



15
16
17
18
19
20
# File 'lib/cw/book_details.rb', line 15

def book_name
  @book_name ||=
    Cfg.config["book_name"] ?
      Cfg.config["book_name"] :
      BOOK_NAME
end

#book_timeout?Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/cw/book_details.rb', line 63

def book_timeout?
  @timeout && (Time.now > @timeout)
end

#is_user_book_default_dir?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/cw/book_details.rb', line 22

def is_user_book_default_dir?
  File.exists? USER_BOOK_DEFAULT_DIR
end

#sentences_complete?Boolean

Returns:

  • (Boolean)


51
52
53
54
55
56
57
58
59
60
61
# File 'lib/cw/book_details.rb', line 51

def sentences_complete?
  if @args.has_key?(:sentences) &&  @args[:sentences].is_a?(1.class)
    if @sentence_count_source
      @sentence_count_source = nil
    else
      @args[:sentences] -= 1
      @sentence_count_source = true
    end
    true if(@args[:sentences] < 0)
  end
end

#session_finished?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/cw/book_details.rb', line 47

def session_finished?
  sentences_complete? || book_timeout?
end