Class: PatternGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Defined in:
lib/generators/pattern/pattern_generator.rb

Overview

Generate template files and tests with a patten name

Instance Method Summary collapse

Instance Method Details

#create_app_pattern_fileObject



21
22
23
24
25
26
27
28
# File 'lib/generators/pattern/pattern_generator.rb', line 21

def create_app_pattern_file
  create_file "app/#{@pattern_value_object.directory_name}/#{@pattern_value_object.file_name}.rb", <<~FILE
    # frozen_string_literal: true

    class #{@pattern_value_object.klass_name} < Application#{@pattern_value_object.pattern_klass_name}
    end
  FILE
end

#create_application_pattern_fileObject



7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/generators/pattern/pattern_generator.rb', line 7

def create_application_pattern_file
  @pattern_value_object = PatternValueObject.new(file_name)
  application_file_name = "app/#{@pattern_value_object.directory_name}/application_#{@pattern_value_object.pattern_name}.rb"

  return if File.exist?(application_file_name)

  create_file application_file_name, <<~FILE
    # frozen_string_literal: true

    class Application#{@pattern_value_object.pattern_klass_name}
    end
  FILE
end

#create_test_application_pattern_fileObject



30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/generators/pattern/pattern_generator.rb', line 30

def create_test_application_pattern_file
  application_file_name = "test/#{@pattern_value_object.directory_name}/application_#{@pattern_value_object.pattern_name}_test.rb"

  return if File.exist?(application_file_name)

  create_file application_file_name, <<~FILE
    # frozen_string_literal: true

    require 'test_helper'

    class Application#{@pattern_value_object.pattern_klass_name}Test < ActiveSupport::TestCase
    end
  FILE
end

#create_test_pattern_fileObject



45
46
47
48
49
50
51
52
53
54
# File 'lib/generators/pattern/pattern_generator.rb', line 45

def create_test_pattern_file
  create_file "test/#{@pattern_value_object.directory_name}/#{@pattern_value_object.file_name}_test.rb", <<~FILE
    # frozen_string_literal: true

    require 'test_helper'

    class #{@pattern_value_object.klass_name}Test < ActiveSupport::TestCase
    end
  FILE
end