60 lines
1.2 KiB
Ruby
60 lines
1.2 KiB
Ruby
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 |