class Pleiades::SetupGenerator

Public Instance Methods

gen_base_command() click to toggle source
# File lib/pleiades/generators/pleiades/setup/setup_generator.rb, line 19
def gen_base_command
  return if base_command_exist?

  copy_file File.basename(base_command_path), base_command_path
end
gen_command_concern() click to toggle source
# File lib/pleiades/generators/pleiades/setup/setup_generator.rb, line 25
def gen_command_concern
  return if command_concern_exist?

  template File.basename(command_concern_path('e')), command_concern_path
end
gen_controller() click to toggle source
# File lib/pleiades/generators/pleiades/setup/setup_generator.rb, line 31
def gen_controller
  return if controller_file_exist?

  generate 'controller', controller_dir

  route routes_drowing_str

  File.delete controller_file_path
  copy_file File.basename(controller_file_path), controller_file_path
end

Private Instance Methods

base_command_path() click to toggle source
# File lib/pleiades/generators/pleiades/setup/setup_generator.rb, line 101
def base_command_path
  "#{Pleiades::Config.command.commands_path}/base_command.rb"
end
command_concern_path(add_ext = false) click to toggle source
# File lib/pleiades/generators/pleiades/setup/setup_generator.rb, line 105
def command_concern_path(add_ext = false)
  ext = add_ext ? true.to_s[3] : ''
  "#{Pleiades::Config.command.commands_path}/concerns/command_common.#{ext}rb"
end
controller_dir() click to toggle source
# File lib/pleiades/generators/pleiades/setup/setup_generator.rb, line 114
def controller_dir
  'line/api'
end
controller_file_path() click to toggle source
# File lib/pleiades/generators/pleiades/setup/setup_generator.rb, line 110
def controller_file_path
  "app/controllers/#{controller_dir}_controller.rb"
end
gen_user_table() click to toggle source

UserModelのマイグレーションファイル生成

# File lib/pleiades/generators/pleiades/setup/setup_generator.rb, line 52
def gen_user_table
  generate 'model', "user #{migration_arguments}"
  
  user_schemas.each_pair do |key, val|
    next unless val[:options]

    inject_into_file(
      Dir.glob(migration_file_path).last,
      ", #{val[:options]}",
      after: key
    )
  end
end
gen_users_command() click to toggle source

ユーザに関するコマンドの生成

# File lib/pleiades/generators/pleiades/setup/setup_generator.rb, line 67
def gen_users_command
  dir = 'users'
  command_events = %w[follow unfollow]

  command_events.each { |event| generate 'pleiades:command', "#{event} -d #{dir} -t #{event}" }
end
method_missing(method, *_) click to toggle source
Calls superclass method
# File lib/pleiades/generators/pleiades/setup/setup_generator.rb, line 44
def method_missing(method, *_)
  method_name = /^(([a-z]+_)+)exist\?$/.match(method.to_s)
  return super unless method_name

  File.exist? method(:"#{method_name[1]}path").call
end
migration_arguments() click to toggle source
# File lib/pleiades/generators/pleiades/setup/setup_generator.rb, line 74
def migration_arguments
  user_schemas
    .each_pair
    .inject('') { |str, (key, val)| "#{str}#{key}:#{val[:type]} " }
end
migration_file_path() click to toggle source
# File lib/pleiades/generators/pleiades/setup/setup_generator.rb, line 93
def migration_file_path
  'db/migrate/*_users.rb'
end
routes_drowing_str() click to toggle source
# File lib/pleiades/generators/pleiades/setup/setup_generator.rb, line 118
  def routes_drowing_str
    <<~ROUTE
      namespace :line do
        namespace :api do
          post '/' , action: 'callback'
        end
      end
    ROUTE
  end
user_schemas() click to toggle source
# File lib/pleiades/generators/pleiades/setup/setup_generator.rb, line 80
def user_schemas
  {
    line_id:          { type: :string, options: 'null: false, unique: true' },
    unsubscrided:     { type: :boolean },
    unsubscrided_at:  { type: :datetime }
  }
end
user_table_path() click to toggle source
# File lib/pleiades/generators/pleiades/setup/setup_generator.rb, line 88
def user_table_path
  path = Dir.glob(migration_file_path).first
  path || migration_file_path
end
users_command_path() click to toggle source
# File lib/pleiades/generators/pleiades/setup/setup_generator.rb, line 97
def users_command_path
  "#{Pleiades::Config.command.commands_path}/users/follow.rb"
end