class DatabaseLogic::Generators::ViewGenerator

Public Instance Methods

generate(asset_type = :view) click to toggle source
# File lib/generators/database_logic/view_generator.rb, line 8
def generate(asset_type = :view)
    ensure_path_exists! asset_type
    validate_file_name! asset_type
    validate_asset_name! asset_type
    create_asset! asset_type
end

Private Instance Methods

asset_name() click to toggle source
# File lib/generators/database_logic/view_generator.rb, line 44
def asset_name
    name
end
create_asset!(asset_type) click to toggle source
# File lib/generators/database_logic/view_generator.rb, line 18
def create_asset!(asset_type)
    @name = serialized_asset_name
    create_file file_name_with_path(asset_type.to_s.pluralize), ERB.new( File.read( "#{ File.dirname(File.realpath(__FILE__)) }/templates/#{asset_type}.erb.sqlt"  )  ).result(binding)
end
ensure_path_exists!(asset_dir) click to toggle source
# File lib/generators/database_logic/view_generator.rb, line 24
def ensure_path_exists!(asset_dir)
    FileUtils.mkdir_p Rails.root.join("app/sql/#{ asset_dir.to_s.pluralize }")
end
file_name_with_path( dir ) click to toggle source
# File lib/generators/database_logic/view_generator.rb, line 39
def file_name_with_path( dir )
    Rails.root.join "app/sql/#{ dir }/#{ file_name_with_timestamp }.sql"
end
file_name_with_timestamp() click to toggle source
# File lib/generators/database_logic/view_generator.rb, line 34
def file_name_with_timestamp
    "#{ timestamp }_#{ serialized_asset_name }"
end
serialized_asset_name() click to toggle source
# File lib/generators/database_logic/view_generator.rb, line 49
def serialized_asset_name
    asset_name.parameterize.underscore
end
timestamp() click to toggle source
# File lib/generators/database_logic/view_generator.rb, line 29
def timestamp
    Time.now.strftime("%Y%M%d%H%M%S")
end
validate_asset_name!( asset_type ) click to toggle source
# File lib/generators/database_logic/view_generator.rb, line 54
def validate_asset_name!( asset_type )
    raise Error.new("#{ asset_type.to_s.capitalize } named #{serialized_asset_name} already exists, please choose another name") if Dir.glob(Rails.root.join("app/sql/#{ asset_type.to_s.pluralize }/*_#{serialized_asset_name}.sql")).size > 0
end
validate_file_name!( asset_type ) click to toggle source
# File lib/generators/database_logic/view_generator.rb, line 59
def validate_file_name!( asset_type )
    raise Error.new("File #{file_name_with_timestamp} already exists") if File.exist?( file_name_with_path( asset_type.to_s.pluralize ) )
end