class CartGenerator

Attributes

product_cname[RW]
user_cname[RW]

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/generators/cart_generator.rb, line 7
def initialize *args
  @user_cname = args[0][0]
  @product_cname = args[0][1]
  super
end

Public Instance Methods

copy_cart_migration() click to toggle source
# File lib/generators/cart_generator.rb, line 23
def copy_cart_migration
  migration_template "migration.rb", "db/migrate/create_carts.rb"
end
ensure_defined() click to toggle source
# File lib/generators/cart_generator.rb, line 13
def ensure_defined
  ensure_classes_defined [:user, :product]
end
generate_model() click to toggle source
# File lib/generators/cart_generator.rb, line 17
def generate_model
  invoke "active_record:model", [ "cart" ], :migration => false
  
  inject_into_class model_path, Cart, model_content 
end

Private Instance Methods

ensure_class_defined(cname) click to toggle source
# File lib/generators/cart_generator.rb, line 49
def ensure_class_defined cname
  table_name = eval("@#{cname}_cname").downcase.pluralize

  unless ActiveRecord::Base.connection.table_exists? table_name
    prompt_missing table_name
    abort
  end
end
ensure_classes_defined(cnames) click to toggle source
# File lib/generators/cart_generator.rb, line 45
def ensure_classes_defined cnames
  cnames.each{|cname| ensure_class_defined cname}
end
model_content() click to toggle source
# File lib/generators/cart_generator.rb, line 33
def model_content
  ERB.new(File.read(File.join(__dir__, 'templates/model.rb'))).result(binding)
end
model_path() click to toggle source
# File lib/generators/cart_generator.rb, line 29
def model_path
  File.join("app", "models", "cart.rb")
end
product_id() click to toggle source
# File lib/generators/cart_generator.rb, line 41
def product_id
  ":#{@product_cname.downcase}_id"
end
prompt_missing(table_name) click to toggle source
# File lib/generators/cart_generator.rb, line 58
def prompt_missing table_name
  puts "Table #{table_name} is missing"
end
user_id() click to toggle source
# File lib/generators/cart_generator.rb, line 37
def user_id
  ":#{@user_cname.downcase}_id"
end