Sha256: 9e3ef6b9988269fa729d630cf0fafd9c9172cb12c9111e3bdc29c270dde1a1b4

Contents?: true

Size: 1.41 KB

Versions: 1

Compression:

Stored size: 1.41 KB

Contents

module MageHand
  class Campaign < Base
    ROLES = {'game_master' => 'Game Master', 'player' => 'Player'}
    
    # public mini-object methods
    attr_simple :name, :campaign_url, :role, :visibility
    
    attr_simple :slug
    attr_instance :game_master, :class_name => 'OPUser'
    inflate_if_nil :game_master, :slug
    
    # Private/Friends
    attr_simple :banner_image_url, :play_status, :looking_for_players, :created_at, :updated_at
    inflate_if_nil :banner_image_url, :play_status, :looking_for_players, :created_at, :updated_at
    
    # Player/GM Only
    attr_simple :lat, :lng
    inflate_if_nil :lat, :lng
    
    attr_array :players, :class_name => 'OPUser'
    inflate_if_nil :players

    def self.find_by_slug(slug)
      hash = JSON.parse(client.access_token.get("/v1/campaigns/#{slug}.json?use_slug=true").body)
      Campaign.new(hash)
    end

    def self.find(id)
      hash = JSON.parse(client.access_token.get("/v1/campaigns/#{id}.json").body)
      Campaign.new(hash)
    end
    
    def looking_for_players?
      looking_for_players
    end
    
    def role_as_title_string
      ROLES[self.role]
    end
    
    def wiki_pages
      @wiki_pages ||= MageHand::WikiPage.load_wiki_pages(self)
    end
    
     def posts
       @adventure_logs ||= wiki_pages.select{|page| page.is_post?}
     end
     
     protected

     def individual_url
       "/v1/campaigns/#{self.id}.json"
     end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mage-hand-0.4.10 lib/ob_port/campaign.rb