Module: ActiveNode::QueryMethods
- Included in:
- Graph
- Defined in:
- lib/active_node/graph/query_methods.rb
Instance Method Summary collapse
-
#limit(value) ⇒ Object
Specifies a limit for the number of records to retrieve.
-
#limit!(value) ⇒ Object
:nodoc:.
-
#offset(value) ⇒ Object
Specifies the number of rows to skip before returning rows.
-
#offset!(value) ⇒ Object
:nodoc:.
-
#order(*args) ⇒ Object
Allows to specify an order attribute:.
-
#order!(*args) ⇒ Object
:nodoc:.
-
#reorder(*args) ⇒ Object
Replaces any existing order defined on the relation with the specified order.
-
#reorder!(*args) ⇒ Object
:nodoc:.
-
#reverse_order ⇒ Object
Reverse the existing order clause on the relation.
-
#reverse_order! ⇒ Object
:nodoc:.
Instance Method Details
#limit(value) ⇒ Object
Specifies a limit for the number of records to retrieve.
User.limit(10) # generated SQL has 'LIMIT 10'
User.limit(10).limit(20) # generated SQL has 'LIMIT 20'
38 39 40 |
# File 'lib/active_node/graph/query_methods.rb', line 38 def limit(value) spawn.limit!(value) end |
#limit!(value) ⇒ Object
:nodoc:
42 43 44 45 |
# File 'lib/active_node/graph/query_methods.rb', line 42 def limit!(value) # :nodoc: self.limit_value = value self end |
#offset(value) ⇒ Object
Specifies the number of rows to skip before returning rows.
User.offset(10) # generated SQL has "OFFSET 10"
Should be used with order.
User.offset(10).order("name ASC")
54 55 56 |
# File 'lib/active_node/graph/query_methods.rb', line 54 def offset(value) spawn.offset!(value) end |
#offset!(value) ⇒ Object
:nodoc:
58 59 60 61 |
# File 'lib/active_node/graph/query_methods.rb', line 58 def offset!(value) # :nodoc: self.offset_value = value self end |
#order(*args) ⇒ Object
Allows to specify an order attribute:
User.order('name')
=> SELECT "users".* FROM "users" ORDER BY name
User.order('name DESC')
=> SELECT "users".* FROM "users" ORDER BY name DESC
User.order('name DESC, email')
=> SELECT "users".* FROM "users" ORDER BY name DESC, email
User.order(:name)
=> SELECT "users".* FROM "users" ORDER BY "users"."name" ASC
User.order(email: :desc)
=> SELECT "users".* FROM "users" ORDER BY "users"."email" DESC
User.order(:name, email: :desc)
=> SELECT "users".* FROM "users" ORDER BY "users"."name" ASC, "users"."email" DESC
83 84 85 86 |
# File 'lib/active_node/graph/query_methods.rb', line 83 def order(*args) check_if_method_has_arguments!(:order, args) spawn.order!(*args) end |
#order!(*args) ⇒ Object
:nodoc:
88 89 90 91 92 93 |
# File 'lib/active_node/graph/query_methods.rb', line 88 def order!(*args) # :nodoc: preprocess_order_args(args) self.order_values += args self end |
#reorder(*args) ⇒ Object
Replaces any existing order defined on the relation with the specified order.
User.order('email DESC').reorder('id ASC') # generated SQL has 'ORDER BY id ASC'
Subsequent calls to order on the same relation will be appended. For example:
User.order('email DESC').reorder('id ASC').order('name ASC')
generates a query with ‘ORDER BY id ASC, name ASC’.
104 105 106 107 |
# File 'lib/active_node/graph/query_methods.rb', line 104 def reorder(*args) check_if_method_has_arguments!(:reorder, args) spawn.reorder!(*args) end |
#reorder!(*args) ⇒ Object
:nodoc:
109 110 111 112 113 114 115 |
# File 'lib/active_node/graph/query_methods.rb', line 109 def reorder!(*args) # :nodoc: preprocess_order_args(args) self.reordering_value = true self.order_values = args self end |
#reverse_order ⇒ Object
Reverse the existing order clause on the relation.
User.order('name ASC').reverse_order # generated SQL has 'ORDER BY name DESC'
120 121 122 |
# File 'lib/active_node/graph/query_methods.rb', line 120 def reverse_order spawn.reverse_order! end |
#reverse_order! ⇒ Object
:nodoc:
124 125 126 127 |
# File 'lib/active_node/graph/query_methods.rb', line 124 def reverse_order! # :nodoc: self.reverse_order_value = !reverse_order_value self end |