module NiceAdmin class Engine < Rails::Engine engine_name :nice_admin end def self.included(base) base.send(:extend, ClassMethods) end mattr_accessor :nav_items @@nav_items = {} mattr_accessor :site_title @@site_title = 'Nice Admin' mattr_accessor :site_name @@site_name = 'NiceA dminn' end module ClassMethods def nice_admin_nav(&block) hash = OptionsHash.new block.call(hash) NiceAdmin.nav_items = hash.opts end end class OptionsHash attr_accessor :opts def initialize @opts = {} end def method_missing(sym, *args) @opts[args.first.to_s] = args.last.to_s end end