Sha256: 1755846ffe50df6de8a75bdf78f3f357efacf475ab522d74d4cc6bd003d15433

Contents?: true

Size: 869 Bytes

Versions: 32

Compression:

Stored size: 869 Bytes

Contents

module GEPUB
  module BuilderMixin
    def method_missing(name, *args, &block)
      if Array === @last_defined_item &&
          @last_defined_item.size > 0 &&
          @last_defined_item[0].respond_to?(name.to_sym)

        if !(@last_defined_item[0].apply_one_to_multi ||
             @last_defined_item.size != 1) &&
            @last_defined_item.size != args.size
          warn "appling #{args} to #{@last_defined_item}: length differs."
        end

        @last_defined_item.each_with_index {
          |item, i|
          if item.apply_one_to_multi && args.size == 1
            item.send(name, args[0])
          elsif !args[i].nil?
            item.send(name, args[i])
          end
        }
      elsif @last_defined_item.respond_to?(name.to_sym)
        @last_defined_item.send(name, *args, &block)
      else
        super
      end
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
gepub-1.0.16 lib/gepub/builder_mixin.rb
gepub-1.0.15 lib/gepub/builder_mixin.rb
gepub-1.0.14 lib/gepub/builder_mixin.rb
gepub-1.0.13 lib/gepub/builder_mixin.rb
gepub-1.0.12 lib/gepub/builder_mixin.rb
gepub-1.0.11 lib/gepub/builder_mixin.rb
gepub-1.0.10 lib/gepub/builder_mixin.rb
gepub-1.0.9 lib/gepub/builder_mixin.rb
gepub-1.0.8 lib/gepub/builder_mixin.rb
gepub-1.0.7 lib/gepub/builder_mixin.rb
gepub-1.0.6 lib/gepub/builder_mixin.rb
gepub-1.0.5 lib/gepub/builder_mixin.rb
gepub-1.0.4 lib/gepub/builder_mixin.rb
gepub-1.0.3 lib/gepub/builder_mixin.rb
gepub-1.0.2 lib/gepub/builder_mixin.rb
gepub-1.0.1 lib/gepub/builder_mixin.rb
gepub-1.0.0 lib/gepub/builder_mixin.rb
gepub-1.0.0rc1 lib/gepub/builder_mixin.rb
gepub-1.0.0beta1 lib/gepub/builder_mixin.rb
gepub-0.7.1 lib/gepub/builder_mixin.rb