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