Sha256: c0788f2409af673ea8ac84acabebc3420c0e98128aa266fdc7b4bb9473ad274a
Contents?: true
Size: 1.45 KB
Versions: 2
Compression:
Stored size: 1.45 KB
Contents
module CucumberAnalytics # A class modeling the Doc String of a Step. class DocString include Raw include Nested # The content type associated with the doc string attr_accessor :content_type # The contents of the doc string attr_accessor :contents # Creates a new DocString object and, if *source* is provided, populates # the object. def initialize(source = nil) @contents = [] parsed_doc_string = process_source(source) build_doc_string(parsed_doc_string) if parsed_doc_string end private def process_source(source) case when source.is_a?(String) parse_doc_string(source) else source end end def parse_doc_string(source_text) base_file_string = "Feature:\nScenario:\n* step\n" source_text = base_file_string + source_text parsed_file = Parsing::parse_text(source_text) parsed_file.first['elements'].first['steps'].first['doc_string'] end def build_doc_string(doc_string) populate_content_type(doc_string) populate_contents(doc_string) populate_raw_element(doc_string) end def populate_content_type(doc_string) @content_type = doc_string['content_type'] == "" ? nil : doc_string['content_type'] end def populate_contents(doc_string) @contents = doc_string['value'].split($/) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
cucumber_analytics-1.4.0 | lib/cucumber_analytics/doc_string.rb |
cucumber_analytics-1.3.0 | lib/cucumber_analytics/doc_string.rb |