Sha256: 3ca5644d85469a12ed9439f666635190a6fa476d7cd8134bddb27318f688a77b

Contents?: true

Size: 775 Bytes

Versions: 148

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

148 entries across 148 versions & 1 rubygems

Version Path
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
avo-3.17.2 lib/avo/loaders/fields_loader.rb
avo-3.17.1.tw4 lib/avo/loaders/fields_loader.rb
avo-3.17.1 lib/avo/loaders/fields_loader.rb
avo-3.17.0 lib/avo/loaders/fields_loader.rb
avo-3.16.6 lib/avo/loaders/fields_loader.rb
avo-3.16.5 lib/avo/loaders/fields_loader.rb
avo-3.16.4 lib/avo/loaders/fields_loader.rb
avo-3.16.3 lib/avo/loaders/fields_loader.rb
avo-3.16.2 lib/avo/loaders/fields_loader.rb
avo-3.16.1 lib/avo/loaders/fields_loader.rb
avo-3.16.0 lib/avo/loaders/fields_loader.rb