configureasy 1.0.0 → 1.0.1

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: 53ec1f1f03b188c3ef934d0bf5e5d980a313825c
4
- data.tar.gz: 082aa5e705f4488e4a65033df3e4d63a92731249
3
+ metadata.gz: fc4e5cfa5599e0fd74ec1d47cc08ca74c5d51e96
4
+ data.tar.gz: 2fd4941231c93651f46af41a3512c92c68c30ac5
5
5
  SHA512:
6
- metadata.gz: 8225a7f3d3c5c06eed1a38570699e119e74e905df538f8c6ce0dd9b3d0c840a5f53f00cada86987bb8e5476e9e6e0ce4934a26a5a951ccd2af1572878e21f6d0
7
- data.tar.gz: b4cb540efa45c89b5955a06a37fc85b0e2c685b519843fb3b65ea36bfc1b6c15d8cb1da57e04700b914dfe635e01897e7c43185b46614a0a19656ca831c31c99
6
+ metadata.gz: 285b80e511bd271d2295c1b208dc6c9da15e0365646b1250823d6e39d879bcda71da6f293d297d1fda973dad20927bfe00a5e93d21c0681c573b72406250a970
7
+ data.tar.gz: 61ff91a551470e6bb675c41549b37e1220a94e6d159cea4fc3e52bdf0953281283a20013de17f625e9da83c57fe947d4428f6ff03942c75ecfb699d6c90ba5ef
data/Gemfile CHANGED
@@ -4,15 +4,21 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  group :development do
7
- gem 'terminal-notifier'
8
- gem 'terminal-notifier-guard'
9
- gem 'pry'
10
- gem 'pry-nav'
7
+ gem 'terminal-notifier', '1.6.2'
8
+ gem 'terminal-notifier-guard', '1.6.4'
9
+ gem 'pry', '0.10.1'
10
+ gem 'pry-nav', '0.2.4'
11
11
  end
12
12
 
13
13
  group :test do
14
- gem 'rake'
15
- gem 'rspec'
16
- gem 'guard-rspec'
17
- gem 'coveralls', require: false
18
- end
14
+ gem 'rake', '10.4.2'
15
+ gem 'rspec', '3.2.0'
16
+
17
+ gem 'tins', '1.3.5' # coveralls dependency
18
+ gem 'term-ansicolor', '1.3.0' # coveralls dependency
19
+ gem 'rb-fsevent', '0.9.4' # guard-rspec dependency
20
+ gem 'rb-inotify', '0.9.5' # guard-rspec dependency
21
+
22
+ gem 'guard-rspec', '4.5.0'
23
+ gem 'coveralls', '0.7.11', require: false
24
+ end
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  Configureasy
2
2
  =============
3
3
 
4
- [![Build Status](https://travis-ci.org/alexandreprates/configureasy.svg?branch=master)](https://travis-ci.org/alexandreprates/configureasy) [![Coverage Status](https://coveralls.io/repos/alexandreprates/configureasy/badge.svg)](https://coveralls.io/r/alexandreprates/configureasy) [![Inline docs](http://inch-ci.org/github/alexandreprates/configureasy.svg?branch=master)](http://inch-ci.org/github/alexandreprates/configureasy)
4
+ [![Build Status](https://travis-ci.org/alexandreprates/configureasy.svg?branch=master)](https://travis-ci.org/alexandreprates/configureasy) [![Coverage Status](https://coveralls.io/repos/alexandreprates/configureasy/badge.svg)](https://coveralls.io/r/alexandreprates/configureasy) [![Inline docs](http://inch-ci.org/github/alexandreprates/configureasy.svg?branch=master)](http://inch-ci.org/github/alexandreprates/configureasy) [![Code Climate](https://codeclimate.com/github/alexandreprates/configureasy/badges/gpa.svg)](https://codeclimate.com/github/alexandreprates/configureasy)
5
5
 
6
6
  Configureasy is a library for load configs quickly and easily.
7
7
 
@@ -26,8 +26,7 @@ module Configureasy::Configurable
26
26
  name = options[:as] || file_basename
27
27
  path = options[:path] || './config'
28
28
  filename = File.join path, "#{file_basename}.yml"
29
- self.class.send(:define_method, name) { _configurable_for(filename) }
30
- self.class.send(:define_method, "#{name}_reload!") { _configurable_reload(filename) }
29
+ _configurable_init(name, filename)
31
30
  end
32
31
 
33
32
  # @deprecated Please use {#load_config} instead.
@@ -40,7 +39,7 @@ module Configureasy::Configurable
40
39
  #
41
40
  # # load contents for ./config/bar.yml
42
41
  # config_name :bar
43
- def config_name(name = nil)
42
+ def config_name(name = nil)
44
43
  warn "[DEPRECATION] `config_name` is deprecated. Please use `load_config` instead."
45
44
  load_config name, as: 'config'
46
45
  end
@@ -61,12 +60,34 @@ module Configureasy::Configurable
61
60
 
62
61
  private
63
62
 
64
- def _configurable_for(filename) # :nodoc:
65
- @@configurables[filename.to_sym] || _configurable_reload(filename)
63
+ def _configurable_init(method_name, filename)
64
+ @@configurables[_configurable_key(method_name)] = { filename: filename,
65
+ payload: nil }
66
+ return if self.class.respond_to? method_name
67
+ self.class.send(:define_method, method_name) do
68
+ _configurable_for(method_name)
69
+ end
70
+ self.class.send(:define_method, "#{method_name}_reload!") do
71
+ _configurable_reload(method_name)
72
+ end
66
73
  end
67
74
 
68
- def _configurable_reload(filename) # :nodoc:
69
- @@configurables[filename.to_sym] = Configureasy::ConfigParser.new(filename).as_config
75
+ def _configurable_key(method_name)
76
+ "#{self}.#{method_name}"
70
77
  end
71
78
 
79
+ def _configurable_hash(method_name)
80
+ @@configurables[_configurable_key(method_name)]
81
+ end
82
+
83
+ def _configurable_for(method_name) # :nodoc:
84
+ _configurable_hash(method_name)[:payload] ||
85
+ _configurable_reload(method_name)
86
+ end
87
+
88
+ def _configurable_reload(method_name) # :nodoc:
89
+ filename = _configurable_hash(method_name)[:filename]
90
+ config = Configureasy::ConfigParser.new(filename).as_config
91
+ _configurable_hash(method_name)[:payload] = config
92
+ end
72
93
  end
@@ -1,3 +1,3 @@
1
1
  module Configureasy
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
@@ -1,9 +1,34 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Configureasy::Configurable do
4
6
  before(:each) do
5
7
  allow(File).to receive(:exist?) { true }
6
- allow(YAML).to receive(:load_file) { {'works' => 'true'} }
8
+ allow(YAML).to receive(:load_file) { { 'works' => 'true' } }
9
+ end
10
+
11
+ context 'when I have two modules with same config name' do
12
+ before do
13
+ module Foo
14
+ include Configureasy
15
+ load_config :foo, as: :config
16
+ end
17
+ module Bar
18
+ include Configureasy
19
+ load_config :bar, as: :config
20
+ end
21
+ expect(YAML).to receive(:load_file).with('./config/foo.yml') do
22
+ { 'name' => 'andré' }
23
+ end
24
+ expect(YAML).to receive(:load_file).with('./config/bar.yml') do
25
+ { 'name' => 'rodrigo' }
26
+ end
27
+ end
28
+
29
+ it 'has different outputs' do
30
+ expect(Foo.config).not_to eq(Bar.config)
31
+ end
7
32
  end
8
33
 
9
34
  describe '.load_config' do
@@ -49,7 +74,7 @@ describe Configureasy::Configurable do
49
74
  end
50
75
  end
51
76
 
52
- it "load config content into config method" do
77
+ it 'load config content into config method' do
53
78
  expect(dumb_class).to respond_to :config
54
79
  expect(dumb_class.config.works).to eq('true')
55
80
  end
@@ -63,10 +88,9 @@ describe Configureasy::Configurable do
63
88
  end
64
89
  end
65
90
 
66
- it "load config with filename into config method" do
91
+ it 'load config with filename into config method' do
67
92
  expect(dumb_class).to respond_to :config
68
93
  expect(dumb_class.config.works).to eq('true')
69
94
  end
70
95
  end
71
-
72
- end
96
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: configureasy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexandre Prates
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-08 00:00:00.000000000 Z
11
+ date: 2017-05-15 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A Simple way to get configs.
14
14
  email:
@@ -56,7 +56,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
56
56
  version: '0'
57
57
  requirements: []
58
58
  rubyforge_project:
59
- rubygems_version: 2.4.5
59
+ rubygems_version: 2.6.11
60
60
  signing_key:
61
61
  specification_version: 4
62
62
  summary: A Simple way to get configs.