a9n 0.2.2 → 0.2.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 39c493dd369e2ff7e7ca0fbc67aeb3eb3d2bb4de
4
- data.tar.gz: 3d15911fbfc65a606fc3f5484b99ca9549fd76fb
3
+ metadata.gz: 1278accbf3b20ef8dcf2084995996dbaa1bdabda
4
+ data.tar.gz: d444fa5ca535f636c4d0eefb03895d3bf12813da
5
5
  SHA512:
6
- metadata.gz: d8dfd10661f36985ebbe762c773e329fa4aedcf74fe5c30da08d201e510198d9f8b81e66e4290657e1fb2c4e94c9661c9ae6a3f34854feda9cea581d2168588b
7
- data.tar.gz: 31d6d95ae6553c7a62b332af9e40fef465395da7b6637452bfaa7a7317a4030ba4ba5c3db44128e465a17942b8469b3ca305a6cb00423834f3df69f8e14591fa
6
+ metadata.gz: 71e3c6444b5418cf69547a9e81cd88dcefd6d346648268de14f2adf045f0920100865041cd0f7637c25f5d2fe376036b39c4b3be24df2ddb8729531bcee02d1b
7
+ data.tar.gz: 5b924cb72e0a6d6813056ab6ef43e1b3a07ac4eb5c3615ae74c26834b3bc8ce0938fabbe0d07eeeaf06a23b94708255cf8ad192114405d40c00458a7bd345090
@@ -2,5 +2,5 @@ language: ruby
2
2
  rvm:
3
3
  - 1.9.3
4
4
  - 2.0.0
5
- - 2.1.1
5
+ - 2.1.2
6
6
  - jruby-19mode
data/Gemfile CHANGED
@@ -2,5 +2,5 @@ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
4
  gem 'rake'
5
- gem 'rspec', '~> 2.14.0'
5
+ gem 'rspec', '~> 2.14.1'
6
6
  gem 'coveralls', require: false
data/README.md CHANGED
@@ -10,7 +10,7 @@
10
10
  [codeclimate]: https://codeclimate.com/github/knapo/a9n
11
11
  [coveralls]: https://coveralls.io/r/knapo/a9n
12
12
 
13
- Simple tool for managing extra configuration in ruby/rails apps. Supports Rails 2.x, 3.x, 4.x and Ruby 1.9, 2.0.
13
+ Simple tool for managing extra configuration in ruby/rails apps. Supports Rails 2.x, 3.x, 4.x and Ruby 1.9, 2.0.
14
14
  Ruby 1.8 is not supported in version 0.1.2 and higher.
15
15
 
16
16
  ## Installation
@@ -28,7 +28,7 @@ directory. When none fo these files exists, `A9n::MissingConfigurationFile`
28
28
  exception is thrown.
29
29
  If both file exist, content of `configuration.yml` is validated. It means that
30
30
  all keys existing in example file must exist in base file - in case of missing
31
- keys`A9n::MissingConfigurationVariables` is thrown with information about
31
+ keys`A9n::MissingConfigurationVariables` is thrown with information about
32
32
  missing keys.
33
33
 
34
34
  Set application root and load configuration by adding to your `application.rb` or `environment.rb` right
@@ -45,7 +45,7 @@ you may need to tell it A9n:
45
45
 
46
46
  ## Usage
47
47
 
48
- You can access any variable defined in configuration files but delegating it to
48
+ You can access any variable defined in configuration files but delegating it to
49
49
  `A9n`. E.g:
50
50
 
51
51
  defaults:
@@ -62,16 +62,18 @@ is accessible by:
62
62
 
63
63
  ## Custom and multiple configuration files
64
64
 
65
- If you need to load config from custom files (e.g `config/mongo.yml` and `config/other.yml`), add:
66
-
67
- A9n.load('mongo.yml', 'other.yml')
68
-
69
- and the configuration is availble under `mongo` and `other` scopes:
65
+ If you need to load config from custom files (e.g `config/mongo.yml`, `config/other.yml` and `config/custom_dir/extra.yml`), add:
66
+
67
+ A9n.load('mongo.yml', 'other.yml', 'custom_dir/extra')
68
+
69
+ and the configuration is availble under `mongo`, `other` and `extra` scopes:
70
70
 
71
71
  A9n.mongo.varname
72
-
72
+
73
73
  A9n.other.varname
74
-
74
+
75
+ A9n.extra.varname
76
+
75
77
  ## Contributing
76
78
 
77
79
  1. Fork it
data/lib/a9n.rb CHANGED
@@ -10,8 +10,8 @@ module A9n
10
10
  class MissingConfigurationVariables < StandardError; end
11
11
  class NoSuchConfigurationVariable < StandardError; end
12
12
 
13
- DEFAULT_FILE = 'configuration.yml'
14
13
  DEFAULT_SCOPE = :configuration
14
+ DEFAULT_FILE = "#{DEFAULT_SCOPE}.yml"
15
15
 
16
16
  class << self
17
17
  def env
@@ -109,6 +109,10 @@ module A9n
109
109
  ENV[name]
110
110
  end
111
111
 
112
+ def var_name_for(file)
113
+ :"@#{file.to_s.split('/').last.split('.').first}"
114
+ end
115
+
112
116
  private
113
117
 
114
118
  def verify!(example, local)
@@ -117,9 +121,5 @@ module A9n
117
121
  raise MissingConfigurationVariables.new("Following variables are missing in your configuration file: #{missing_keys.join(",")}")
118
122
  end
119
123
  end
120
-
121
- def var_name_for(file)
122
- :"@#{file.to_s.split('.').first}"
123
- end
124
124
  end
125
125
  end
@@ -0,0 +1,11 @@
1
+ Capistrano::Configuration.instance.load do
2
+ after "deploy:update_code", "a9n:copy_stage_config"
3
+
4
+ namespace :a9n do
5
+ desc "Copy stage configuration to base file."
6
+ task :copy_stage_config, roles: :app do
7
+ run "cp #{fetch(:release_path)}/config/configuration.yml.#{fetch(:stage)} #{fetch(:release_path)}/config/configuration.yml"
8
+ end
9
+ end
10
+ end
11
+
@@ -5,7 +5,7 @@ module A9n
5
5
  def keys
6
6
  @table.keys
7
7
  end
8
-
8
+
9
9
  def fetch(name, default = nil)
10
10
  @table[name.to_sym] || default
11
11
  end
@@ -14,4 +14,4 @@ module A9n
14
14
  raise NoSuchConfigurationVariable.new(name)
15
15
  end
16
16
  end
17
- end
17
+ end
@@ -1,3 +1,3 @@
1
1
  module A9n
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
@@ -7,7 +7,7 @@ describe A9n do
7
7
  expect(described_class).to receive(:get_rails).and_return(nil)
8
8
  }
9
9
  specify {
10
- described_class.local_app.should be_nil
10
+ expect(described_class.local_app).to be_nil
11
11
  }
12
12
  end
13
13
 
@@ -15,7 +15,7 @@ describe A9n do
15
15
  let(:local_app) { double(env: 'test', root: '/apps/a9n') }
16
16
  before { described_class.local_app = local_app }
17
17
 
18
- specify { described_class.local_app.should == local_app }
18
+ specify { expect(described_class.local_app).to eq(local_app) }
19
19
  end
20
20
 
21
21
  after { described_class.local_app = nil }
@@ -30,13 +30,13 @@ describe A9n do
30
30
  described_class.root = '/home/knapo/workspace/a9n'
31
31
  }
32
32
  specify {
33
- described_class.root.should == Pathname.new('/home/knapo/workspace/a9n')
33
+ expect(described_class.root).to eq(Pathname.new('/home/knapo/workspace/a9n'))
34
34
  }
35
35
  end
36
36
 
37
37
  context 'with local app path' do
38
38
  specify {
39
- described_class.root.should == '/apps/a9n'
39
+ expect(described_class.root).to eq('/apps/a9n')
40
40
  }
41
41
  end
42
42
 
@@ -80,9 +80,9 @@ describe A9n do
80
80
  expect(described_class).to receive(:verify!).never
81
81
  end
82
82
  it 'raises expection' do
83
- lambda {
83
+ expect {
84
84
  described_class.load
85
- }.should raise_error(described_class::MissingConfigurationData)
85
+ }.to raise_error(described_class::MissingConfigurationData)
86
86
  end
87
87
  end
88
88
 
@@ -215,13 +215,13 @@ describe A9n do
215
215
  end
216
216
 
217
217
  it 'has symbolized keys' do
218
- subject.keys.first.should be_kind_of(Symbol)
219
- subject[:hash_dwarf].should be_kind_of(Hash)
220
- subject[:hash_dwarf].keys.first.should be_kind_of(Symbol)
218
+ expect(subject.keys.first).to be_kind_of(Symbol)
219
+ expect(subject[:hash_dwarf]).to be_kind_of(Hash)
220
+ expect(subject[:hash_dwarf].keys.first).to be_kind_of(Symbol)
221
221
  end
222
222
 
223
223
  it 'parses erb' do
224
- subject[:erb_dwarf].should == 'erbized dwarf'
224
+ expect(subject[:erb_dwarf]).to eq('erbized dwarf')
225
225
  end
226
226
  end
227
227
 
@@ -242,7 +242,11 @@ describe A9n do
242
242
  expect(described_class).to receive(:local_app).and_return(double(env: 'dwarf_env')).exactly(3).times
243
243
  expect(described_class).to receive(:get_env_var).never
244
244
  }
245
- its(:env) { should == 'dwarf_env' }
245
+
246
+ describe '#env' do
247
+ subject { super().env }
248
+ it { should == 'dwarf_env' }
249
+ end
246
250
  end
247
251
 
248
252
  context "when APP_ENV is set" do
@@ -252,14 +256,18 @@ describe A9n do
252
256
  expect(described_class).to receive(:get_env_var).with('RACK_ENV').and_return(nil)
253
257
  expect(described_class).to receive(:get_env_var).with('APP_ENV').and_return('dwarf_env')
254
258
  }
255
- its(:env) { should == 'dwarf_env' }
259
+
260
+ describe '#env' do
261
+ subject { super().env }
262
+ it { should == 'dwarf_env' }
263
+ end
256
264
  end
257
265
  end
258
266
 
259
267
  describe '.get_env_var' do
260
268
  before { ENV['DWARF'] = 'little dwarf' }
261
- it { described_class.get_env_var('DWARF').should == 'little dwarf'}
262
- it { described_class.get_env_var('IS_DWARF').should be_nil}
269
+ it { expect(described_class.get_env_var('DWARF')).to eq('little dwarf')}
270
+ it { expect(described_class.get_env_var('IS_DWARF')).to be_nil}
263
271
  end
264
272
 
265
273
  describe '.get_rails' do
@@ -271,11 +279,17 @@ describe A9n do
271
279
  Object.send(:remove_const, :Rails)
272
280
  }
273
281
  it {
274
- described_class.get_rails.should be_kind_of(Module)
282
+ expect(described_class.get_rails).to be_kind_of(Module)
275
283
  }
276
284
  end
277
285
  context 'when not defined' do
278
- it { described_class.get_rails.should be_nil }
286
+ it { expect(described_class.get_rails).to be_nil }
279
287
  end
280
288
  end
289
+
290
+ describe '.var_name_for' do
291
+ it { expect(described_class.var_name_for(:configuration)).to eq(:@configuration) }
292
+ it { expect(described_class.var_name_for('configuration.yml')).to eq(:@configuration) }
293
+ it { expect(described_class.var_name_for('custom_dir/extra.yml')).to eq(:@extra) }
294
+ end
281
295
  end
@@ -11,41 +11,44 @@ describe A9n::Struct do
11
11
  })
12
12
  }
13
13
 
14
- its(:keys) { should == [:non_empty_dwarf, :nil_dwarf, :false_dwarf, :true_dwarf, :hash_dwarf] }
14
+ describe '#keys' do
15
+ subject { super().keys }
16
+ it { should == [:non_empty_dwarf, :nil_dwarf, :false_dwarf, :true_dwarf, :hash_dwarf] }
17
+ end
15
18
 
16
19
  it 'gets non-empty value' do
17
- subject.non_empty_dwarf.should == 'dwarf'
20
+ expect(subject.non_empty_dwarf).to eq('dwarf')
18
21
  end
19
22
 
20
23
  it 'gets nil value' do
21
- subject.nil_dwarf.should == nil
24
+ expect(subject.nil_dwarf).to eq(nil)
22
25
  end
23
26
 
24
27
  it 'gets true value' do
25
- subject.true_dwarf.should == true
28
+ expect(subject.true_dwarf).to eq(true)
26
29
  end
27
-
30
+
28
31
  it 'gets false value' do
29
- subject.false_dwarf.should == false
32
+ expect(subject.false_dwarf).to eq(false)
30
33
  end
31
34
 
32
35
  it 'gets hash value' do
33
- subject.hash_dwarf.should be_kind_of(Hash)
36
+ expect(subject.hash_dwarf).to be_kind_of(Hash)
34
37
  end
35
38
 
36
39
  it 'raises exception when value not exists' do
37
- expect {
40
+ expect {
38
41
  subject.non_existing_dwarf
39
42
  }.to raise_error(A9n::NoSuchConfigurationVariable)
40
43
  end
41
44
 
42
45
  describe '#fetch' do
43
46
  it 'return non empty value' do
44
- subject.fetch(:non_empty_dwarf).should == 'dwarf'
47
+ expect(subject.fetch(:non_empty_dwarf)).to eq('dwarf')
45
48
  end
46
49
 
47
50
  it 'not returns nil for non existing value' do
48
- subject.fetch(:non_existing_dwarf).should == nil
51
+ expect(subject.fetch(:non_existing_dwarf)).to eq(nil)
49
52
  end
50
53
  end
51
- end
54
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: a9n
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Krzysztof Knapik
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-25 00:00:00.000000000 Z
11
+ date: 2014-05-16 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Simple tool for managing extra configuration in ruby/rails apps
14
14
  email:
@@ -26,6 +26,7 @@ files:
26
26
  - Rakefile
27
27
  - a9n.gemspec
28
28
  - lib/a9n.rb
29
+ - lib/a9n/capistrano.rb
29
30
  - lib/a9n/core_ext/hash.rb
30
31
  - lib/a9n/struct.rb
31
32
  - lib/a9n/version.rb