class Motion::FontIcon

Constants

DEFAULT_ICON_SIZE

Public Class Methods

config() click to toggle source
# File lib/project/motion-font-icon.rb, line 14
def config
  @config ||= FontIconConfig.new
end
configure() { |config| ... } click to toggle source
# File lib/project/motion-font-icon.rb, line 10
def configure
  yield config if block_given?
end

Public Instance Methods

font_size=(size) click to toggle source
# File lib/project/motion-font-icon.rb, line 35
def font_size=(size)
  @font_size = size

  reset_font
end
icon=(icon) click to toggle source
# File lib/project/motion-font-icon.rb, line 31
def icon=(icon)
  self.text = config.icon_mapper ? config.icon_mapper.call(icon) : icon
end
initWithFrame(frame) click to toggle source
Calls superclass method
# File lib/project/motion-font-icon.rb, line 19
def initWithFrame(frame)
  super.tap do |label|
    label.textAlignment = NSTextAlignmentCenter
  end
end
layoutSubviews() click to toggle source
# File lib/project/motion-font-icon.rb, line 25
def layoutSubviews
  raise ArgumentError, '`font` must be set via FontIcon.configure or FontIcon#configure' if config.font.nil?

  self.font = UIFont.fontWithName(config.font, size: DEFAULT_ICON_SIZE)
end

Private Instance Methods

config() click to toggle source
# File lib/project/motion-font-icon.rb, line 47
def config
  @config ||= self.class.config
end
configure() { |config| ... } click to toggle source
# File lib/project/motion-font-icon.rb, line 43
def configure
  yield config if block_given?
end
reset_font() click to toggle source
# File lib/project/motion-font-icon.rb, line 51
def reset_font
  self.font = UIFont.fontWithName('dscovr', size: font_size || DEFAULT_ICON_SIZE)
end