class Gamifier::DSL::Network

Attributes

api_keys[R]
sites[R]
source[R]

Public Class Methods

new(*args) click to toggle source
# File lib/gamifier/dsl/network.rb, line 13
def initialize(*args)
  @source         = ::Gamifier::Network.new(*args)
  @sites          = []
  @api_keys       = []
end

Public Instance Methods

api_key(&block) click to toggle source
# File lib/gamifier/dsl/network.rb, line 35
def api_key(&block)
  new_key = DSL::ApiKey.new
  new_key.source.engine = enterprise_engine
  @api_keys.push(new_key)

  DSL.eval_with_context(new_key, &block)
end
engine() click to toggle source
# File lib/gamifier/dsl/network.rb, line 19
def engine
  @engine ||= Gamifier::Engine.new(:key => get_key('private') || Gamifier.config[:key])
end
enterprise_engine() click to toggle source
# File lib/gamifier/dsl/network.rb, line 23
def enterprise_engine
  raise ArgumentError, "You must specify an enterprise key" unless Gamifier.config[:enterprise_key]
  @enterprise_engine ||= Gamifier::Engine.new(:key => Gamifier.config[:enterprise_key])
end
get_key(access = 'private') click to toggle source
# File lib/gamifier/dsl/network.rb, line 71
def get_key(access = 'private')
  key = self.api_keys.select {|k| k.access == access}.first
  return key.key if key
  nil
end
method_missing(*args, &block) click to toggle source
# File lib/gamifier/dsl/network.rb, line 81
def method_missing(*args, &block)
  source.send(*args, &block)
end
save!() click to toggle source
# File lib/gamifier/dsl/network.rb, line 77
def save!
  save_sites!
end
save_api_keys!() click to toggle source
# File lib/gamifier/dsl/network.rb, line 53
def save_api_keys!
  api_keys.each do |key|
    key.engine = enterprise_engine
    key.network_id = self.id
    key.save
  end
end
save_network!() click to toggle source
# File lib/gamifier/dsl/network.rb, line 43
def save_network!
  begin
    if self.save
      save_api_keys!
    end
  rescue
    Gamifier.logger.debug "Can't save #{self}"
  end
end
save_sites!() click to toggle source
# File lib/gamifier/dsl/network.rb, line 61
def save_sites!
  sites.each do |site|
    if gsite = engine.sites.find(site.url)
      site._id = gsite._id
    end
    site.engine = engine
    site.save
  end
end
site(name, &block) click to toggle source
# File lib/gamifier/dsl/network.rb, line 28
def site(name, &block)
  new_site = DSL::Site.new(:name => name)
  @sites.push(new_site)

  DSL.eval_with_context(new_site, &block)
end