Class: Parade::Server

Inherits:
Sinatra::Application
  • Object
show all
Defined in:
lib/parade/server.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app = nil) ⇒ Server

Returns a new instance of Server.



71
72
73
74
# File 'lib/parade/server.rb', line 71

def initialize(app=nil)
  super(app)
  require_ruby_files
end

Class Method Details

.plugin_commandsObject



67
68
69
# File 'lib/parade/server.rb', line 67

def self.plugin_commands
  @plugin_commands ||= []
end

.plugin_javascript_filesObject

Returns the javascript files that have been registered by plugins.

Returns:

  • the javascript files that have been registered by plugins



51
52
53
# File 'lib/parade/server.rb', line 51

def self.plugin_javascript_files
  @javscript_files ||= []
end

.plugin_stylesheet_filesObject



59
60
61
# File 'lib/parade/server.rb', line 59

def self.plugin_stylesheet_files
  @css_files ||= []
end

.public_pathObject



17
18
19
# File 'lib/parade/server.rb', line 17

def self.public_path
  File.dirname(__FILE__) + '/../public'
end

.register(server_module) ⇒ Object

Includes the specified module into the server to grant the server additional functionality.



37
38
39
# File 'lib/parade/server.rb', line 37

def self.register(server_module)
  include server_module
end

.register_command(input, description) ⇒ Object



63
64
65
# File 'lib/parade/server.rb', line 63

def self.register_command(input,description)
  plugin_commands.push OpenStruct.new(:input => input,:description => description)
end

.register_javascript(js_file) ⇒ Object

Register a javascript file that will be loaded after the code javscript



44
45
46
# File 'lib/parade/server.rb', line 44

def self.register_javascript(js_file)
  plugin_javascript_files.push js_file
end

.register_stylesheet(css_file) ⇒ Object



55
56
57
# File 'lib/parade/server.rb', line 55

def self.register_stylesheet(css_file)
  plugin_stylesheet_files.push css_file
end

.views_pathObject



13
14
15
# File 'lib/parade/server.rb', line 13

def self.views_path
  File.dirname(__FILE__) + '/../views'
end

Instance Method Details

#load_presentationObject



84
85
86
87
88
89
90
# File 'lib/parade/server.rb', line 84

def load_presentation
  root_node = Parsers::PresentationDirectoryParser.parse settings.presentation_directory,
    :root_path => settings.presentation_directory, :parade_file => presentation_files

  root_node.add_post_renderer Renderers::UpdateImagePaths.new :root_path => settings.presentation_directory
  root_node
end

#presentation_filesObject



80
81
82
# File 'lib/parade/server.rb', line 80

def presentation_files
  (Array(settings.presentation_file) + settings.default_presentation_files).compact.uniq
end

#require_ruby_filesObject



76
77
78
# File 'lib/parade/server.rb', line 76

def require_ruby_files
  Dir.glob("#{settings.presentation_directory}/*.rb").map { |path| require path }
end