class Concern::RspecGenerator
Public Instance Methods
generate_spec()
click to toggle source
# File lib/generators/concern/rspec/rspec_generator.rb, line 18 def generate_spec return unless options[:controller] || options[:model] template("base_#{_type}_spec.erb", spec_filepath) if invoke? && !File.exists?(spec_filepath) end
include_spec()
click to toggle source
# File lib/generators/concern/rspec/rspec_generator.rb, line 28 def include_spec # [xxx] - destroy の時に不要なコードが挿入されてしまう inject_into_file spec_filepath, content, after: /^RSpec.describe (.+) do\n/ end
Private Instance Methods
_type()
click to toggle source
# File lib/generators/concern/rspec/rspec_generator.rb, line 38 def _type (!!options[:controller]) ? :controller : :model end
content()
click to toggle source
# File lib/generators/concern/rspec/rspec_generator.rb, line 55 def content <<-'CODE' describe "Included module" do subject { [class_name] } include_examples "included modules" end CODE .gsub(/class_name/, class_name) end
invoke?()
click to toggle source
# File lib/generators/concern/rspec/rspec_generator.rb, line 34 def invoke? self.behavior == :invoke end
spec_filepath()
click to toggle source
# File lib/generators/concern/rspec/rspec_generator.rb, line 46 def spec_filepath { controller: "_controller_spec.rb", model: "_spec.rb", }.map do |type, postfix| File.join(*%W[spec #{type}s #{options[type]}#{postfix}]) if !!options&.[](type) end.compact.pop end
target_name()
click to toggle source
# File lib/generators/concern/rspec/rspec_generator.rb, line 42 def target_name options[_type].classify end