Class: Spree::BannerBox

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/spree/banner_box.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.categories_for_selectObject



63
64
65
# File 'app/models/spree/banner_box.rb', line 63

def self.categories_for_select
  unscoped.pluck(:category).uniq.sort
end

Instance Method Details

#duplicateObject

for adding banner_boxes which are closely related to existing ones define “duplicate_extra” for site-specific actions, eg for additional fields



32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'app/models/spree/banner_box.rb', line 32

def duplicate
  enhance_settings
  p = self.dup
  p.category = 'COPY OF ' + category
  p.created_at = p.updated_at = nil
  p.url = url
  p.attachment = attachment

  # allow site to do some customization
  p.send(:duplicate_extra, self) if p.respond_to?(:duplicate_extra)
  p.save!
  p
end

#enhance_settingsObject



55
56
57
58
59
60
61
# File 'app/models/spree/banner_box.rb', line 55

def enhance_settings
  Spree::BannerBox.attachment_definitions[:attachment][:styles] = Spree::BannerConfig[:banner_styles].symbolize_keys!
  Spree::BannerBox.attachment_definitions[:attachment][:path] = Spree::BannerConfig[:banner_path]
  Spree::BannerBox.attachment_definitions[:attachment][:url] = Spree::BannerConfig[:banner_url]
  Spree::BannerBox.attachment_definitions[:attachment][:default_url] = Spree::BannerConfig[:banner_default_url]
  Spree::BannerBox.attachment_definitions[:attachment][:default_style] = Spree::BannerConfig[:banner_default_style].to_sym
end

#find_dimensionsObject



46
47
48
49
50
51
52
53
# File 'app/models/spree/banner_box.rb', line 46

def find_dimensions
  temporary = attachment.queued_for_write[:original]
  filename = temporary.path unless temporary.nil?
  filename = attachment.path if filename.blank?
  geometry = Paperclip::Geometry.from_file(filename)
  self.attachment_width  = geometry.width
  self.attachment_height = geometry.height
end