lib/express_templates/components/base.rb in express_templates-0.11.0 vs lib/express_templates/components/base.rb in express_templates-0.11.1
- old
+ new
@@ -13,16 +13,19 @@
class Base < Arbre::Component
class_attribute :before_build_hooks
self.before_build_hooks = []
+ class_attribute :builder_method_name
+
def self.builder_method_and_class(method_name, klass)
Arbre::Element::BuilderMethods.class_eval <<-EOF, __FILE__, __LINE__
def #{method_name}(*args, &block)
insert_tag ::#{klass.name}, *args, &block
end
EOF
+ self.builder_method_name = method_name
# puts "added #{method_name} -> #{klass.name}"
end
def initialize(*)
super
@@ -71,18 +74,14 @@
def resource
helpers.resource
end
def self.inherited(subclass)
- builder_method_and_class subclass.builder_method_name, subclass
+ subclass.builder_method_and_class subclass.to_s.demodulize.underscore, subclass
end
- def self.builder_method_name
- to_s.demodulize.underscore
- end
-
- def builder_method_name
- self.class.builder_method_name
+ def self.builder_method(name)
+ builder_method_and_class name, self
end
def self.descendants
ObjectSpace.each_object(Class).select { |klass| klass < self }
end