class Motion::Launchpad::Schedule

Attributes

preferences_key[RW]

Public Class Methods

new(options={}, &block) click to toggle source
# File lib/motion/launchpad/schedule.rb, line 6
def initialize(options={}, &block)
  self.preferences_key = options.fetch(:preferences_key, :launch_count)
  @events = []

  handle_launch
end

Public Instance Methods

configure() { |self| ... } click to toggle source
# File lib/motion/launchpad/schedule.rb, line 13
def configure
  yield(self) if block_given?
end
events() click to toggle source
# File lib/motion/launchpad/schedule.rb, line 25
def events
  @events.select { |e| e.applicable?(launch_count) }
end
on(count, &block) click to toggle source
# File lib/motion/launchpad/schedule.rb, line 17
def on(count, &block)
  @events << Event.new(count, block)
end
run!() click to toggle source
# File lib/motion/launchpad/schedule.rb, line 21
def run!
  events.each { |e| e.call }
end

Private Instance Methods

handle_launch() click to toggle source
# File lib/motion/launchpad/schedule.rb, line 35
def handle_launch
  if NSUserDefaults.standardUserDefaults[preferences_key].nil?
    NSUserDefaults.standardUserDefaults[preferences_key] = 1
  else
    NSUserDefaults.standardUserDefaults[preferences_key] = NSUserDefaults.standardUserDefaults[preferences_key] + 1
  end
end
launch_count() click to toggle source
# File lib/motion/launchpad/schedule.rb, line 31
def launch_count
  NSUserDefaults.standardUserDefaults[preferences_key]
end