quandl-config 0.0.1 → 0.0.2

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: 36b55fd81a33c3118fdd834c7039dbdbc329188c
4
- data.tar.gz: 989c8386206043b99dfb8d071818fcc12181b149
3
+ metadata.gz: b3c242cb6777c5f912d2158e0d84f9cdee14523e
4
+ data.tar.gz: 9219e301bd41527772c10d3c95b8c92707724997
5
5
  SHA512:
6
- metadata.gz: c953ae47a416c6fd2a8851b26d397877f0e7d8295ca0a21f1961060cc2f12e0c7abe74147333d9e0ce8a07f15456d8e599ce33160790546734df9da5c41b27a8
7
- data.tar.gz: 9cf64d6da20a947364eb18ba6808d643d72bf781842318f5587155d1e4701a70d8649050722dcdd1de7fdcf4f8448224e96e75b27c587f9ad8493e77f4222811
6
+ metadata.gz: b8cb23bffe218861a9c9fff371fb117d7ab7fd3865c0957e2e4b7ac49160aec4c63f1cea72d5b2cf0c781e87a1a8b6a849735f69c6beb0f819326a0b1b4af566
7
+ data.tar.gz: 7325ce38a989e6e7bd98fdee4b8a4dc12b55c65234fdbf0db2c8f3568a9a59a96b65bab15d6db050eb59b952589cb794118c0819514556f286f837a20fddfd0f
data/README.md CHANGED
@@ -24,7 +24,7 @@ class: A::B::C
24
24
  file name: config/a/b/c.yml
25
25
  ```
26
26
 
27
- 2. Extend the Quandl::Configurable class. This adds a configuration class method.
27
+ 2. Extend the `Quandl::Configurable` class. This adds a configuration class method.
28
28
  ```ruby
29
29
  class A::B::C
30
30
  extend Quandl::Configurable
@@ -56,6 +56,12 @@ class A::B::C
56
56
  end
57
57
  ```
58
58
 
59
+ ### What if my project is not a Rails app?
60
+
61
+ That's ok. `Quandl::Config` will find your config file if it's in a `config` folder in the root of your app.
62
+
63
+ If you want to provide the environment, use `ENV['RAILS_ENV']` or `ENV['RAKE_ENV']`. If you don't, the `default` environment will be assumed.
64
+
59
65
  ## Contributing
60
66
 
61
67
  1. Fork it ( https://github.com/[my-github-username]/quandl-config/fork )
data/lib/quandl/config.rb CHANGED
@@ -1,14 +1,15 @@
1
1
  require 'ostruct'
2
2
  require 'yaml'
3
+ require 'quandl/project_root'
3
4
 
4
5
  module Quandl
5
6
  class Config < ::OpenStruct
6
- VERSION = '0.0.1'
7
+ VERSION = '0.0.2'
7
8
 
8
9
  def initialize(file_name)
9
- raw_config = File.read(::Rails.root.join('config', "#{file_name}.yml"))
10
+ raw_config = File.read(project_root.join('config', "#{file_name}.yml"))
10
11
  erb_config = ERB.new(raw_config).result
11
- config = YAML.load(erb_config)[Rails.env]
12
+ config = YAML.load(erb_config)[project_environment]
12
13
 
13
14
  super(config)
14
15
  end
@@ -18,6 +19,16 @@ module Quandl
18
19
  getters = setters_and_getters.reject { |method| method =~ /=$/ }
19
20
  getters
20
21
  end
22
+
23
+ private
24
+
25
+ def project_root
26
+ defined?(Rails) ? ::Rails.root : Pathname.new(ProjectRoot.root)
27
+ end
28
+
29
+ def project_environment
30
+ defined?(Rails) ? ::Rails.env : (ENV['RAILS_ENV'] || ENV('RAKE_ENV') || 'default')
31
+ end
21
32
  end
22
33
  end
23
34
 
@@ -0,0 +1,34 @@
1
+ module Quandl
2
+ module ProjectRoot
3
+ # Borrowed from https://github.com/rspec/rspec-core/blob/master/lib/rspec/core/ruby_project.rb
4
+
5
+ def self.root
6
+ @project_root ||= determine_root
7
+ end
8
+
9
+ def self.determine_root
10
+ find_first_parent_containing('lib') || '.'
11
+ end
12
+
13
+ def self.find_first_parent_containing(dir)
14
+ ascend_until { |path| File.exist?(File.join(path, dir)) }
15
+ end
16
+
17
+ def self.ascend_until
18
+ fs = File::SEPARATOR
19
+ escaped_slash = "\\#{fs}"
20
+ special = "_ESCAPED_SLASH_"
21
+ project_path = File.expand_path(".")
22
+ parts = project_path.gsub(escaped_slash, special).squeeze(fs).split(fs).map do |x|
23
+ x.gsub(special, escaped_slash)
24
+ end
25
+
26
+ until parts.empty?
27
+ path = parts.join(fs)
28
+ path = fs if path == ""
29
+ return path if yield(path)
30
+ parts.pop
31
+ end
32
+ end
33
+ end
34
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  require 'pry'
2
2
  require 'quandl/config'
3
- require 'fixtures/dummy_app'
3
+ require 'fixtures/dummy_rails_app/application'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quandl-config
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Najwa Azer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-17 00:00:00.000000000 Z
11
+ date: 2014-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -166,10 +166,11 @@ files:
166
166
  - Rakefile
167
167
  - lib/quandl/config.rb
168
168
  - lib/quandl/configurable.rb
169
+ - lib/quandl/project_root.rb
169
170
  - quandl-config.gemspec
170
- - spec/fixtures/config/fake.yml
171
- - spec/fixtures/dummy_app.rb
172
- - spec/fixtures/dummy_app/fake.rb
171
+ - spec/fixtures/dummy_rails_app/application.rb
172
+ - spec/fixtures/dummy_rails_app/config/fake.yml
173
+ - spec/fixtures/dummy_rails_app/fake.rb
173
174
  - spec/quandl/quandl-config_spec.rb
174
175
  - spec/quandl/quandl-configurable_spec.rb
175
176
  - spec/spec_helper.rb
@@ -198,9 +199,9 @@ signing_key:
198
199
  specification_version: 4
199
200
  summary: Openstruct-based per-class configuration.
200
201
  test_files:
201
- - spec/fixtures/config/fake.yml
202
- - spec/fixtures/dummy_app.rb
203
- - spec/fixtures/dummy_app/fake.rb
202
+ - spec/fixtures/dummy_rails_app/application.rb
203
+ - spec/fixtures/dummy_rails_app/config/fake.yml
204
+ - spec/fixtures/dummy_rails_app/fake.rb
204
205
  - spec/quandl/quandl-config_spec.rb
205
206
  - spec/quandl/quandl-configurable_spec.rb
206
207
  - spec/spec_helper.rb