Class: AssetCloud::AssetExtension

Inherits:
Object
  • Object
show all
Includes:
Callbacks, Validations
Defined in:
lib/asset_cloud/asset_extension.rb

Defined Under Namespace

Classes: AssetMismatch

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Validations

#add_error, #add_warning, #errors, included, #valid?, #validate, #warnings

Methods included from Callbacks

#callbacks_for, #execute_callbacks

Constructor Details

#initialize(asset) ⇒ AssetExtension

Returns a new instance of AssetExtension.



35
36
37
38
39
40
# File 'lib/asset_cloud/asset_extension.rb', line 35

def initialize(asset)
  unless self.class.applies_to_asset?(asset)
    raise AssetMismatch, "Instances of #{self.class.name} cannot be applied to asset #{asset.key.inspect}"
  end
  @asset = asset
end

Instance Attribute Details

#assetObject (readonly)

Returns the value of attribute asset.



13
14
15
# File 'lib/asset_cloud/asset_extension.rb', line 13

def asset
  @asset
end

Class Method Details

.applies_to(*args) ⇒ Object



18
19
20
21
22
23
24
25
# File 'lib/asset_cloud/asset_extension.rb', line 18

def self.applies_to(*args)
  extnames = args.map do |arg|
    arg = arg.to_s.downcase
    arg = ".#{arg}" unless arg.starts_with?('.')
    arg
  end
  self.extnames = extnames
end

.applies_to_asset?(asset) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
30
31
32
33
# File 'lib/asset_cloud/asset_extension.rb', line 27

def self.applies_to_asset?(asset)
  extnames = self.extnames || []
  extnames.each do |extname|
    return true if asset.key.downcase.ends_with?(extname)
  end
  false
end

Instance Method Details

#deleteObject



6
# File 'lib/asset_cloud/asset_extension.rb', line 6

def delete; true; end

#storeObject



5
# File 'lib/asset_cloud/asset_extension.rb', line 5

def store; true; end