lib/wrap_it/base.rb in wrap_it-0.1.4 vs lib/wrap_it/base.rb in wrap_it-0.1.5

- old
+ new

@@ -36,19 +36,24 @@ attr_reader :options def initialize(template, *args, &block) @template, @arguments, @block = template, args, block self.options = @arguments.extract_options! + + @helper_name = @options.delete(:helper_name) + @helper_name.is_a?(String) && @helper_name = @helper_name.to_sym + @arguments.extend ArgumentsArray add_default_classes + run_callbacks :initialize do @tag = @options.delete(:tag) || self.class.get_derived(:@default_tag) || 'div' - @helper_name = @options.delete(:helper_name) - @helper_name.is_a?(String) && @helper_name = @helper_name.to_sym + @tag = @tag.to_s end - @argument = nil + + @arguments = nil end def omit_content? self.class.get_derived(:@omit_content) end @@ -122,22 +127,26 @@ wrapper_class = args.first.is_a?(Class) ? args.shift : Base @wrapper = wrapper_class.new(@template, *args, &block) end end + def unwrap + @wrapper = nil + end + protected # # @dsl # Defines default tag name for element. This tag can be changed soon. # @param name [<Symbol, String>] Tag name. Converted to `String`. # # @return [void] - def self.default_tag(name) + def self.default_tag(name, override = true) name.is_a?(String) || name.is_a?(Symbol) || fail(ArgumentError, 'Tag name should be a String or Symbol') - @default_tag = name.to_s + override ? @default_tag = name.to_s : @default_tag ||= name.to_s end def self.omit_content @omit_content = true end @@ -164,10 +173,12 @@ end end def do_render # cleanup options from empty values - @options.select! { |k, v| !v.nil? && !v.empty? } + @options.select! do |k, v| + !v.nil? && (!v.respond_to?(:empty?) || !v.empty?) + end run_callbacks :render do @content = content_tag(tag, @content, options) end end