Class: Shipyard::Icons

Inherits:
Object
  • Object
show all
Includes:
ActionView::Helpers::SanitizeHelper, Singleton
Defined in:
lib/shipyard-framework/icons.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeIcons

Returns a new instance of Icons.



9
10
11
12
13
14
# File 'lib/shipyard-framework/icons.rb', line 9

def initialize
  @path = "#{::Rails.root}/app/assets/icons/"
  @public = "#{::Rails.root}/public/assets"
  @fingerprint = ::Rails.application.config.try(:icons_version)
  reload
end

Instance Attribute Details

#iconsObject (readonly)

Returns the value of attribute icons.



5
6
7
# File 'lib/shipyard-framework/icons.rb', line 5

def icons
  @icons
end

Instance Method Details

#asset_path(svg_id) ⇒ Object



35
36
37
# File 'lib/shipyard-framework/icons.rb', line 35

def asset_path(svg_id)
  "#{base_path}##{svg_id}"
end

#base_pathObject



27
28
29
30
31
32
33
# File 'lib/shipyard-framework/icons.rb', line 27

def base_path
  if @fingerprint && !::Rails.env.development?
    "/assets/icons-#{@fingerprint}.svg"
  else
    '/assets/icons.svg'
  end
end

#find_by(hash) ⇒ Object



21
22
23
24
25
# File 'lib/shipyard-framework/icons.rb', line 21

def find_by(hash)
  icon = @icons.detect { |i| i[hash.keys.first] == hash.values.first }
  raise_error(hash.values.first) unless icon
  icon
end

#reloadObject



16
17
18
19
# File 'lib/shipyard-framework/icons.rb', line 16

def reload
  @icons = load_svgs.freeze
  save_external_svg_defs
end