lib/sinclair/config.rb in sinclair-1.3.4 vs lib/sinclair/config.rb in sinclair-1.4.0
- old
+ new
@@ -5,7 +5,34 @@
#
# The methods will be added later by {ConfigFactory}
#
# The instance variables will be set by {ConfigBuilder}
class Config
+ autoload :MethodsBuilder, 'sinclair/config/methods_builder'
+ extend ConfigClass
+
+ # Return all the current configurations in a hash
+ #
+ # @return [Hash]
+ #
+ # @example Checking all hash/json formats
+ # class LoginConfig < Sinclair::Config
+ # add_configs :password, username: 'bob'
+ # end
+ #
+ # config = LoginConfig.new
+ #
+ # config.to_hash
+ # # returns { 'password' => nil, 'username' => 'bob' }
+ #
+ # config.as_json
+ # # returns { 'password' => nil, 'username' => 'bob' }
+ #
+ # config.to_json
+ # # returns '{"password":null,"username":"bob"}'
+ def to_hash
+ self.class.config_attributes.each_with_object({}) do |attribute, hash|
+ hash[attribute.to_s] = public_send(attribute)
+ end
+ end
end
end