Skip to content
This repository has been archived by the owner on Jun 30, 2022. It is now read-only.

Commit

Permalink
Require files where they're used.
Browse files Browse the repository at this point in the history
  • Loading branch information
jimmycuadra committed Aug 30, 2015
1 parent 7aff654 commit 45b4846
Show file tree
Hide file tree
Showing 39 changed files with 174 additions and 54 deletions.
54 changes: 7 additions & 47 deletions lib/lita.rb
Original file line number Diff line number Diff line change
@@ -1,20 +1,13 @@
require "forwardable"
require "logger"
require "rbconfig"
require "readline"
require "set"
require "shellwords"
require "thread"

require "http_router"
require "ice_nine"
require "faraday"
require "multi_json"
require "puma"
require "rack"
require "i18n"
require "redis-namespace"

require_relative "lita/common"
require_relative "lita/configuration_builder"
require_relative "lita/configuration_validator"
require_relative "lita/errors"
require_relative "lita/logger"
require_relative "lita/registry"
require_relative "lita/robot"

# The main namespace for Lita. Provides a global registry of adapters and
# handlers, as well as global configuration, logger, and Redis store.
Expand Down Expand Up @@ -87,41 +80,8 @@ def run(config_path = nil)
end
end

require_relative "lita/version"
require_relative "lita/common"
require_relative "lita/errors"
require_relative "lita/configuration_builder"
require_relative "lita/middleware_registry"
require_relative "lita/default_configuration"
require_relative "lita/configuration_validator"
require_relative "lita/util"
require_relative "lita/logger"
require_relative "lita/callback"
require_relative "lita/configurable"
require_relative "lita/namespace"
require_relative "lita/template"
require_relative "lita/template_resolver"
require_relative "lita/handler/common"
require_relative "lita/handler/chat_router"
require_relative "lita/handler/http_router"
require_relative "lita/handler/event_router"
require_relative "lita/handler"
require_relative "lita/user"
require_relative "lita/room"
require_relative "lita/source"
require_relative "lita/authorization"
require_relative "lita/message"
require_relative "lita/response"
require_relative "lita/http_callback"
require_relative "lita/http_route"
require_relative "lita/rack_app"
require_relative "lita/timer"
require_relative "lita/robot"
require_relative "lita/adapter"
require_relative "lita/adapters/shell"
require_relative "lita/adapters/test"
require_relative "lita/plugin_builder"
require_relative "lita/route_validator"
require_relative "lita/handlers/authorization"
require_relative "lita/handlers/help"
require_relative "lita/handlers/info"
Expand Down
5 changes: 5 additions & 0 deletions lib/lita/adapter.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
require "i18n"

require_relative "configurable"
require_relative "namespace"

module Lita
# Adapters are the glue between Lita's API and a chat service.
class Adapter
Expand Down
9 changes: 9 additions & 0 deletions lib/lita/adapters/shell.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
require "rbconfig"

require "readline"

require_relative "../adapter"
require_relative "../message"
require_relative "../source"
require_relative "../user"

module Lita
# A namespace to hold all subclasses of {Adapter}.
module Adapters
Expand Down
2 changes: 2 additions & 0 deletions lib/lita/adapters/test.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
require_relative "../adapter"

module Lita
# A namespace to hold all subclasses of {Adapter}.
module Adapters
Expand Down
4 changes: 4 additions & 0 deletions lib/lita/authorization.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
require "redis-namespace"

require_relative "user"

module Lita
# Methods for querying and manipulating authorization groups.
class Authorization
Expand Down
2 changes: 2 additions & 0 deletions lib/lita/cli.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
require "bundler"
require "i18n"
require "thor"

require_relative "common"
Expand Down
2 changes: 2 additions & 0 deletions lib/lita/configurable.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
require_relative "configuration_builder"

module Lita
# Mixin to add the ability for a plugin to define configuration.
# @since 4.0.0
Expand Down
5 changes: 5 additions & 0 deletions lib/lita/configuration_builder.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
require "ice_nine"
require "i18n"

require_relative "errors"

module Lita
# An object that stores user settings to control Lita's behavior.
# @since 4.0.0
Expand Down
3 changes: 3 additions & 0 deletions lib/lita/default_configuration.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
require_relative "configuration_builder"
require_relative "middleware_registry"

module Lita
# Builds the configuration object that is stored in each {Lita::Registry}.
# @since 4.0.0
Expand Down
4 changes: 4 additions & 0 deletions lib/lita/handler.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
require_relative "handler/chat_router"
require_relative "handler/http_router"
require_relative "handler/event_router"

module Lita
# Base class for objects that add new behavior to Lita. {Handler} is simply a class with all
# types of routers mixed in.
Expand Down
7 changes: 7 additions & 0 deletions lib/lita/handler/chat_router.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
require "i18n"

require_relative "../callback"
require_relative "../response"
require_relative "../route_validator"
require_relative "common"

module Lita
class Handler
# A handler mixin that provides the methods necessary for responding to chat messages.
Expand Down
13 changes: 13 additions & 0 deletions lib/lita/handler/common.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
require "faraday"
require "i18n"
require "redis-namespace"

require_relative "../configurable"
require_relative "../configuration_builder"
require_relative "../errors"
require_relative "../namespace"
require_relative "../template"
require_relative "../template_resolver"
require_relative "../timer"
require_relative "../version"

module Lita
class Handler
# Methods included in any class that includes at least one type of router.
Expand Down
3 changes: 3 additions & 0 deletions lib/lita/handler/event_router.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
require_relative "../callback"
require_relative "common"

module Lita
class Handler
# A handler mixin that provides the methods necessary for handling events.
Expand Down
3 changes: 3 additions & 0 deletions lib/lita/handler/http_router.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
require_relative "../http_route"
require_relative "common"

module Lita
class Handler
# A handler mixin that provides the methods necessary for handling incoming HTTP requests.
Expand Down
7 changes: 6 additions & 1 deletion lib/lita/handlers/authorization.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
require_relative "../handler/chat_router"
require_relative "../user"

module Lita
# A namespace to hold all subclasses of {Handler}.
module Handlers
# Provides a chat interface for administering authorization groups.
class Authorization < Handler
class Authorization
extend Handler::ChatRouter

route(
/^auth\s+add/,
:add,
Expand Down
6 changes: 5 additions & 1 deletion lib/lita/handlers/help.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
require_relative "../handler/chat_router"

module Lita
# A namespace to hold all subclasses of {Handler}.
module Handlers
# Provides online help about Lita commands for users.
class Help < Handler
class Help
extend Handler::ChatRouter

route(/^help\s*(.+)?/, :help, command: true, help: {
"help" => t("help.help_value"),
t("help.help_command_key") => t("help.help_command_value")
Expand Down
11 changes: 10 additions & 1 deletion lib/lita/handlers/info.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
require "multi_json"

require_relative "../handler/chat_router"
require_relative "../handler/http_router"
require_relative "../version"

module Lita
# A namespace to hold all subclasses of {Handler}.
module Handlers
# Provides information about the currently running robot.
class Info < Handler
class Info
extend Handler::ChatRouter
extend Handler::HTTPRouter

route(/^info$/i, :chat, command: true, help: {
"info" => t("help.info_value")
})
Expand Down
6 changes: 5 additions & 1 deletion lib/lita/handlers/room.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
require_relative "../handler/chat_router"

module Lita
# A namespace to hold all subclasses of {Handler}.
module Handlers
# Allows administrators to make Lita join and part from rooms.
# @since 3.0.0
class Room < Handler
class Room
extend Handler::ChatRouter

route(/^join\s+(.+)$/i, :join, command: true, restrict_to: :admins, help: {
t("help.join_key") => t("help.join_value")
})
Expand Down
3 changes: 3 additions & 0 deletions lib/lita/handlers/users.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
require_relative "../handler/chat_router"
require_relative "../user"

module Lita
module Handlers
# Provides information on Lita users.
Expand Down
4 changes: 3 additions & 1 deletion lib/lita/http_callback.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
require "rack"

module Lita
# A wrapper around a handler's HTTP route callbacks that sets up the request and response.
# @api private
Expand All @@ -22,7 +24,7 @@ def call(env)
handler = @handler_class.new(env["lita.robot"])

@callback.call(handler, request, response)
rescue Exception => e
rescue => e
env["lita.robot"].config.robot.error_handler.call(e)
raise
end
Expand Down
5 changes: 5 additions & 0 deletions lib/lita/http_route.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
require "http_router"

require_relative "callback"
require_relative "http_callback"

module Lita
# Handlers use this class to define HTTP routes for the built-in web
# server.
Expand Down
2 changes: 2 additions & 0 deletions lib/lita/logger.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
require "logger"

module Lita
# Creates a Logger with the proper configuration.
module Logger
Expand Down
2 changes: 2 additions & 0 deletions lib/lita/message.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
require "forwardable"

module Lita
# Represents an incoming chat message.
class Message
Expand Down
2 changes: 2 additions & 0 deletions lib/lita/middleware_registry.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
require "forwardable"

module Lita
# Stores Rack middleware for later use in a +Rack::Builder+.
# @since 4.0.2
Expand Down
4 changes: 4 additions & 0 deletions lib/lita/namespace.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
require "i18n"

require_relative "util"

module Lita
# A mixin for setting and getting a plugin's namespace.
# @since 4.0.0
Expand Down
3 changes: 3 additions & 0 deletions lib/lita/plugin_builder.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
require_relative "adapter"
require_relative "handler"

module Lita
# Constructs a Lita plugin from a block.
# @since 4.0.0
Expand Down
3 changes: 3 additions & 0 deletions lib/lita/rack_app.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
require "http_router"
require "rack"

module Lita
# A +Rack+ application to serve HTTP routes registered by handlers.
class RackApp
Expand Down
6 changes: 6 additions & 0 deletions lib/lita/registry.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
require "i18n"
require "set"

require_relative "default_configuration"
require_relative "plugin_builder"

module Lita
# An object to hold various types of data including configuration and plugins.
# @since 4.0.0
Expand Down
2 changes: 2 additions & 0 deletions lib/lita/response.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
require "forwardable"

module Lita
# A wrapper object that provides the primary interface for handlers to
# respond to incoming chat messages.
Expand Down
9 changes: 9 additions & 0 deletions lib/lita/robot.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
require "forwardable"
require "i18n"

require "puma"

require_relative "authorization"
require_relative "rack_app"
require_relative "room"

module Lita
# The main object representing a running instance of Lita. Provides a high
# level API for the underlying adapter. Dispatches incoming messages to
Expand Down
4 changes: 4 additions & 0 deletions lib/lita/room.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
require "redis-namespace"

require_relative "util"

module Lita
# A room in the chat service. Persisted in Redis.
# @since 4.4.0
Expand Down
11 changes: 11 additions & 0 deletions lib/lita/rspec/handler.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
require "set"

require "i18n"
require "faraday"

require_relative "../adapters/test"
require_relative "../message"
require_relative "../rspec"
require_relative "../robot"
require_relative "../source"
require_relative "../user"
require_relative "matchers/chat_route_matcher"
require_relative "matchers/http_route_matcher"
require_relative "matchers/event_route_matcher"
Expand Down
3 changes: 3 additions & 0 deletions lib/lita/rspec/matchers/chat_route_matcher.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
require_relative "../../message"
require_relative "../../route_validator"

module Lita
module RSpec
module Matchers
Expand Down
2 changes: 2 additions & 0 deletions lib/lita/rspec/matchers/http_route_matcher.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
require "rack"

module Lita
module RSpec
# A namespace to hold all of Lita's RSpec matchers.
Expand Down
4 changes: 4 additions & 0 deletions lib/lita/source.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
require "i18n"

require_relative "room"

module Lita
# A wrapper object representing the source of an incoming message (either the
# user who sent it, the room they sent it from, or both). If a room is set,
Expand Down
3 changes: 3 additions & 0 deletions lib/lita/template.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
require "erb"
require "set"

module Lita
# A simple wrapper around ERB to render text from files or strings.
# @since 4.2.0
Expand Down

0 comments on commit 45b4846

Please sign in to comment.