Sha256: 642cda696b40b1ae11f25c88e751b5cc013b7aae2b54dc087068ff2d8acbd7b0

Contents?: true

Size: 886 Bytes

Versions: 5

Compression:

Stored size: 886 Bytes

Contents

module Para
  module Exporter
    class Base
      attr_reader :resources
      class_attribute :model_name

      def initialize(resources)
        @resources = resources
      end

      def model
        @model ||= if (model_name = self.class.model_name)
          model_name.constantize
        else
          raise 'You must define model to export in your exporter as following: `exports \'YourModelName\'`'
        end
      end

      def self.exports model_name
        self.model_name = model_name
      end

      def disposition
        'inline'
      end

      def extension
        raise '#extension must be defined to create the export file name'
      end

      def file_name
        @file_name ||= [name, extension].join('.')
      end

      def self.register_base_exporter(type, exporter)
        Exporter.base_exporters[type] = exporter
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
para-0.6.2 lib/para/exporter/base.rb
para-0.5.4 lib/para/exporter/base.rb
para-0.5.3 lib/para/exporter/base.rb
para-0.5.1 lib/para/exporter/base.rb
para-0.5.0 lib/para/exporter/base.rb