Class: Mongory::Generators::MatcherGenerator
- Inherits:
-
Rails::Generators::NamedBase
- Object
- Rails::Generators::NamedBase
- Mongory::Generators::MatcherGenerator
- Defined in:
- lib/generators/mongory/matcher/matcher_generator.rb
Overview
Generates a new Mongory matcher.
Instance Method Summary collapse
-
#create_matcher ⇒ void
Generates the matcher files and updates the initializer.
-
#update_initializer ⇒ void
Updates or creates the Mongory initializer.
Instance Method Details
#create_matcher ⇒ void
This method returns an undefined value.
Generates the matcher files and updates the initializer.
24 25 26 27 28 29 30 31 |
# File 'lib/generators/mongory/matcher/matcher_generator.rb', line 24 def create_matcher @matcher_name = "#{class_name}Matcher" @operator_name = name.underscore @mongo_operator = "$#{name.camelize(:lower)}" template 'matcher.rb.erb', "lib/mongory/matchers/#{file_name}_matcher.rb" template 'matcher_spec.rb.erb', "spec/mongory/matchers/#{file_name}_matcher_spec.rb" end |
#update_initializer ⇒ void
This method returns an undefined value.
Updates or creates the Mongory initializer.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/generators/mongory/matcher/matcher_generator.rb', line 36 def update_initializer initializer_path = 'config/initializers/mongory.rb' inject_line = "require \"#\{Rails.root\}/lib/mongory/matchers/#{file_name}_matcher\"" front_line = '# frozen_string_literal: true' Mongory::Generators::InstallGenerator.start unless File.exist?(initializer_path) content = File.read(initializer_path) return if content.include?(inject_line) required_file_lines = content.scan(/.*require\s+["'].*_matcher["'].*/) if required_file_lines.empty? inject_line = "\n#{inject_line}" else front_line = required_file_lines.last end inject_into_file initializer_path, "#{inject_line}\n", after: "#{front_line}\n" end |