From 52e8aff146c162986566d3e03852395729d7c24d Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Wed, 30 Sep 2009 23:23:46 -0400 Subject: Move extensions directories to core_extensions --- lib/arel/algebra/core_extensions.rb | 4 ++++ lib/arel/algebra/core_extensions/class.rb | 32 ++++++++++++++++++++++++++++++ lib/arel/algebra/core_extensions/hash.rb | 11 ++++++++++ lib/arel/algebra/core_extensions/object.rb | 17 ++++++++++++++++ lib/arel/algebra/core_extensions/symbol.rb | 9 +++++++++ lib/arel/algebra/extensions.rb | 4 ---- lib/arel/algebra/extensions/class.rb | 32 ------------------------------ lib/arel/algebra/extensions/hash.rb | 11 ---------- lib/arel/algebra/extensions/object.rb | 17 ---------------- lib/arel/algebra/extensions/symbol.rb | 9 --------- 10 files changed, 73 insertions(+), 73 deletions(-) create mode 100644 lib/arel/algebra/core_extensions.rb create mode 100644 lib/arel/algebra/core_extensions/class.rb create mode 100644 lib/arel/algebra/core_extensions/hash.rb create mode 100644 lib/arel/algebra/core_extensions/object.rb create mode 100644 lib/arel/algebra/core_extensions/symbol.rb delete mode 100644 lib/arel/algebra/extensions.rb delete mode 100644 lib/arel/algebra/extensions/class.rb delete mode 100644 lib/arel/algebra/extensions/hash.rb delete mode 100644 lib/arel/algebra/extensions/object.rb delete mode 100644 lib/arel/algebra/extensions/symbol.rb (limited to 'lib/arel/algebra') diff --git a/lib/arel/algebra/core_extensions.rb b/lib/arel/algebra/core_extensions.rb new file mode 100644 index 0000000000..bce86d04ba --- /dev/null +++ b/lib/arel/algebra/core_extensions.rb @@ -0,0 +1,4 @@ +require 'arel/algebra/core_extensions/object' +require 'arel/algebra/core_extensions/class' +require 'arel/algebra/core_extensions/symbol' +require 'arel/algebra/core_extensions/hash' diff --git a/lib/arel/algebra/core_extensions/class.rb b/lib/arel/algebra/core_extensions/class.rb new file mode 100644 index 0000000000..d0894931da --- /dev/null +++ b/lib/arel/algebra/core_extensions/class.rb @@ -0,0 +1,32 @@ +module Arel + module ClassExtensions + def attributes(*attrs) + @attributes = attrs + attr_reader(*attrs) + end + + def deriving(*methods) + methods.each { |m| derive m } + end + + def derive(method_name) + methods = { + :initialize => " + def #{method_name}(#{@attributes.join(',')}) + #{@attributes.collect { |a| "@#{a} = #{a}" }.join("\n")} + end + ", + :== => " + def ==(other) + #{name} === other && + #{@attributes.collect { |a| "@#{a} == other.#{a}" }.join(" &&\n")} + end + " + } + class_eval methods[method_name], __FILE__, __LINE__ + end + + Class.send(:include, self) + end +end + diff --git a/lib/arel/algebra/core_extensions/hash.rb b/lib/arel/algebra/core_extensions/hash.rb new file mode 100644 index 0000000000..c64225f685 --- /dev/null +++ b/lib/arel/algebra/core_extensions/hash.rb @@ -0,0 +1,11 @@ +module Arel + module HashExtensions + def bind(relation) + inject({}) do |bound, (key, value)| + bound.merge(key.bind(relation) => value.bind(relation)) + end + end + + Hash.send(:include, self) + end +end diff --git a/lib/arel/algebra/core_extensions/object.rb b/lib/arel/algebra/core_extensions/object.rb new file mode 100644 index 0000000000..85a4d951a4 --- /dev/null +++ b/lib/arel/algebra/core_extensions/object.rb @@ -0,0 +1,17 @@ +module Arel + module ObjectExtensions + def bind(relation) + Arel::Value.new(self, relation) + end + + def find_correlate_in(relation) + bind(relation) + end + + def let + yield(self) + end + + Object.send(:include, self) + end +end diff --git a/lib/arel/algebra/core_extensions/symbol.rb b/lib/arel/algebra/core_extensions/symbol.rb new file mode 100644 index 0000000000..f575ad533a --- /dev/null +++ b/lib/arel/algebra/core_extensions/symbol.rb @@ -0,0 +1,9 @@ +module Arel + module SymbolExtensions + def to_attribute(relation) + Arel::Attribute.new(relation, self) + end + + Symbol.send(:include, self) + end +end diff --git a/lib/arel/algebra/extensions.rb b/lib/arel/algebra/extensions.rb deleted file mode 100644 index bc8edd3274..0000000000 --- a/lib/arel/algebra/extensions.rb +++ /dev/null @@ -1,4 +0,0 @@ -require 'arel/algebra/extensions/object' -require 'arel/algebra/extensions/class' -require 'arel/algebra/extensions/symbol' -require 'arel/algebra/extensions/hash' diff --git a/lib/arel/algebra/extensions/class.rb b/lib/arel/algebra/extensions/class.rb deleted file mode 100644 index d0894931da..0000000000 --- a/lib/arel/algebra/extensions/class.rb +++ /dev/null @@ -1,32 +0,0 @@ -module Arel - module ClassExtensions - def attributes(*attrs) - @attributes = attrs - attr_reader(*attrs) - end - - def deriving(*methods) - methods.each { |m| derive m } - end - - def derive(method_name) - methods = { - :initialize => " - def #{method_name}(#{@attributes.join(',')}) - #{@attributes.collect { |a| "@#{a} = #{a}" }.join("\n")} - end - ", - :== => " - def ==(other) - #{name} === other && - #{@attributes.collect { |a| "@#{a} == other.#{a}" }.join(" &&\n")} - end - " - } - class_eval methods[method_name], __FILE__, __LINE__ - end - - Class.send(:include, self) - end -end - diff --git a/lib/arel/algebra/extensions/hash.rb b/lib/arel/algebra/extensions/hash.rb deleted file mode 100644 index c64225f685..0000000000 --- a/lib/arel/algebra/extensions/hash.rb +++ /dev/null @@ -1,11 +0,0 @@ -module Arel - module HashExtensions - def bind(relation) - inject({}) do |bound, (key, value)| - bound.merge(key.bind(relation) => value.bind(relation)) - end - end - - Hash.send(:include, self) - end -end diff --git a/lib/arel/algebra/extensions/object.rb b/lib/arel/algebra/extensions/object.rb deleted file mode 100644 index 85a4d951a4..0000000000 --- a/lib/arel/algebra/extensions/object.rb +++ /dev/null @@ -1,17 +0,0 @@ -module Arel - module ObjectExtensions - def bind(relation) - Arel::Value.new(self, relation) - end - - def find_correlate_in(relation) - bind(relation) - end - - def let - yield(self) - end - - Object.send(:include, self) - end -end diff --git a/lib/arel/algebra/extensions/symbol.rb b/lib/arel/algebra/extensions/symbol.rb deleted file mode 100644 index f575ad533a..0000000000 --- a/lib/arel/algebra/extensions/symbol.rb +++ /dev/null @@ -1,9 +0,0 @@ -module Arel - module SymbolExtensions - def to_attribute(relation) - Arel::Attribute.new(relation, self) - end - - Symbol.send(:include, self) - end -end -- cgit v1.2.3