class DatabaseLogic::Generators::FunctionGenerator
Public Instance Methods
generate(asset_type = :function)
click to toggle source
# File lib/generators/database_logic/function_generator.rb, line 8 def generate(asset_type = :function) 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/function_generator.rb, line 44 def asset_name name end
create_asset!(asset_type)
click to toggle source
# File lib/generators/database_logic/function_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/function_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/function_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/function_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/function_generator.rb, line 49 def serialized_asset_name asset_name.parameterize.underscore end
timestamp()
click to toggle source
# File lib/generators/database_logic/function_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/function_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/function_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