class Keynote::Theme
Attributes
id[R]
name[R]
Public Class Methods
all()
click to toggle source
# File lib/keynote/theme.rb, line 18 def self.all self.find_with_conditions end
default()
click to toggle source
# File lib/keynote/theme.rb, line 14 def self.default self.all.first end
find_by(args)
click to toggle source
# File lib/keynote/theme.rb, line 22 def self.find_by(args) raise ArgumentError.new('nil argument is given') unless args if args.is_a?(Hash) && args.has_key?(:name) conditions = ".whose({ name: '#{args[:name]}' })" else raise ArgumentError.new('Unsupported argument is given') end find_with_conditions(conditions) end
new(id: nil, name: nil)
click to toggle source
# File lib/keynote/theme.rb, line 9 def initialize(id: nil, name: nil) @id = id @name = name end
Private Class Methods
find_with_conditions(conditions = '')
click to toggle source
# File lib/keynote/theme.rb, line 36 def self.find_with_conditions(conditions = '') results = eval_script <<-APPLE.unindent var themes = Application("Keynote").themes#{conditions}; var results = []; for(var i = 0, len = themes.length; i < len; i++) { var theme = themes[i]; results.push({ id: theme.id(), name: theme.name() }); } JSON.stringify(results); APPLE return [] unless results results.map do |result| self.new(id: result["id"], name: result["name"]) end end