Sha256: 9f83ef5902d41596be317b7a4ce7d4dd841b84ebf58a8a507e3cd1abf33650f9
Contents?: true
Size: 1.53 KB
Versions: 1
Compression:
Stored size: 1.53 KB
Contents
require "hud/version" require 'mote' require 'ostruct' module Hud class Error < StandardError; end ##################### Config ##################### def self.configuration @configuration ||= OpenStruct.new( { screens_dir: "./screens", parts: [:body,:title] } ) end def self.configure yield(configuration) end ##################### Screen ##################### class Screen include Mote::Helpers attr_reader :overides def initialize(overides: {}) @overides = overides end def overide(name:,value:) @overides[name] = value self end def render mote("#{Hud.configuration.screens_dir}/layout.mote",get_params) end private def get_params params = {} Hud.configuration.parts.each do |symbol| content = "" begin if overides.has_key? symbol content = overides[symbol] next end content = mote("#{screens_dir(overided: true)}/#{symbol}.mote",overides) rescue => exception content = mote("#{screens_dir}/#{symbol}.mote") ensure params[symbol] = content end end params end def screens_dir(overided: false) return "#{Hud.configuration.screens_dir}" unless overided "#{Hud.configuration.screens_dir}/#{self.class.name.gsub(/\w*::/,"").gsub("Screen","").downcase}" end alias_method :to_json, :render alias_method :to_html, :render end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
hud-1.0.0 | lib/hud.rb |