configured 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md ADDED
File without changes
@@ -0,0 +1,18 @@
1
+ module Configured
2
+ class << self
3
+ # Load configuration data stored in YAML.
4
+ # Filename can be passed as parameter.
5
+ def in_yaml(filename = "config/database.yml")
6
+ begin
7
+ $config_initters ||= {}
8
+ $config_initters[filename] ||=
9
+ begin
10
+ data = YAML::load(File.open filename)
11
+ Settings.new(data)
12
+ end
13
+ rescue
14
+ raise "Can't find \"#{filename}\" configuration file."
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,21 @@
1
+ module Configured
2
+ class Settings
3
+ # Initialize using required configuration data (YAML::load result, for example).
4
+ def initialize(configuration_data)
5
+ @configuration_data = configuration_data
6
+ end
7
+
8
+ # Get settings for the required environment.
9
+ def for_the(environment)
10
+ begin
11
+ settings = @configuration_data[environment] || raise
12
+
13
+ settings_hash = {}
14
+ settings.each_key { |key| settings_hash[key.intern] = settings[key]}
15
+ settings_hash
16
+ rescue
17
+ raise "Can't find \"#{environment}\" section in config."
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,12 @@
1
+ module Configured # :nodoc:
2
+ module Version # :nodoc:
3
+ MAJOR = 1
4
+ MINOR = 0
5
+ TINY = 0
6
+ PRE = nil
7
+
8
+ STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
9
+
10
+ SUMMARY = "configured #{STRING}"
11
+ end
12
+ end
data/lib/configured.rb ADDED
@@ -0,0 +1,3 @@
1
+ # We require every .rb files in /configured
2
+ lib_files_pattern = "#{File.dirname __FILE__}/configured/*.rb"
3
+ Dir[lib_files_pattern].each {|lib| require lib }
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ describe Configured do
4
+ describe "Configuration loading" do
5
+
6
+ before :each do
7
+ YAML::stub!(:load)
8
+ end
9
+
10
+ it "should load default rails database config file once when it isn't specified in many calls" do
11
+ File.should_receive(:open).once.with("config/database.yml")
12
+ 2.times { Configured.in_yaml }
13
+ end
14
+
15
+ it "should load specified config file once when it is specified in many calls" do
16
+ some_config = "test"
17
+
18
+ File.should_receive(:open).once.with(some_config)
19
+ 2.times { Configured.in_yaml some_config }
20
+ end
21
+
22
+ it "should raise an exception if there is no such configuration file." do
23
+ lambda { Configured.in_yaml "bad_file" }.should raise_error
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ module Configured
4
+ describe Settings do
5
+
6
+ before :each do
7
+ @test_env_1 = {"setting" => "value", "setting2" => "value2"}
8
+ @test_env_v = {"setting3" => "value3", "setting4" => "value4"}
9
+
10
+ @configuration_fake = {"test" => @test_env_1, "test2" => @test_env_2}
11
+ end
12
+
13
+ describe "#for_the" do
14
+ it "should return settings from config file as hash, in this format:
15
+ :setting_name => setting_value for existing environment" do
16
+ ret = Settings.new(@configuration_fake).for_the("test")
17
+ ret.should == {:setting => "value", :setting2 => "value2"}
18
+ end
19
+
20
+ it "should raise expception if there is no such environment in config" do
21
+ lambda {Settings.new(@configuration_fake).for_the("bad-entry")}.should raise_error
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,15 @@
1
+ require 'rspec'
2
+ require 'yaml'
3
+
4
+ configured_src = '../../lib/configured'
5
+ require File.expand_path(configured_src, __FILE__)
6
+
7
+ # Rspec settings
8
+ #RSpec.configure do |config|
9
+ # config.mock_with :mocha
10
+ # config.mock_with :flexmock
11
+ # config.mock_with :rr
12
+ # config.mock_with :rspec
13
+ #end
14
+
15
+
metadata ADDED
@@ -0,0 +1,53 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: configured
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - nettsundere
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-09-11 00:00:00.000000000Z
13
+ dependencies: []
14
+ description: configured. Use your database.yaml in rails initters. For redis, redis-store
15
+ and e.t.c.
16
+ email: nettsundere@gmail.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - lib/configured.rb
22
+ - lib/configured/configured.rb
23
+ - lib/configured/settings.rb
24
+ - lib/configured/version.rb
25
+ - spec/configured_spec.rb
26
+ - spec/settings_spec.rb
27
+ - spec/spec_helper.rb
28
+ - README.md
29
+ homepage: https://github.com/nettsundere/configured
30
+ licenses: []
31
+ post_install_message:
32
+ rdoc_options: []
33
+ require_paths:
34
+ - lib
35
+ required_ruby_version: !ruby/object:Gem::Requirement
36
+ none: false
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ required_rubygems_version: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ requirements: []
48
+ rubyforge_project:
49
+ rubygems_version: 1.8.6
50
+ signing_key:
51
+ specification_version: 3
52
+ summary: configured 1.0.0
53
+ test_files: []