Module: ActsAsAssets::ClassMethods

Defined in:
lib/acts_as_assets/base.rb

Instance Method Summary collapse

Instance Method Details

#_base_model_nameObject



57
58
59
# File 'lib/acts_as_assets/base.rb', line 57

def _base_model_name
  self.to_s.split('::').first.underscore.singularize
end

#acts_as_assets(*args) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/acts_as_assets/base.rb', line 17

def acts_as_assets *args
  cattr_accessor :foreign_key_name
  cattr_accessor :base_model_name
  cattr_accessor :base_model

  include InstanceMethods

  options = args.extract_options!

  paperclip_config = {
      :url => options.include?(:styles) ? url_with_styles : url_without_styles,
      :path => options.include?(:styles) ? path_with_styles : path_without_styles
  }
  self.base_model_name = self.to_s.split('::').first.underscore.singularize
  self.base_model = self.base_model_name.camelize.constantize
  self.foreign_key_name = (options[:foreign_key] || "#{self.base_model_name}_id").to_sym

  belongs_to base_model_sym, :foreign_key => self.foreign_key_name
  has_attached_file :asset, paperclip_config.merge(options)

  before_create :increment_counter

end

#base_model_symObject



61
62
63
# File 'lib/acts_as_assets/base.rb', line 61

def base_model_sym
  _base_model_name.to_sym
end

#path_with_stylesObject



49
50
51
# File 'lib/acts_as_assets/base.rb', line 49

def path_with_styles
  ":acts_as_assets_file_path/:style/:acts_as_assets_file_name.:extension"
end

#path_without_stylesObject



53
54
55
# File 'lib/acts_as_assets/base.rb', line 53

def path_without_styles
  ":acts_as_assets_file_path/:acts_as_assets_file_name.:extension"
end

#url_with_stylesObject



41
42
43
# File 'lib/acts_as_assets/base.rb', line 41

def url_with_styles
  "/#{_base_model_name.pluralize}/:acts_as_assets_root_id/assets/get/:acts_as_assets_asset_id/:style/:acts_as_assets_file_name.:extension"
end

#url_without_stylesObject



45
46
47
# File 'lib/acts_as_assets/base.rb', line 45

def url_without_styles
  "/#{_base_model_name.pluralize}/:acts_as_assets_root_id/assets/get/:acts_as_assets_asset_id/:acts_as_assets_file_name.:extension"
end