aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/arel/attributes/attribute.rb6
-rw-r--r--test/test_attributes.rb8
2 files changed, 14 insertions, 0 deletions
diff --git a/lib/arel/attributes/attribute.rb b/lib/arel/attributes/attribute.rb
index 5aea87ac43..240f224d8c 100644
--- a/lib/arel/attributes/attribute.rb
+++ b/lib/arel/attributes/attribute.rb
@@ -4,6 +4,12 @@ module Arel
include Arel::Expressions
include Arel::Predications
include Arel::Math
+
+ ###
+ # Create a node for lowering this attribute
+ def lower
+ relation.lower self
+ end
end
class String < Attribute; end
diff --git a/test/test_attributes.rb b/test/test_attributes.rb
index 3654e78314..010d708859 100644
--- a/test/test_attributes.rb
+++ b/test/test_attributes.rb
@@ -2,6 +2,14 @@ require 'helper'
module Arel
describe 'Attributes' do
+ it 'responds to lower' do
+ relation = Table.new(:users)
+ attribute = relation[:foo]
+ node = attribute.lower
+ assert_equal 'LOWER', node.name
+ assert_equal [attribute], node.expressions
+ end
+
describe 'for' do
it 'deals with unknown column types' do
column = Struct.new(:type).new :crazy