Class: Magicfile
- Inherits:
-
Object
- Object
- Magicfile
- Defined in:
- lib/magicfile.rb
Instance Method Summary collapse
- #append_after_current(line, enable_move_down = true, spaces = 2) ⇒ Object
- #append_class(name, parent_class_name = nil) ⇒ Object
- #append_module(name) ⇒ Object
- #append_modules(names) ⇒ Object
- #append_string_lines(line_contents) ⇒ Object
-
#initialize(lines = [], current_line_index = -1,, current_line_space_num = -2)) ⇒ Magicfile
constructor
A new instance of Magicfile.
- #to_file(name) ⇒ Object
Constructor Details
#initialize(lines = [], current_line_index = -1,, current_line_space_num = -2)) ⇒ Magicfile
Returns a new instance of Magicfile.
16 17 18 19 20 |
# File 'lib/magicfile.rb', line 16 def initialize(lines=[], current_line_index=-1, current_line_space_num=-2) @lines = lines @current_line_index = current_line_index @current_line_space_num = current_line_space_num end |
Instance Method Details
#append_after_current(line, enable_move_down = true, spaces = 2) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/magicfile.rb', line 55 def append_after_current(line, enable_move_down=true, spaces=2) line.space_num = @current_line_space_num + spaces @lines.insert(@current_line_index + 1, line) if enable_move_down @current_line_space_num = line.space_num @current_line_index += 1 end end |
#append_class(name, parent_class_name = nil) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/magicfile.rb', line 22 def append_class(name, parent_class_name=nil) if parent_class_name class_start_line = MagicLine.new("class #{name.camelize} < #{parent_class_name}") else class_start_line = MagicLine.new("class #{name.camelize}") end append_after_current(class_start_line, true, 2) append_after_current(MagicLine.new("end"), false, 0) end |
#append_module(name) ⇒ Object
34 35 36 37 38 39 40 |
# File 'lib/magicfile.rb', line 34 def append_module(name) module_start_line = MagicLine.new("module #{name.camelize}") module_end_line = MagicLine.new("end") append_after_current(module_start_line, true, 2) append_after_current(module_end_line, false, 0) end |
#append_modules(names) ⇒ Object
42 43 44 45 46 |
# File 'lib/magicfile.rb', line 42 def append_modules(names) names.each do |name| append_module(name) end end |
#append_string_lines(line_contents) ⇒ Object
48 49 50 51 52 53 |
# File 'lib/magicfile.rb', line 48 def append_string_lines(line_contents) space_num = @current_line_space_num + 2 content = line_contents.join("\n" + " " * space_num) line = MagicLine.new(content, space_num) @lines.insert(@current_line_index + 1, line) end |
#to_file(name) ⇒ Object
69 70 71 72 |
# File 'lib/magicfile.rb', line 69 def to_file(name) infos = @lines.map { |line| " " * line.instance_variable_get("@space_num") + line.instance_variable_get("@content") } File.open(name, 'w') { |file| file.write(infos.join("\n")) } end |