class TemplatePicker attr_accessor :post TEMPLATES = %w{ status_with_photo_backdrop note photo_backdrop status } def initialize(post) self.post = post end def template_name TEMPLATES.each do |template| return TemplatePicker.jsonify_name(template) if self.send("#{template}?".to_sym) end 'status' #default end def status_with_photo_backdrop? status? && photo_backdrop? end def note? self.status? && post.text(:plain_text => true).length > 200 end def photo_backdrop? false # No backdrop, ever. end def status? post.text? end def self.jsonified_templates TEMPLATES.map{|x| jsonify_name(x)} end def self.jsonify_name(name) name.gsub('_', '-') end end