Class: ButterflyNet::Definitions
- Inherits:
-
Object
- Object
- ButterflyNet::Definitions
- Defined in:
- lib/butterfly_net/definitions.rb
Instance Attribute Summary collapse
-
#lines ⇒ Object
readonly
Returns the value of attribute lines.
Class Method Summary collapse
-
.end_def?(line) ⇒ Boolean
todo: extract to line class.
-
.start_def?(line) ⇒ Boolean
todo: extract to line class.
Instance Method Summary collapse
- #<<(line) ⇒ Object
- #empty? ⇒ Boolean
-
#initialize ⇒ Definitions
constructor
A new instance of Definitions.
- #to_s ⇒ Object
Constructor Details
#initialize ⇒ Definitions
Returns a new instance of Definitions.
6 7 8 9 |
# File 'lib/butterfly_net/definitions.rb', line 6 def initialize @nesting_level = 0 @lines = [] end |
Instance Attribute Details
#lines ⇒ Object (readonly)
Returns the value of attribute lines.
4 5 6 |
# File 'lib/butterfly_net/definitions.rb', line 4 def lines @lines end |
Class Method Details
.end_def?(line) ⇒ Boolean
todo: extract to line class
19 20 21 |
# File 'lib/butterfly_net/definitions.rb', line 19 def self.end_def?(line) # todo: extract to line class line =~ /end\s*$/ end |
.start_def?(line) ⇒ Boolean
todo: extract to line class
15 16 17 |
# File 'lib/butterfly_net/definitions.rb', line 15 def self.start_def?(line) # todo: extract to line class line =~ /^\s*def\s+|^\s*class\s+|^\s*module\s+/ end |
Instance Method Details
#<<(line) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/butterfly_net/definitions.rb', line 23 def <<(line) if Definitions.start_def?(line) and Definitions.end_def?(line) @lines << " #{(" " * @nesting_level)}#{line}\n\n" elsif Definitions.start_def?(line) @nesting_level += 1 @lines << "#{(" " * @nesting_level)}#{line}\n" elsif Definitions.end_def?(line) @nesting_level -= 1 @lines << " #{(" " * @nesting_level)}#{line}\n#{ @nesting_level == 0 ? "\n" : ""}" elsif @nesting_level > 0 @lines << " #{(" " * @nesting_level)}#{line}\n" unless @nesting_level == 0 else false end end |
#empty? ⇒ Boolean
11 12 13 |
# File 'lib/butterfly_net/definitions.rb', line 11 def empty? @lines.empty? end |
#to_s ⇒ Object
39 40 41 |
# File 'lib/butterfly_net/definitions.rb', line 39 def to_s @lines.join end |