engine/lib/locomotive/import/base.rb

60 lines
1.2 KiB
Ruby
Raw Normal View History

module Locomotive
module Import
class Base
include Logger
attr_reader :context, :options
def initialize(context, options)
@context = context
@options = options
self.log "*** starting to process ***"
end
def self.process(context, options)
self.new(context, options).process
end
def process
raise 'this method has to be overidden'
end
def log(message)
super(message, self.class.name.demodulize.underscore)
end
protected
def site
@context[:site]
end
def database
@context[:database]
end
def theme_path
@context[:theme_path]
end
def open_sample_asset(url)
File.open(File.join(self.theme_path, 'public', url))
end
def replace_images!(template)
return if template.blank?
template.gsub!(/\/samples\/(.*\.[a-zA-Z0-9]{3})/) do |match|
name = File.basename($1)
if asset = site.assets.where(:source_filename => name).first
asset.source.url
else
match
end
end
end
end
end
end