a9n 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -14,13 +14,18 @@ And then execute:
14
14
 
15
15
  $ bundle
16
16
 
17
- In your `application.rb` load configuration with:
18
-
19
- A9n.load
17
+ Add `configuration.yml.example` and/or `configuration.yml` file to config directory.
20
18
 
21
19
  ## Usage
22
20
 
23
- TODO: Write usage instructions here
21
+ You can access any variable defined in `configuration.yml` file but delegating it to A9n. E.g:
22
+
23
+ production:
24
+ app_host: 'http://knapo.net'
25
+
26
+ is accessible by
27
+
28
+ A9n.app_host
24
29
 
25
30
  ## Contributing
26
31
 
data/lib/a9n.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  require 'a9n/version'
2
- require 'a9n/store'
2
+ require 'a9n/struct'
3
3
 
4
4
  module A9n
5
5
  class ConfigurationNotLoaded < StandardError; end
@@ -10,10 +10,8 @@ module A9n
10
10
 
11
11
  class << self
12
12
 
13
- def cfg
14
- @@configuration
15
- rescue NameError
16
- raise ConfigurationNotLoaded.new("Configuration does not seem to be loaded. Plase call `A9n.load`.")
13
+ def config
14
+ @@configuration ||= load
17
15
  end
18
16
 
19
17
  def env
@@ -40,7 +38,7 @@ module A9n
40
38
  verify!(base, local)
41
39
  end
42
40
 
43
- @@configuration = Store.new(local || base)
41
+ @@configuration = Struct.new(local || base)
44
42
  end
45
43
 
46
44
  def load_yml(file)
@@ -55,6 +53,15 @@ module A9n
55
53
  end
56
54
  end
57
55
 
56
+ # Fixes rspec issue
57
+ def to_ary
58
+ nil
59
+ end
60
+
61
+ def method_missing(name, *args)
62
+ config.send(name, *args)
63
+ end
64
+
58
65
  private
59
66
 
60
67
  def verify!(base, local)
@@ -1,7 +1,11 @@
1
1
  require 'ostruct'
2
2
 
3
3
  module A9n
4
- class Store < OpenStruct
4
+ class Struct < OpenStruct
5
+ def keys
6
+ @table.keys
7
+ end
8
+
5
9
  def method_missing(name, *args)
6
10
  value = @table[name]
7
11
  if value.nil?
@@ -1,3 +1,3 @@
1
1
  module A9n
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -27,7 +27,7 @@ describe A9n do
27
27
  let(:local_sample_config){
28
28
  { :app_host => '127.0.0.1:3000' }
29
29
  }
30
- subject { described_class.cfg }
30
+ subject { described_class }
31
31
 
32
32
  context 'when no configuration file exists' do
33
33
  before do
@@ -49,7 +49,7 @@ describe A9n do
49
49
  described_class.should_receive(:verify!).never
50
50
  described_class.load
51
51
  end
52
- it { should_not be_nil }
52
+
53
53
  its(:app_url) { should_not be_nil }
54
54
  specify {
55
55
  expect { subject.app_host }.to raise_error(described_class::NoSuchConfigurationVariable)
@@ -63,8 +63,7 @@ describe A9n do
63
63
  described_class.should_receive(:verify!).never
64
64
  described_class.load
65
65
  end
66
-
67
- it { should_not be_nil }
66
+
68
67
  its(:app_host) { should_not be_nil }
69
68
  specify {
70
69
  expect { subject.app_url }.to raise_error(described_class::NoSuchConfigurationVariable)
@@ -78,7 +77,7 @@ describe A9n do
78
77
  described_class.should_receive(:load_yml).with('config/configuration.yml').and_return(base_sample_config)
79
78
  described_class.load
80
79
  end
81
- it { should_not be_nil }
80
+
82
81
  its(:app_url) { should_not be_nil }
83
82
  specify {
84
83
  expect { subject.app_host }.to raise_error(described_class::NoSuchConfigurationVariable)
@@ -2,7 +2,8 @@ require 'rubygems'
2
2
  require 'bundler/setup'
3
3
 
4
4
  require 'a9n'
5
- require 'a9n/store'
5
+ require 'a9n/struct'
6
+ require 'a9n/version'
6
7
 
7
8
  RSpec.configure do |config|
8
9
  config.order = "random"
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe A9n::Store do
3
+ describe A9n::Struct do
4
4
  subject { described_class.new(:app_host => 'http://127.0.0.1:3000') }
5
5
 
6
6
  it 'gets value' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: a9n
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-06 00:00:00.000000000 Z
12
+ date: 2012-12-07 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Simple tool for managing app configuration
15
15
  email:
@@ -26,12 +26,12 @@ files:
26
26
  - Rakefile
27
27
  - a9n.gemspec
28
28
  - lib/a9n.rb
29
- - lib/a9n/store.rb
29
+ - lib/a9n/struct.rb
30
30
  - lib/a9n/version.rb
31
31
  - spec/a9n_spec.rb
32
32
  - spec/fixtures/configuration.yml
33
33
  - spec/spec_helper.rb
34
- - spec/store_spec.rb
34
+ - spec/struct_spec.rb
35
35
  homepage: https://github.com/knapo/a9n
36
36
  licenses: []
37
37
  post_install_message:
@@ -60,4 +60,4 @@ test_files:
60
60
  - spec/a9n_spec.rb
61
61
  - spec/fixtures/configuration.yml
62
62
  - spec/spec_helper.rb
63
- - spec/store_spec.rb
63
+ - spec/struct_spec.rb