Sha256: 3ca362aefeda0ef71c3ec2b2b500c661a859e1e3e5c602e68c00ba382214e1a3
Contents?: true
Size: 1.22 KB
Versions: 8
Compression:
Stored size: 1.22 KB
Contents
module Gamebox # Pattern stolen from rspec for configuration class Configuration def self.add_setting(name, opts={}) if opts[:alias] alias_method name, opts[:alias] alias_method "#{name}=", "#{opts[:alias]}=" alias_method "#{name}?", "#{opts[:alias]}?" else define_method("#{name}=") {|val| settings[name] = val} define_method(name) { settings.has_key?(name) ? settings[name] : opts[:default] } define_method("#{name}?") { send name } end end add_setting :config_path add_setting :data_path add_setting :music_path add_setting :sound_path add_setting :gfx_path add_setting :fonts_path add_setting :gb_config_path add_setting :gb_data_path add_setting :gb_music_path add_setting :gb_sound_path add_setting :gb_gfx_path add_setting :gb_fonts_path add_setting :game_name, default: "Untitled Game" add_setting :needs_cursor, default: false add_setting :stages, default: [:demo] add_setting :default_font_size, default: 30 add_setting :default_font_name, default: "Asimov.ttf" add_setting :default_font_color, default: [250,250,250,255] def settings @settings ||= {} end end end
Version data entries
8 entries across 8 versions & 1 rubygems