Class: Wikidotrb::Module::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/wikidotrb/module/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(username: nil, password: nil, amc_config: nil, logging_level: "WARN") ⇒ Client

Core client



101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/wikidotrb/module/client.rb', line 101

def initialize(username: nil, password: nil, amc_config: nil, logging_level: "WARN")
  # First determine the logging level
  Wikidotrb::Common::Logger.level = logging_level

  # Initialize AMCClient
  @amc_client = Wikidotrb::Connector::AjaxModuleConnectorClient.new(site_name: "www", config: amc_config)

  # Initialize session-related variables
  @is_logged_in = false
  @username = nil

  # Login if username and password are specified
  if username && password
    Wikidotrb::Module::HTTPAuthentication.(self, username, password)
    @is_logged_in = true
    @username = username
  end

  # Define methods
  @user = ClientUserMethods.new(self)
  @private_message = ClientPrivateMessageMethods.new(self)
  @site = ClientSiteMethods.new(self)
end

Instance Attribute Details

#amc_client

Returns the value of attribute amc_client.



97
98
99
# File 'lib/wikidotrb/module/client.rb', line 97

def amc_client
  @amc_client
end

#is_logged_in

Returns the value of attribute is_logged_in.



97
98
99
# File 'lib/wikidotrb/module/client.rb', line 97

def is_logged_in
  @is_logged_in
end

#private_message (readonly)

Returns the value of attribute private_message.



98
99
100
# File 'lib/wikidotrb/module/client.rb', line 98

def private_message
  @private_message
end

#site (readonly)

Returns the value of attribute site.



98
99
100
# File 'lib/wikidotrb/module/client.rb', line 98

def site
  @site
end

#user (readonly)

Returns the value of attribute user.



98
99
100
# File 'lib/wikidotrb/module/client.rb', line 98

def user
  @user
end

#username

Returns the value of attribute username.



97
98
99
# File 'lib/wikidotrb/module/client.rb', line 97

def username
  @username
end

Instance Method Details

#finalize

Destructor



126
127
128
129
130
131
132
# File 'lib/wikidotrb/module/client.rb', line 126

def finalize
  return unless @is_logged_in

  Wikidotrb::Module::HTTPAuthentication.logout(self)
  @is_logged_in = false
  @username = nil
end

#login_check

Login check



139
140
141
142
143
# File 'lib/wikidotrb/module/client.rb', line 139

def 
  raise Wikidotrb::Common::Exceptions::LoginRequiredException, "Login is required to execute this function" unless @is_logged_in

  nil
end

#to_s



134
135
136
# File 'lib/wikidotrb/module/client.rb', line 134

def to_s
  "Client(username=#{@username}, is_logged_in=#{@is_logged_in})"
end