class Interage::Request::Generators::CreateGenerator

Attributes

arguments[R]
request_param[R]
tab[R]

Public Class Methods

new(args, *_options) click to toggle source
Calls superclass method
# File lib/generators/interage/request/create/create_generator.rb, line 11
def initialize(args, *_options)
  super

  @tab = '  '
  @arguments = args
  @request_param = arguments.shift.to_s.underscore
end

Public Instance Methods

create_request() click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 19
def create_request
  if create_base_request?
    template('base_request.rb', new_base_request_file)
  end

  template('request.rb', new_request_file)

  template('builder.rb', new_builder_file)
end

Private Instance Methods

base_request_path() click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 41
def base_request_path
  "#{main_modulu.underscore}/base_request"
end
builder_accessors() click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 77
def builder_accessors
  ":#{arguments.join(",\n#{tabs(modulus.count + 8)}:")}"
end
builder_changeable_attributes() click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 81
def builder_changeable_attributes
  arguments.map { |argument| "#{argument}: #{argument}" }
           .join(",\n#{tabs(modulus.count + 3)}")
end
builder_class() click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 69
def builder_class
  @builder_class ||= builder_full_class.split('::').last
end
builder_full_class() click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 73
def builder_full_class
  @builder_full_class ||= prefix_class_name.camelize
end
create_base_request?() click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 33
def create_base_request?
  !File.exist?(new_base_request_file) && modulu_exists?
end
main_modulu() click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 94
def main_modulu
  modulus.first.to_s
end
modules_end() click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 104
def modules_end
  modulus.count.downto(1).map { |i| "#{tabs(i - 1)}end" }
end
modulu_exists?() click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 90
def modulu_exists?
  main_modulu.present?
end
modulus() click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 108
def modulus
  @modulus ||= begin
    names = builder_full_class.split('::')

    names.take(names.count - 1)
  end
end
modulus_init() click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 98
def modulus_init
  0.upto(modulus.count - 1).map do |i|
    "#{tabs(i)}module #{modulus[i]}"
  end
end
new_base_request_file() click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 37
def new_base_request_file
  Rails.root.join("app/requests/#{base_request_path}.rb")
end
new_builder_file() click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 65
def new_builder_file
  Rails.root.join("app/builders/#{prefix_class_name}.rb")
end
new_request_file() click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 45
def new_request_file
  Rails.root.join("app/requests/#{request_path}.rb")
end
prefix_class_name() click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 120
def prefix_class_name
  @prefix_class_name ||= request_param.split('_by_').first
end
request_class() click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 57
def request_class
  @request_class ||= request_path.split('/').last.camelize
end
request_extend_class() click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 86
def request_extend_class
  modulu_exists? ? base_request_path.camelize : 'ApplicationRequest'
end
request_full_class() click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 61
def request_full_class
  (modulus + [request_class]).join('::')
end
request_path() click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 49
def request_path
  @request_path ||= begin
    path =
      request_param.gsub(prefix_class_name, prefix_class_name.pluralize)
    "#{path}_request"
  end
end
tabs(size = nil) click to toggle source
# File lib/generators/interage/request/create/create_generator.rb, line 116
def tabs(size = nil)
  tab * (size || modulus.count).to_i
end