class Travis::Client::Namespace

Attributes

session[RW]

Public Class Methods

new(session = nil) click to toggle source
# File lib/travis/client/namespace.rb, line 52
def initialize(session = nil)
  session  = Travis::Client.new(session || {}) unless session.is_a? Session
  @session = session

  Entity.subclasses.each do |subclass|
    name = subclass.name[/[^:]+$/]
    const_set(name, Curry.new(self, subclass))
  end
end

Public Instance Methods

included(klass) click to toggle source
# File lib/travis/client/namespace.rb, line 62
def included(klass)
  fix_names(klass)
  delegate_session(klass)
end

Private Instance Methods

delegate_session(klass) click to toggle source
# File lib/travis/client/namespace.rb, line 76
def delegate_session(klass)
  return if klass == Object or klass == Kernel
  klass.extend(Methods)
  namespace = self
  klass.define_singleton_method(:session)  { namespace.session }
  klass.define_singleton_method(:session=) { |value| namespace.session = value }
end
fix_names(klass) click to toggle source
# File lib/travis/client/namespace.rb, line 69
def fix_names(klass)
  constants.each do |name|
    const = klass.const_get(name)
    klass.const_set(name, const) if const == const_get(name)
  end
end