Class: TryRuby::Script

Inherits:
Object
  • Object
show all
Defined in:
lib/try_ruby/script.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(filename) ⇒ Script

Returns a new instance of Script.



5
6
7
8
9
# File 'lib/try_ruby/script.rb', line 5

def initialize(filename)
  @position = 0

  @script = JSON.parse(File.read(filename))
end

Instance Attribute Details

#positionObject (readonly)

Returns the value of attribute position.



3
4
5
# File 'lib/try_ruby/script.rb', line 3

def position
  @position
end

Instance Method Details

#continue?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/try_ruby/script.rb', line 25

def continue?
  current_message.continue?
end

#current_messageObject Also known as: current



15
16
17
# File 'lib/try_ruby/script.rb', line 15

def current_message
  messages[@position]
end

#first?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/try_ruby/script.rb', line 41

def first?
  @position == 0
end

#introObject



29
30
31
# File 'lib/try_ruby/script.rb', line 29

def intro
  messages.first
end

#last?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/try_ruby/script.rb', line 37

def last?
  @position == (length-1)
end

#lengthObject



21
22
23
# File 'lib/try_ruby/script.rb', line 21

def length
  messages.length
end

#messagesObject



11
12
13
# File 'lib/try_ruby/script.rb', line 11

def messages
  @messages ||= @script["messages"].map {|attributes| Message.new(attributes)}
end

#nextObject



45
46
47
48
# File 'lib/try_ruby/script.rb', line 45

def next
  @position += 1 unless last?
  current
end

#outroObject



33
34
35
# File 'lib/try_ruby/script.rb', line 33

def outro
  messages.last
end

#previousObject



50
51
52
53
# File 'lib/try_ruby/script.rb', line 50

def previous
  @position -= 1 unless first?
  current
end