module Transpec::Syntax::Mixin::BlockOwner

Public Instance Methods

block_base_indentation() click to toggle source
# File lib/transpec/syntax/mixin/block_owner.rb, line 34
def block_base_indentation
  Util.indentation_of_line(block_node)
end
block_beginning_line() click to toggle source
# File lib/transpec/syntax/mixin/block_owner.rb, line 46
def block_beginning_line
  block_node.loc.begin.line
end
block_body_line() click to toggle source
# File lib/transpec/syntax/mixin/block_owner.rb, line 50
def block_body_line
  block_body_node.loc.expression.line
end
block_body_node() click to toggle source
# File lib/transpec/syntax/mixin/block_owner.rb, line 42
def block_body_node
  block_node.children[2]
end
block_body_range() click to toggle source
# File lib/transpec/syntax/mixin/block_owner.rb, line 66
def block_body_range
  block_body_node = block_node.children[2]
  block_body_node.loc.expression
end
block_end_line() click to toggle source
# File lib/transpec/syntax/mixin/block_owner.rb, line 54
def block_end_line
  block_node.loc.end.line
end
block_has_body?() click to toggle source
# File lib/transpec/syntax/mixin/block_owner.rb, line 38
def block_has_body?
  !block_body_node.nil?
end
convert_singleline_block_to_multiline!() click to toggle source
# File lib/transpec/syntax/mixin/block_owner.rb, line 13
def convert_singleline_block_to_multiline!
  return unless block_has_body? # TODO

  has_inserted_linefeed = false

  if block_beginning_line == block_body_line
    replace(range_between_block_begin_and_body, "\n#{block_base_indentation}  ")
    has_inserted_linefeed = true
  end

  if block_end_line == block_body_line
    replace(range_between_block_body_and_end, "\n#{block_base_indentation}")
    has_inserted_linefeed = true
  end

  if has_inserted_linefeed
    replace(block_node.loc.begin, 'do')
    replace(block_node.loc.end, 'end')
  end
end
range_between_block_begin_and_body() click to toggle source
# File lib/transpec/syntax/mixin/block_owner.rb, line 58
def range_between_block_begin_and_body
  block_node.loc.begin.end.join(block_body_node.loc.expression.begin)
end
range_between_block_body_and_end() click to toggle source
# File lib/transpec/syntax/mixin/block_owner.rb, line 62
def range_between_block_body_and_end
  block_body_node.loc.expression.end.join(block_node.loc.end.begin)
end