Top Level Namespace

Defined Under Namespace

Modules: Dashing

Constant Summary collapse

SCHEDULER =
Rufus::Scheduler.new

Instance Method Summary collapse

Instance Method Details

#development?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/dashing/app.rb', line 12

def development?
  ENV['RACK_ENV'] == 'development'
end

#first_dashboardObject



142
143
144
145
146
# File 'lib/dashing/app.rb', line 142

def first_dashboard
  files = Dir[File.join(settings.views, '*')].collect { |f| File.basename(f, '.*') }
  files -= ['layout']
  files.sort.first
end

#format_event(body, name = nil) ⇒ Object



130
131
132
133
134
# File 'lib/dashing/app.rb', line 130

def format_event(body, name=nil)
  str = ""
  str << "event: #{name}\n" if name
  str << "data: #{body}\n\n"
end

#latest_eventsObject



136
137
138
139
140
# File 'lib/dashing/app.rb', line 136

def latest_events
  settings.history.inject("") do |str, (id, body)|
    str << body
  end
end

#production?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/dashing/app.rb', line 16

def production?
  ENV['RACK_ENV'] == 'production'
end

#require_glob(relative_glob) ⇒ Object



155
156
157
158
159
# File 'lib/dashing/app.rb', line 155

def require_glob(relative_glob)
  Dir[File.join(settings.root, relative_glob)].each do |file|
    require file
  end
end

#send_event(id, body, target = nil) ⇒ Object



122
123
124
125
126
127
128
# File 'lib/dashing/app.rb', line 122

def send_event(id, body, target=nil)
  body[:id] = id
  body[:updatedAt] ||= Time.now.to_i
  event = format_event(body.to_json, target)
  Sinatra::Application.settings.history[id] = event unless target == 'dashboards'
  Sinatra::Application.settings.connections.each { |out| out << event }
end

#tilt_html_enginesObject



148
149
150
151
152
153
# File 'lib/dashing/app.rb', line 148

def tilt_html_engines
  Tilt.mappings.select do |_, engines|
    default_mime_type = engines.first.default_mime_type
    default_mime_type.nil? || default_mime_type == 'text/html'
  end
end