UriConfig
Configure services via URI.
Installation
Add this line to your application's Gemfile:
gem 'uri_config'
And then execute:
$ bundle
Or install it yourself as:
$ gem install uri_config
Usage
Extract credentials from generic URIs:
config = URIConfig::Config.new("https://my_user:my_pass@s3.amazonaws.com/a_path")
config.username # => "my_user"
config.password # => "my_password"
config.path # => "/bucket_name"
Build wrapper classes for more specific configuration hashes:
class S3Config < Config
alias_method :access_key_id, :username
alias_method :secret_access_key, :password
def bucket
path[1..-1]
end
config :access_key_id, :secret_access_key, :bucket
end
config = S3Config.new("https://AKIAJUSERNAME:abcd12345678@s3.amazonaws.com/bucket_name")
config.access_key_id # => "AKIAJUSERNAME"
config.secret_access_key # => "abcd12345678"
config.bucket # => "bucket_name"
config.config # => {access_key_id: "AKIAJUSERNAME, secret_access_key: "abcd12345678", bucket: "bucket_name" }
Use the .configure_from
helper to configure based on environment variables, e.g. config/initializers/mandrill.rb:
require "uri_config/action_mailer_config"
URIConfig::ActionMailerConfig.configure_from('ACTION_MAILER_URL') do |c|
Rails.application.config.action_mailer.smtp_settings = c.config
end
Contributing
- Fork it ( https://github.com/JonathonMA/uri_config/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request