Module: Crystalize::Transform::Line::PrivateMethods
- Included in:
- CodeConverter
- Defined in:
- lib/crystalize/transform/lines/private_methods.rb
Instance Method Summary collapse
- #add_visibility_prefix_to_method(current_visibility, line, non_public_triggered) ⇒ Object
- #line_without_private(line) ⇒ Object
- #method_in_line?(line) ⇒ Boolean
- #private_in_line?(line) ⇒ Boolean
- #protected_in_line?(line) ⇒ Boolean
- #public_in_line?(line) ⇒ Boolean
- #self_method_in_line?(line) ⇒ Boolean
- #tabulation(line) ⇒ Object
- #transform_private_methods(lines) ⇒ Object
Instance Method Details
#add_visibility_prefix_to_method(current_visibility, line, non_public_triggered) ⇒ Object
37 38 39 40 41 42 43 |
# File 'lib/crystalize/transform/lines/private_methods.rb', line 37 def add_visibility_prefix_to_method(current_visibility, line, non_public_triggered) if !non_public_triggered && current_visibility == :public line else " "*tabulation(line)+current_visibility.to_s + " "+ line.slice(tabulation(line), line.length) end end |
#line_without_private(line) ⇒ Object
33 34 35 |
# File 'lib/crystalize/transform/lines/private_methods.rb', line 33 def line_without_private(line) "" end |
#method_in_line?(line) ⇒ Boolean
56 57 58 |
# File 'lib/crystalize/transform/lines/private_methods.rb', line 56 def method_in_line?(line) line.match /[ ]*(def).*/ end |
#private_in_line?(line) ⇒ Boolean
64 65 66 |
# File 'lib/crystalize/transform/lines/private_methods.rb', line 64 def private_in_line?(line) !!line.match(/^[ ]*(private)[ ]*$/) end |
#protected_in_line?(line) ⇒ Boolean
68 69 70 |
# File 'lib/crystalize/transform/lines/private_methods.rb', line 68 def protected_in_line?(line) !!line.match(/^[ ]*(protected)[ ]*$/) end |
#public_in_line?(line) ⇒ Boolean
72 73 74 |
# File 'lib/crystalize/transform/lines/private_methods.rb', line 72 def public_in_line?(line) !!line.match(/^[ ]*(public)[ ]*$/) end |
#self_method_in_line?(line) ⇒ Boolean
60 61 62 |
# File 'lib/crystalize/transform/lines/private_methods.rb', line 60 def self_method_in_line?(line) line.match /[ ]*(def)[ ]+self[.].*/ end |
#tabulation(line) ⇒ Object
45 46 47 48 49 50 51 52 53 54 |
# File 'lib/crystalize/transform/lines/private_methods.rb', line 45 def tabulation(line) spaces_count = 0 line.split("").each_with_index do |c, index| if c != " " spaces_count = index break end end spaces_count end |
#transform_private_methods(lines) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/crystalize/transform/lines/private_methods.rb', line 5 def transform_private_methods(lines) new_lines = [] current_visibility = :public non_public_triggered = false lines.each do |line| if private_in_line?(line) current_visibility = :private non_public_triggered = true end if protected_in_line?(line) current_visibility = :protected non_public_triggered = true end current_visibility = :public if public_in_line?(line) if method_in_line?(line) && !self_method_in_line?(line) new_lines << add_visibility_prefix_to_method(current_visibility, line, non_public_triggered) elsif private_in_line?(line) || protected_in_line?(line) || public_in_line?(line) new_lines << line_without_private(line) else new_lines << line end end new_lines end |