Class: Spritely::SpriteMap

Inherits:
Sass::Script::Literal
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/spritely/sprite_map.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(glob, options = {}) ⇒ SpriteMap

Returns a new instance of SpriteMap.



21
22
23
24
# File 'lib/spritely/sprite_map.rb', line 21

def initialize(glob, options = {})
  @glob = glob
  @options = Options.new(options)
end

Instance Attribute Details

#globObject (readonly)

Returns the value of attribute glob.



13
14
15
# File 'lib/spritely/sprite_map.rb', line 13

def glob
  @glob
end

#optionsObject (readonly)

Returns the value of attribute options.



13
14
15
# File 'lib/spritely/sprite_map.rb', line 13

def options
  @options
end

Class Method Details

.create(*args) ⇒ Object



15
16
17
18
19
# File 'lib/spritely/sprite_map.rb', line 15

def self.create(*args)
  new(*args).tap do |sprite_map|
    sprite_map.generate! if sprite_map.needs_generation?
  end
end

Instance Method Details

#cache_keyObject



26
27
28
# File 'lib/spritely/sprite_map.rb', line 26

def cache_key
  @cache_key ||= Cache.generate(options, collection)
end

#collectionObject



34
35
36
# File 'lib/spritely/sprite_map.rb', line 34

def collection
  @collection ||= Collection.create(files, options)
end

#filenameObject



46
47
48
# File 'lib/spritely/sprite_map.rb', line 46

def filename
  Spritely.directory.join("#{name}.png")
end

#filesObject



54
55
56
# File 'lib/spritely/sprite_map.rb', line 54

def files
  Spritely.environment.paths.flat_map { |path| Dir.glob(File.join(path, glob)) }.sort
end

#generate!Object



38
39
40
# File 'lib/spritely/sprite_map.rb', line 38

def generate!
  Generators::ChunkyPng.create!(self)
end

#inspectObject



30
31
32
# File 'lib/spritely/sprite_map.rb', line 30

def inspect
  "#<Spritely::SpriteMap name=#{name} options=#{options}>"
end

#nameObject



42
43
44
# File 'lib/spritely/sprite_map.rb', line 42

def name
  glob.split('/')[0..-2].join('-')
end

#needs_generation?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/spritely/sprite_map.rb', line 50

def needs_generation?
  !File.exist?(filename) || Cache.busted?(filename, cache_key)
end