# File lib/daemon_kit/core_ext/configurable.rb, line 45
      def configurable( name, *args )
        opts = args.last.is_a?( Hash ) ? args.pop : {}
        opts = { :locked => false }.merge( opts )

        default = args.size <= 1 ? args.pop : args

        name = name.to_sym

        self.configurables[ name ] = opts
        self.configurable_defaults[ name ] = default

        class_eval( "def \#{name}                                    # def foo\nif _configurables[:\#{name}].nil?             #   if _configurables[:foo].nil?\nself.class.configurable_defaults[:\#{name}] #     self.class.configurable_defaults[:foo]\nelse                                         #   else\n_configurables[:\#{name}]                   #     _configurables[:foo]\nend                                          #   end\nend                                            #\n\ndef \#{name}=( value )                              # def foo=( value )\nif \#{name}.nil? ||                               #   if foo.nil? ||\n!self.class.configurables[:\#{name}][:locked] #       !self.class.configurables[:foo][:locked]\n#\n_configurables[:\#{name}] = value               #     _configurables[:foo] = value\nend                                              #   end\nend                                                # end\n", __FILE__, __LINE__ )
      end