lib/lolita/configuration/column.rb in lolita-3.1.9 vs lib/lolita/configuration/column.rb in lolita-3.1.10
- old
+ new
@@ -1,94 +1,94 @@
-module Lolita
- module Configuration
- class Column
-
- include Lolita::Builder
-
- MAX_TEXT_SIZE=20
- lolita_accessor :name,:title,:type,:options,:sortable
-
- def initialize(dbi,*args,&block)
- @dbi=dbi
- self.set_attributes(*args)
- self.instance_eval(&block) if block_given?
- validate
- set_default_values
- end
-
- def title(value=nil)
- @title=value if value
- @title||=@dbi.klass.human_attribute_name(@name.to_s)
- @title
- end
-
- def sortable?
- @sortable
- end
-
- def currently_sorting?(params)
- @sortable && params[:sc].to_s==self.name.to_s
- end
-
- def sort_options(params)
- direction=if params[:sc].to_s==self.name.to_s
- params[:sd].to_s=="asc" ? "desc" : "asc"
- else
- "desc"
- end
- {:sc=>self.name,:sd=>direction}
- end
-
- # Define format, for details see Lolita::Support::Formatter and Lolita::Support::Formater::Rails
- def formatter(value=nil,&block)
- if block_given?
- @formatter=Lolita::Support::Formatter.new(value,&block)
- elsif value || !@formatter
- if value.kind_of?(Lolita::Support::Formatter)
- @formatter=value
- else
- @formatter=Lolita::Support::Formatter::Rails.new(value)
- end
- end
- @formatter
- end
-
- def formatter=(value)
- if value.kind_of?(Lolita::Support::Formatter)
- @formatter=value
- else
- @formatter=Lolita::Support::Formatter::Rails.new(value)
- end
- end
-
- def set_attributes(*args)
- if !args.empty?
- if args[0].is_a?(Hash)
- args[0].each{|m,value|
- self.send("#{m}=".to_sym,value)
- }
- elsif args[0].is_a?(Symbol) || args[0].is_a?(String)
- self.name=args[0].to_s
- if args[1].is_a?(Hash)
- args[1].each{|m,value|
- self.send("#{m}=".to_sym,value)
- }
- end
- else
- raise ArgumentError.new("Lolita::Configuration::Column arguments must be Hash or Symbol or String instead of #{args[0].class}")
- end
- end
- end
-
- private
-
- def set_default_values
- @sortable||=true
- @sort_direction||=:desc
- end
-
- def validate
- raise ArgumentError.new("Column must have name.") unless self.name
- end
- end
- end
-end
+module Lolita
+ module Configuration
+ class Column
+
+ include Lolita::Builder
+
+ MAX_TEXT_SIZE=20
+ lolita_accessor :name,:title,:type,:options,:sortable
+
+ def initialize(dbi,*args,&block)
+ @dbi=dbi
+ self.set_attributes(*args)
+ self.instance_eval(&block) if block_given?
+ validate
+ set_default_values
+ end
+
+ def title(value=nil)
+ @title=value if value
+ @title||=@dbi.klass.human_attribute_name(@name.to_s)
+ @title
+ end
+
+ def sortable?
+ @sortable
+ end
+
+ def currently_sorting?(params)
+ @sortable && params[:sc].to_s==self.name.to_s
+ end
+
+ def sort_options(params)
+ direction=if params[:sc].to_s==self.name.to_s
+ params[:sd].to_s=="asc" ? "desc" : "asc"
+ else
+ "desc"
+ end
+ {:sc=>self.name,:sd=>direction}
+ end
+
+ # Define format, for details see Lolita::Support::Formatter and Lolita::Support::Formater::Rails
+ def formatter(value=nil,&block)
+ if block_given?
+ @formatter=Lolita::Support::Formatter.new(value,&block)
+ elsif value || !@formatter
+ if value.kind_of?(Lolita::Support::Formatter)
+ @formatter=value
+ else
+ @formatter=Lolita::Support::Formatter::Rails.new(value)
+ end
+ end
+ @formatter
+ end
+
+ def formatter=(value)
+ if value.kind_of?(Lolita::Support::Formatter)
+ @formatter=value
+ else
+ @formatter=Lolita::Support::Formatter::Rails.new(value)
+ end
+ end
+
+ def set_attributes(*args)
+ if !args.empty?
+ if args[0].is_a?(Hash)
+ args[0].each{|m,value|
+ self.send("#{m}=".to_sym,value)
+ }
+ elsif args[0].is_a?(Symbol) || args[0].is_a?(String)
+ self.name=args[0].to_s
+ if args[1].is_a?(Hash)
+ args[1].each{|m,value|
+ self.send("#{m}=".to_sym,value)
+ }
+ end
+ else
+ raise ArgumentError.new("Lolita::Configuration::Column arguments must be Hash or Symbol or String instead of #{args[0].class}")
+ end
+ end
+ end
+
+ private
+
+ def set_default_values
+ @sortable||=true
+ @sort_direction||=:desc
+ end
+
+ def validate
+ raise ArgumentError.new("Column must have name.") unless self.name
+ end
+ end
+ end
+end