Module: Hasu
- Defined in:
- lib/hasu.rb,
lib/hasu/version.rb
Constant Summary collapse
- VERSION =
"0.0.8"
Class Method Summary collapse
- .error ⇒ Object
- .error=(error) ⇒ Object
- .load(path) ⇒ Object
- .prepended(other) ⇒ Object
- .reload! ⇒ Object
- .reloads ⇒ Object
- .run(window) ⇒ Object
Instance Method Summary collapse
- #_hasu_font ⇒ Object
- #button_down(id) ⇒ Object
- #draw ⇒ Object
- #initialize ⇒ Object
- #reset ⇒ Object
- #update ⇒ Object
Class Method Details
.error ⇒ Object
19 20 21 |
# File 'lib/hasu.rb', line 19 def self.error @error end |
.error=(error) ⇒ Object
23 24 25 26 27 28 29 30 |
# File 'lib/hasu.rb', line 23 def self.error=(error) @error = error if @error $stderr.puts @error.inspect $stderr.puts @error.backtrace.join("\n") end end |
.load(path) ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/hasu.rb', line 8 def self.load(path) reloads[path] = File.mtime(path) begin super true rescue Exception => e Hasu.error = e false end end |
.prepended(other) ⇒ Object
48 49 50 51 |
# File 'lib/hasu.rb', line 48 def self.prepended(other) includer = caller.first.split(":").first reloads[includer] = File.mtime(includer) end |
.reload! ⇒ Object
39 40 41 42 43 44 45 46 |
# File 'lib/hasu.rb', line 39 def self.reload! to_reload = reloads.select{|f,t| File.mtime(f) > t} !to_reload.empty? && to_reload.all? do |file,_| puts "Reloading #{file}" load(file) end end |
.reloads ⇒ Object
4 5 6 |
# File 'lib/hasu.rb', line 4 def self.reloads @files ||= {} end |
.run(window) ⇒ Object
32 33 34 35 36 37 |
# File 'lib/hasu.rb', line 32 def self.run(window) unless @running @running = true window.new.show end end |
Instance Method Details
#_hasu_font ⇒ Object
91 92 93 |
# File 'lib/hasu.rb', line 91 def _hasu_font @_hasu_font ||= Gosu::Font.new(self, Gosu::default_font_name, 16) end |
#button_down(id) ⇒ Object
95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/hasu.rb', line 95 def (id) case id when Gosu::KbEscape close when Gosu::Window.('r') reset else begin super(id) rescue => e Hasu.error = e end end end |
#draw ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/hasu.rb', line 76 def draw(*) if Hasu.error ([Hasu.error.inspect] + Hasu.error.backtrace).each_with_index do |line, i| _hasu_font.draw(line.gsub("\n",''), 10, 10 + i * 16, 0) end else begin super rescue => e Hasu.error = e draw end end end |
#initialize ⇒ Object
53 54 55 56 |
# File 'lib/hasu.rb', line 53 def initialize(*) super reset end |