inquisitive 1.1.0 → 1.2.0

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: 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