Sha256: 8516c7ed170e7a4fca096ac2d7ef9a8e38d9bb5f3e12bad6b9633544104f41aa
Contents?: true
Size: 1.79 KB
Versions: 1
Compression:
Stored size: 1.79 KB
Contents
module SpecI18n module Parser class NaturalLanguage BASIC_KEYWORDS = %w{ name native describe before after it subject its should should_not} ADVANCED_KEYWORDS = %w{ hooks matchers} class << self def get(language) new(language) end end attr_reader :keywords def initialize(language) @keywords = SpecI18n::SPEC_LANGUAGES[language] raise(LanguageNotFound, "Language #{language.to_s} Not Supported") if @keywords.nil? end def incomplete? language_words = BASIC_KEYWORDS.collect { |key| keywords[key].nil? } return true if language_words.include?(true) false end def dsl_keywords spec_keywords("describe") end def expectation_keywords language_adverbs = spec_keywords("should") language_adverbs.merge(spec_keywords("should_not")) end def before_and_after_keywords adverbs = spec_keywords("before") adverbs.merge(spec_keywords("after")) end def hooks_params_keywords hooks = {} keywords['hooks'].each do |hook, value| values = value.split('|') hooks[hook] = values end hooks end def example_group_keywords spec_keywords("it") end def subject_keywords adverbs = spec_keywords('subject') end def its_keywords spec_keywords("its") end def spec_keywords(key, space=false) raise "No #{key} in #{@keywords.inspect}" if @keywords[key].nil? values = keywords[key].split('|') { key => values } end end class LanguageNotFound < StandardError end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rspec-i18n-1.0.0 | lib/spec-i18n/parser/natural_language.rb |