Sha256: 97ecc4c91539331719477c5f044611a2b80a62185a764299312d7f4c501e05ac

Contents?: true

Size: 1.43 KB

Versions: 1

Compression:

Stored size: 1.43 KB

Contents

# encoding: utf-8
module Freeberry
  class Utils
    class << self
      def parameterize_filename(filename)
        extension = File.extname(filename)
        basename = filename.gsub(/#{extension}$/, "")
        
        [basename.parameterize('_'), extension].join.downcase
      end
      
      def form_field(form_name, field_name, column, options={})
        field = case column.type
          when :string, :binary, :integer, :float, :decimal then 
            options[:class] = "'text'"
            "text_field"
          when :boolean then "check_box"
          when :datetime, :date, :timestamp, :time then 
            options[:extra_html] ||= "<script type='text/javascript'>
              $(function() {
	              $('#_#{field_name}').datepicker({
		              numberOfMonths: 1,
		              dateFormat: 'dd.mm.yy'
	              });
              });
            </script>"
            'text_field'
          when :text then 
            options[:cols] ||= 70
            options[:rows] ||= 5
            "text_area"
        end
        
        extra_html = options.delete(:extra_html) || ''
        
        options_fields = []
        options.each { |k, v| options_fields << ":#{k}=>#{v}" }
        
        options_str = ", {#{options_fields.join(', ')}}" unless options_fields.empty? 
        options_str ||= ''
        
        "<%= #{form_name}.#{field} #{field_name}#{options_str} %>#{extra_html}"
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
freeberry-0.2.6 lib/freeberry/utils.rb