Sha256: 00438ce378379c62e62168045efe42b5d2bc4b3a27f9af10adae3cbf44319a1f

Contents?: true

Size: 1.07 KB

Versions: 5

Compression:

Stored size: 1.07 KB

Contents

# Generates scaffold for Mack applications.
# 
# Example:
#   rake generate:scaffold name=post
class ScaffoldGenerator < Genosaurus
  
  require_param :name
  
  def setup # :nodoc:
    @name_singular = param(:name).singular.underscore
    @name_plural = param(:name).plural.underscore
    @name_singular_camel = @name_singular.camelcase
    @name_plural_camel = @name_plural.camelcase    
  end
  
  def after_generate # :nodoc:
    ModelGenerator.run(@options)
    update_routes_file
  end
  
  def update_routes_file # :nodoc:
    # update routes.rb
    routes = File.join(Mack.root, "config", "routes.rb")
    rf = File.open(routes).read
    unless rf.match(".resource :#{@name_plural}")
      puts "Updating routes.rb"
      nrf = ""
      rf.each do |line|
        if line.match("Mack::Routes.build")
          x = line.match(/\|(.+)\|/).captures
          line << "\n  #{x}.resource :#{@name_plural} # Added by rake generate:scaffold name=#{param(:name)}\n"
        end
        nrf << line
      end
      File.open(routes, "w") do |f|
        f.puts nrf
      end
    end
  end
  
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mack-data_mapper-0.6.0 lib/scaffold_generator/scaffold_generator.rb
mack-data_mapper-0.6.0.1 lib/scaffold_generator/scaffold_generator.rb
mack-data_mapper-0.6.1.1 lib/mack-data_mapper/scaffold_generator/scaffold_generator.rb
mack-data_mapper-0.6.1.2 lib/mack-data_mapper/scaffold_generator/scaffold_generator.rb
mack-data_mapper-0.6.1 lib/mack-data_mapper/scaffold_generator/scaffold_generator.rb