Class: Enforce::DSL

Inherits:
Object
  • Object
show all
Defined in:
lib/enforce/dsl.rb

Direct Known Subclasses

Handler

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#last_fileObject (readonly)

Returns the value of attribute last_file.



3
4
5
# File 'lib/enforce/dsl.rb', line 3

def last_file
  @last_file
end

Instance Method Details

#failed_resultsObject



61
62
63
# File 'lib/enforce/dsl.rb', line 61

def failed_results
  results.reject { |result| result[:pass] }
end

#file(name) ⇒ Object



5
6
7
8
9
10
11
12
13
# File 'lib/enforce/dsl.rb', line 5

def file(name)
  pass = File.exist?(name)
  @last_file = name

  add_result message: "file `#{name}`", pass: pass

  return unless pass
  yield if block_given?
end

#folder(name) ⇒ Object



20
21
22
23
24
25
26
27
28
29
# File 'lib/enforce/dsl.rb', line 20

def folder(name)
  pass = Dir.exist?(name)
  add_result message: "folder `#{name}`", pass: pass

  return unless pass && block_given?

  Dir.chdir name do
    yield
  end
end

#no_file(name) ⇒ Object



15
16
17
18
# File 'lib/enforce/dsl.rb', line 15

def no_file(name)
  pass = !File.exist?(name)
  add_result message: "no file `#{name}`", pass: pass
end

#passed_resultsObject



57
58
59
# File 'lib/enforce/dsl.rb', line 57

def passed_results
  results.select { |result| result[:pass] }
end

#resultsObject



53
54
55
# File 'lib/enforce/dsl.rb', line 53

def results
  @results ||= []
end

#with(content) ⇒ Object



31
32
33
34
35
# File 'lib/enforce/dsl.rb', line 31

def with(content)
  content_as_string = content.is_a?(String) ? content : content.inspect
  add_result message: "with `#{content_as_string}`", 
    pass: File.read(last_file).match?(content)
end

#with_line(content) ⇒ Object



43
44
45
46
# File 'lib/enforce/dsl.rb', line 43

def with_line(content)
  add_result message: "with line `#{content}`", 
    pass: File.readlines(last_file).map(&:strip).include?(content)
end

#without(content) ⇒ Object



37
38
39
40
41
# File 'lib/enforce/dsl.rb', line 37

def without(content)
  content_as_string = content.is_a?(String) ? content : content.inspect
  add_result message: "without `#{content_as_string}`", 
    pass: !File.read(last_file).match?(content)
end

#without_line(content) ⇒ Object



48
49
50
51
# File 'lib/enforce/dsl.rb', line 48

def without_line(content)
  add_result message: "without line `#{content}`", 
    pass: !File.readlines(last_file).map(&:strip).include?(content)
end