Module: IRT::Commands::Test

Extended by:
Test
Included in:
IRB::ExtendCommandBundle, Test
Defined in:
lib/irt/commands/test.rb

Instance Method Summary collapse

Instance Method Details

#add_desc(description) ⇒ Object Also known as: dd, ad



7
8
9
10
11
12
13
14
15
# File 'lib/irt/commands/test.rb', line 7

def add_desc(description)
  mode = context.irt_mode
  raise IRT::SessionModeError, "You cannot add a test description in #{mode} mode." unless mode == :interactive
  desc_str = %(desc "#{description}")
  context.current_line = desc_str
  puts
  puts IRT.dye(desc_str, :interactive_color)
  puts
end

#add_test(description = '') ⇒ Object Also known as: tt, at



19
20
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
# File 'lib/irt/commands/test.rb', line 19

def add_test(description='')
  mode = context.irt_mode
  raise IRT::SessionModeError, "You cannot add a test in #{mode} mode." unless mode == :interactive
  last_value = context.last_value
  begin
    evaled = context.workspace.evaluate(self, last_value.inspect)
  rescue Exception
  end
  # the eval of the last_value.inspect == the last_value
  test_str = if evaled == last_value
               # same as _? but easier to read for multiline strings
               if last_value.is_a?(String) && last_value.match(/\n/)
                 str = last_value.split("\n").map{|l| l.inspect.sub(/^"(.*)"$/,'\1') }.join("\n")
                 last_value.match(/\n$/) ? "_eql? <<EOS\n#{str}\nEOS" : "_eql? %(#{str})"
               else
                 "_eql?( #{last_value.inspect} )"
               end
             else # need YAML
               "_yaml_eql? %(#{IRT.yaml_dump(last_value)})"
             end
  desc_str = description.empty? ? '' : %(desc "#{description}"\n)
  str = desc_str + test_str
  context.current_line = str
  puts
  puts IRT.dye(str, :interactive_color)
  puts
end

#save_as(file_path) ⇒ Object Also known as: sa



49
50
51
# File 'lib/irt/commands/test.rb', line 49

def save_as(file_path)
  IRT.save_as(file_path)
end