module Transpec::Syntax::Mixin::Metadata

Public Instance Methods

metadata_key_nodes() click to toggle source
# File lib/transpec/syntax/mixin/metadata.rb, line 26
def metadata_key_nodes
  metadata_nodes.each_with_object([]) do |node, key_nodes|
    if node.hash_type?
      key_nodes.concat(node.children.map { |pair_node| pair_node.children.first })
    else
      key_nodes << node
    end
  end
end
metadata_nodes() click to toggle source
# File lib/transpec/syntax/mixin/metadata.rb, line 13
def metadata_nodes
  return arg_nodes if arg_nodes.empty?

  # The first argument must be always description.
  non_description_arg_nodes = arg_nodes.drop(1)

  non_description_arg_nodes.drop_while do |node|
    # Possibly there still may be descriptions after the first arg.
    #   describe 'something', '#some_method', :foo, bar: true { }
    ![:hash, :sym].include?(node.type)
  end
end