Sha256: 3ca5644d85469a12ed9439f666635190a6fa476d7cd8134bddb27318f688a77b

Contents?: true

Size: 775 Bytes

Versions: 159

Compression:

Stored size: 775 Bytes

Contents

module Avo
  module Loaders
    class FieldsLoader < Loader
      def add_field(field)
        @bag.push field
      end

      def method_missing(method, *args, &block)
        matched_field = Avo.field_manager.find do |field|
          field[:name].to_s == method.to_s
        end

        if matched_field.present? && matched_field[:class].present?
          klass = matched_field[:class]

          field = if block.present?
            klass.new(args[0], **args[1] || {}, &block)
          else
            klass.new(args[0], **args[1] || {})
          end

          add_field field
        end
      end

      def respond_to_missing?(method)
        Avo.field_manager.find do |field|
          field[:name].to_s == method.to_s
        end
      end
    end
  end
end

Version data entries

159 entries across 159 versions & 1 rubygems

Version Path
avo-3.18.1.tw4 lib/avo/loaders/fields_loader.rb
avo-3.18.1 lib/avo/loaders/fields_loader.rb
avo-3.18.0.tw4 lib/avo/loaders/fields_loader.rb
avo-3.18.0 lib/avo/loaders/fields_loader.rb
avo-3.17.9.beta2 lib/avo/loaders/fields_loader.rb
avo-3.17.9.beta1 lib/avo/loaders/fields_loader.rb
avo-3.17.9.tw4 lib/avo/loaders/fields_loader.rb
avo-3.17.9 lib/avo/loaders/fields_loader.rb
avo-3.17.8.tw4 lib/avo/loaders/fields_loader.rb
avo-3.17.8 lib/avo/loaders/fields_loader.rb
avo-3.17.7 lib/avo/loaders/fields_loader.rb
avo-3.17.6.tw4 lib/avo/loaders/fields_loader.rb
avo-3.17.6 lib/avo/loaders/fields_loader.rb
avo-3.17.5 lib/avo/loaders/fields_loader.rb
avo-3.17.4 lib/avo/loaders/fields_loader.rb
avo-3.17.3 lib/avo/loaders/fields_loader.rb
avo-3.17.5.tw4 lib/avo/loaders/fields_loader.rb
avo-3.17.4.tw4 lib/avo/loaders/fields_loader.rb
avo-3.17.3.tw4 lib/avo/loaders/fields_loader.rb
avo-3.17.2.tw4 lib/avo/loaders/fields_loader.rb