class Snapdragon::SpecFile
Public Instance Methods
filtered?()
click to toggle source
# File lib/snapdragon/spec_file.rb, line 6 def filtered? return @path.has_line_number? end
spec_query_param()
click to toggle source
# File lib/snapdragon/spec_file.rb, line 10 def spec_query_param return '' if !filtered? # Work our way from the line number up to build the spec query param # description initial_line_number = @path.line_number initial_line_index = initial_line_number - 1 f = open(File.expand_path(@path.path), 'r') lines = f.readlines f.close desc_components = [] already_been_inside_an_it = false already_been_inside_a_describe = false last_describe_indent_spaces = 1232131312 cur_line_index = initial_line_index while cur_line_index >= 0 if lines[cur_line_index] =~ /it\s*\(\s*"(.+)"\s*,/ && !already_been_inside_an_it && !already_been_inside_a_describe # line matches it statement desc_components.push($1) already_been_inside_an_it = true elsif lines[cur_line_index] =~ /(\s*)describe\s*\(\s*"(.+)"\s*,/ # line matches a describe block if $1.length < last_describe_indent_spaces # use indent depth to identify parent desc_components.push($2) last_describe_indent_spaces = $1.length end already_been_inside_a_describe = true end cur_line_index -= 1 end return desc_components.reverse.join(" ") end