Module: ReadTime

Included in:
String
Defined in:
lib/read-time.rb

Defined Under Namespace

Classes: Configuration

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Class Attribute Details

.configObject



33
34
35
# File 'lib/read-time.rb', line 33

def self.config
  @config ||= Configuration.new
end

Class Method Details

.configure {|config| ... } ⇒ Object

Yields:



41
42
43
# File 'lib/read-time.rb', line 41

def self.configure
  yield(config)
end

.reset_configObject



37
38
39
# File 'lib/read-time.rb', line 37

def self.reset_config
  @config = Configuration.new
end

Instance Method Details

#readtime(options = {}) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/read-time.rb', line 2

def readtime(options = {})
  reading_speed = (options[:reading_speed] || ReadTime.config.reading_speed).to_f
  format = options[:format] || ReadTime.config.format
  word_count = scan(/[\w-]+/).size
  num = ((word_count / reading_speed) * 60).ceil

  minutes = num / 60
  seconds = num - (minutes * 60)

  case format
  when :default
    min = (num / 60.0).ceil
    "#{min} minute read"
  when :long
    if seconds.zero?
      "#{minutes} minute read"
    elsif minutes.zero?
      "#{seconds} second read"
    else
      "#{minutes} minute #{seconds} second read"
    end
  else
    min = (num / 60.0).ceil
    "#{min} minute read"
  end
end