Class: ReportsKit::Order
- Inherits:
-
Object
- Object
- ReportsKit::Order
- Defined in:
- lib/reports_kit/order.rb
Constant Summary collapse
- VALID_RELATIONS =
%w(count dimension1 dimension2)
- VALID_FIELDS =
[nil, 'label']
- VALID_DIRECTIONS =
%w(asc desc)
Instance Attribute Summary collapse
-
#direction ⇒ Object
Returns the value of attribute direction.
-
#field ⇒ Object
Returns the value of attribute field.
-
#relation ⇒ Object
Returns the value of attribute relation.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(relation, field, direction) ⇒ Order
constructor
A new instance of Order.
Constructor Details
#initialize(relation, field, direction) ⇒ Order
Returns a new instance of Order.
9 10 11 12 13 |
# File 'lib/reports_kit/order.rb', line 9 def initialize(relation, field, direction) self.relation = relation self.field = field self.direction = direction end |
Instance Attribute Details
#direction ⇒ Object
Returns the value of attribute direction.
3 4 5 |
# File 'lib/reports_kit/order.rb', line 3 def direction @direction end |
#field ⇒ Object
Returns the value of attribute field.
3 4 5 |
# File 'lib/reports_kit/order.rb', line 3 def field @field end |
#relation ⇒ Object
Returns the value of attribute relation.
3 4 5 |
# File 'lib/reports_kit/order.rb', line 3 def relation @relation end |
Class Method Details
.parse(string) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/reports_kit/order.rb', line 15 def self.parse(string) string ||= '' field_expression, direction = string.to_s.split(/\s+/) relation, field = (field_expression || '').split('.') relation = relation.presence field = field.presence direction = direction.presence || 'asc' relation = relation.to_i if relation =~ /^\d+$/ raise ArgumentError.new("Invalid relation: #{relation}") unless VALID_RELATIONS.include?(relation) || relation.is_a?(Fixnum) raise ArgumentError.new("Invalid field: #{field}") unless VALID_FIELDS.include?(field) raise ArgumentError.new("Invalid direction: #{direction}") unless VALID_DIRECTIONS.include?(direction) new(relation, field, direction) end |