class CodeigniterScaffold::Command::Scaffold

Constants

ARGS_ARE_NEEDED
ARGS_WRONG

Attributes

attributes[RW]
model[RW]

Public Instance Methods

run(args) click to toggle source
# File lib/codeigniter_scaffold/command/scaffold.rb, line 10
def run(args)
  begin
    return Kernel.puts(ARGS_ARE_NEEDED) unless valid?(args)
    parse(args)

    create("controller.php","application/controllers/#{@model.capitalize}.php")
    create("model.php","application/models/#{@model.capitalize}_model.php")
    create("migration.sql","application/migrations/create_#{@model.downcase}.sql")
    mkdir ("application/views/#{@model.downcase}")
    create("view_create.php","application/views/#{@model.downcase}/create.php")
    create("view_index.php","application/views/#{@model.downcase}/index.php")
  rescue
    return Kernel.puts(ARGS_WRONG)
  end
end

Protected Instance Methods

parse(args) click to toggle source
# File lib/codeigniter_scaffold/command/scaffold.rb, line 33
def parse(args)
  @model = args.shift.capitalize
  @attributes = Array.new
  args.each {|a| @attributes << Attribute.new(a) }
end
valid?(args) click to toggle source
# File lib/codeigniter_scaffold/command/scaffold.rb, line 27
def valid?(args)
  return false if not args or args.empty?
  return false if args.size <= 1
  true
end

Private Instance Methods

create(template, output) click to toggle source
# File lib/codeigniter_scaffold/command/scaffold.rb, line 40
def create(template, output)
  parse_to(template, output)
  puts "File #{output} was successfully created."
end
mkdir(directory_name) click to toggle source
# File lib/codeigniter_scaffold/command/scaffold.rb, line 54
def mkdir(directory_name)
  begin
    Dir::mkdir(directory_name)
  rescue
    # directory exists
  end
end
parse_to(path_to_template, path_to_output) click to toggle source
# File lib/codeigniter_scaffold/command/scaffold.rb, line 45
def parse_to(path_to_template, path_to_output)
  resource_dir = File.dirname(__FILE__) + "/../../resources/"
  @template = File.read(File.join(resource_dir, path_to_template))
  template = ERB.new(@template)
  file = File.new(path_to_output,"w")
  file.write(template.result(binding))
  file.close
end