Class: Line

Inherits:
String
  • Object
show all
Defined in:
lib/line.rb

Instance Method Summary collapse

Constructor Details

#initialize(line = "") ⇒ Line

Returns a new instance of Line.



2
3
4
# File 'lib/line.rb', line 2

def initialize(line="")
  super
end

Instance Method Details

#already_junklet?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/line.rb', line 18

def already_junklet?
  match(/^\s*junklet\b/)
end

#code?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/line.rb', line 26

def code?
  empty? || (!let? && !junklet?)
end

#convertObject



39
40
41
42
43
# File 'lib/line.rb', line 39

def convert
  return nil unless junklet?
  return self if already_junklet?
  Line.new("#{indent}junklet #{names.first}")
end

#indentObject



6
7
8
# File 'lib/line.rb', line 6

def indent
  ' ' * (size - lstrip.size)
end

#junklet?Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/line.rb', line 14

def junklet?
   already_junklet? || secure_random?
end

#let?Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/line.rb', line 10

def let?
  match(/^\s*let\s*\(/) && !junklet?
end

#namesObject



30
31
32
33
34
35
36
37
# File 'lib/line.rb', line 30

def names
  return nil unless let? || junklet?
  match(/^\s*(let|junklet)\s*\(?([^)]*)\)?/) \
    .captures[1..-1] \
    .join('') \
    .split(/,/) \
    .map(&:strip)
end

#secure_random?Boolean

Returns:

  • (Boolean)


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

def secure_random?
  match(/^\s*(let)\s*\(?([^)]*)\)\s*{\s*SecureRandom.(uuid|hex)\s*}/)
end