inquisitive 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6d2ab586c82398bc1fc6e3b54f8372ae7b8f01e1
4
- data.tar.gz: 64c18970b81ebbaf2f6d70fd80543ed1a1e9963a
3
+ metadata.gz: 0386fe6dcde04e8963c090b8b2e937003cd0f23a
4
+ data.tar.gz: fd157641b836c285be3f496e644d25eedd2dc8ca
5
5
  SHA512:
6
- metadata.gz: 38a3d62e893431adde36ed3cd6b1d2ac02450bd61e3e30f45656221ffa22b811e5c045c92aa36fb299f78da67174852bbba84fa05089c75b6e19b0895b25b105
7
- data.tar.gz: 9ad57989d3f9df34eba161f163f07a87665e12443dd7175d600bfb2dd82fb16d867a4972158328fe6500758c2e4028be93e07e3714eea750d87445b68315b8cb
6
+ metadata.gz: 7bdaac4757a5166432c9a0af4b31d78d33d07498a7ce6ee2b2d5b9daedb0a58c581a6f7e6edcf5fd906c955030f13fe34dc81d05fd3ecef953e3dc7961a0cef0
7
+ data.tar.gz: 429c3aed3a0de7a9c99ef3ebce6d381baab13c9b577d7678954000a40e6b3b264e0ffdf4142c818a312d68a11cd2a3292695d247c7ab4ebb260c77983011c201
data/README.md CHANGED
@@ -139,7 +139,7 @@ ENV['STUB_IN'] = "development"
139
139
  ENV['STUB_SERVICES'] = "database,api"
140
140
  class MyGame
141
141
  extend Inquisitive::Environment
142
- inquires_about 'STUB'
142
+ inquires_about 'STUB_'
143
143
  end
144
144
 
145
145
  MyGame.stub.authentication?
@@ -183,7 +183,7 @@ Environment inquirers can have explicit presence checks, circumventing a common
183
183
  ENV['STUB_AUTHENTICATION'] = 'false'
184
184
  class MyGame
185
185
  extend Inquisitive::Environment
186
- inquires_about 'STUB'
186
+ inquires_about 'STUB_'
187
187
  end
188
188
 
189
189
  MyGame.stub.authentication
@@ -229,7 +229,7 @@ Environment inquirers have three configurable modes, defaulting to `:dynamic`:
229
229
  ```ruby
230
230
  class MyGame
231
231
  extend Inquisitive::Environment
232
- inquires_about 'STUB', mode: %i[dynamic cached static].sample
232
+ inquires_about 'STUB_', mode: %i[dynamic cached static].sample
233
233
  end
234
234
  ```
235
235
 
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "inquisitive"
7
- spec.version = "1.1.0"
7
+ spec.version = "1.2.0"
8
8
  spec.authors = ["Chris Keele"]
9
9
  spec.email = ["dev@chriskeele.com"]
10
10
  spec.description = "Predicate methods for those curious about their datastructures."
@@ -4,7 +4,7 @@ module Inquisitive
4
4
 
5
5
  def inquires_about(env_var, opts={})
6
6
 
7
- env_accessor = opts.fetch(:with, env_var.downcase)
7
+ env_accessor = opts.fetch(:with, env_var.downcase[/(.*?)(?=(?:_$|$))/])
8
8
  @__env_accessors__ ||= HashWithIndifferentAccess.new
9
9
  @__env_accessors__[env_accessor] = env_var
10
10
 
@@ -58,24 +58,30 @@ module Inquisitive
58
58
  env_var
59
59
  end
60
60
 
61
- else
61
+ elsif hash_var? var_name
62
62
 
63
63
  Parser.env_keys_from(var_name).reduce({}) do |hash, key|
64
64
  hash[Parser.key_for(key, var_name)] = Inquisitive[Parser[key]]
65
65
  hash
66
66
  end
67
67
 
68
+ else
69
+ ""
68
70
  end
69
71
  end
70
72
 
73
+ def hash_var?(var_name)
74
+ var_name[-1] == '_'
75
+ end
76
+
71
77
  def env_keys_from(var_name)
72
78
  ENV.keys.select do |key|
73
- key =~ /^#{var_name}_/
79
+ key =~ /^#{var_name}/
74
80
  end
75
81
  end
76
82
 
77
83
  def key_for(env_key, var_name)
78
- env_key.gsub("#{var_name}_", '').downcase
84
+ env_key.gsub("#{var_name}", '').downcase
79
85
  end
80
86
 
81
87
  end
@@ -45,7 +45,7 @@ end
45
45
  super
46
46
  @mode = Inquisitive[self.class.mode]
47
47
  @type = Inquisitive[self.class.type]
48
- App.inquires_about @type.upcase, mode: @mode
48
+ App.inquires_about @type.upcase + (@type == "hash" ? "_" : ""), mode: @mode
49
49
  end
50
50
 
51
51
  def string
@@ -3,11 +3,20 @@ require 'test_helper'
3
3
  class InquisitiveEnvironmentTest < EnvironmentTest
4
4
 
5
5
  def test_missing_variable_responses
6
- App.inquires_about '__DOES_NOT_EXIST__', with: :exists
7
- assert_equal App.exists, {}
6
+ App.inquires_about 'DOES_NOT_EXIST', with: :exists
7
+ assert_equal App.exists, ""
8
8
  end
9
9
  def test_missing_variable_predicates
10
- App.inquires_about '__DOES_NOT_EXIST__', with: :exists
10
+ App.inquires_about 'DOES_NOT_EXIST', with: :exists
11
+ refute App.exists?
12
+ end
13
+
14
+ def test_missing_hash_variable_responses
15
+ App.inquires_about 'DOES_NOT_EXIST_', with: :exists
16
+ assert_equal App.exists, {}
17
+ end
18
+ def test_missing_hash_variable_predicates
19
+ App.inquires_about 'DOES_NOT_EXIST_', with: :exists
11
20
  refute App.exists?
12
21
  end
13
22
 
@@ -15,7 +15,7 @@ module CombinatorialEnvironmentTests
15
15
  end
16
16
 
17
17
  def test_changing_variable_after_definition
18
- App.inquires_about @type.upcase, mode: @mode, with: :precache
18
+ App.inquires_about @type.upcase + (@type == "hash" ? "_" : ""), mode: @mode, with: :precache
19
19
  test = @mode.static? ? :assert_equal : :refute_equal
20
20
  precache = App.precache
21
21
  send :"change_#{@type}_variable"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inquisitive
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Keele
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-13 00:00:00.000000000 Z
11
+ date: 2013-11-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler