Sha256: d5ec8697c5271996404ec008cfb973d4ba2ab96e1a04c2fe3f6d0eb769078691

Contents?: true

Size: 1.46 KB

Versions: 3

Compression:

Stored size: 1.46 KB

Contents

# encoding: utf-8
require 'business_catalyst/csv/transformers/invalid_input_error'
require 'business_catalyst/csv/transformers/transformer'
require 'business_catalyst/csv/transformers/catalog_transformer'
require 'business_catalyst/csv/transformers/currency_transformer'
require 'business_catalyst/csv/transformers/product_attributes_transformer'
require 'business_catalyst/csv/transformers/product_code_transformer'
require 'business_catalyst/csv/transformers/seo_friendly_url_transformer'
require 'business_catalyst/csv/transformers/uri_array_transformer'
require 'business_catalyst/csv/transformers/uri_transformer'

module BusinessCatalyst
  module CSV

    # Just calls to_s on input
    class GenericTransformer < Transformer
      def transform
        input.to_s if input
      end
    end


    class ArrayTransformer < Transformer
      def transform
        if input
          Array(input).map {|s| s.to_s.gsub(";", " ") }.join(";")
        end
      end
    end


    class BooleanTransformer < Transformer
      def transform
        input ? "Y" : "N"
      end
    end

    class TemplateIDTransformer < Transformer
      def transform
        if input.kind_of?(Symbol)
          case input
          when :default
            0
          when :none
            -1
          when :parent
            -2
          else
            raise InvalidInputError, "#{input} is not a valid template ID"
          end
        else
          input
        end
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
business_catalyst-0.1.2 lib/business_catalyst/csv/transformers.rb
business_catalyst-0.1.1 lib/business_catalyst/csv/transformers.rb
business_catalyst-0.1.0 lib/business_catalyst/csv/transformers.rb