lib/abstract_mapper/rule.rb in abstract_mapper-0.0.1 vs lib/abstract_mapper/rule.rb in abstract_mapper-0.0.2
- old
+ new
@@ -8,10 +8,16 @@
#
# @api private
#
class Rule
+ # @private
+ def self.composer
+ :identity
+ end
+ private_class_method :composer
+
# The transformation function that applies the rule to the array of nodes
#
# @return [Transproc::Function]
#
def self.transproc
@@ -33,11 +39,26 @@
#
# @return [AbstractMapper::Rule]
# @private
def initialize(*nodes)
- @nodes = nodes.freeze
- freeze
+ @nodes = nodes
+ IceNine.deep_freeze(self)
+ end
+
+ # Checks if optimization is needed for the node(s)
+ #
+ # @return [Boolean]
+ #
+ def optimize?
+ end
+
+ # Returns the optimized node(s)
+ #
+ # @return [Object]
+ #
+ def optimize
+ nodes
end
# Returns the result of the rule applied to the initialized [#nodes]
#
# @return [Array<AbstractMapper::Node>]