quiverstaskrunner 0.1.40977 → 0.1.254029

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: 205ecd1aa18e3b788fb957fb9771078b349fd7dc
4
- data.tar.gz: 53fcf1aba5a5caee604e4d970e39dfd95b578f58
3
+ metadata.gz: 893f814f90eb7281e80cdff038d753593a68c72a
4
+ data.tar.gz: 91f5e86a73cf158392a2486a5d8c50ffbd99f5ba
5
5
  SHA512:
6
- metadata.gz: 8ab463f4593cde0a63fcb2d1a119c4196e08a93b86528a5c542c3e02d442b820927c4a5ff099b324342caed5097d2f3affc483a43f7fe3101829e2efdd61f47c
7
- data.tar.gz: 99776cdf50a84b65e80a684dfc325e5aeca7b5cb7935dde09974b18e82f122d109c5b38202d56bb3e722a3317b67d26f1d7e33aee24a9534870558eb4637b7cd
6
+ metadata.gz: a352a96f9dcdc5e7d1686a84f2b6811e561874785750c99e716b5762e57288b9021c1c4c565112e121266477ce4a4d1ac39a4fcfecd0bf0a6890b55d6ab49743
7
+ data.tar.gz: acc78953cab9541535b396593363fed2562de20a15968abd3a9c779164ad9330bd228b78455197768815d90e1d9bd4067921fc4604ce0ce360d72850431ca482
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source 'https://rubygems.org'
1
+ source 'http://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in quivers-taskrunner.gemspec
4
4
  gemspec
@@ -5,12 +5,61 @@ module QuiversTaskrunner
5
5
  module SettingsHelper
6
6
  module_function
7
7
 
8
- def get_settings(filepath, env={})
8
+ def get_settings(filepath, env={}, options={})
9
9
  environment = env.is_a?(Hash) ? "defaults" : env
10
10
  file_contents = open(filepath).read
11
11
  YAML.load(ERB.new(file_contents).result).to_hash
12
12
  all_settings = YAML.load(ERB.new(file_contents).result).to_hash
13
- all_settings[environment]
13
+ settings = all_settings[environment]
14
+ injected_settings = SettingsHelper.get_cli_settings(options)
15
+
16
+ final_settings =
17
+ if !injected_settings.empty?
18
+ Hash[*settings.map { |k,v| (injected_settings.has_key?(k) ? [k, injected_settings[k]] : [k, v]) }.flatten ]
19
+ else
20
+ settings
21
+ end
22
+
23
+ return final_settings
24
+ end
25
+
26
+ def get_cli_settings(options={})
27
+ # Returns a Hash
28
+ separator = options[:sep] || "="
29
+ ignore_keys = options[:ignore_keys]
30
+ if defined? ARGV && !ARGV.empty?
31
+ filtered_args =
32
+ if defined? (ignore_keys && ignore_keys.is_a?(Array) && !ignore_keys.empty?)
33
+ formatted_ignore_keys = ignore_keys.map { |x| "#{x}#{separator}" }
34
+ ARGV.reject { |arg| formatted_ignore_keys.detect { |x| arg.index(x) == 0 } }
35
+ else
36
+ ARGV
37
+ end
38
+
39
+ return Hash[*filtered_args.map { |arg| SettingsHelper.deserialize_string_key_value_pair(arg.split(separator)) }.flatten]
40
+ else
41
+ return {}
42
+ end
43
+ end
44
+
45
+ def deserialize_string_key_value_pair(string_key_value_pair)
46
+ if defined? string_key_value_pair && string_key_value_pair.is_a?(Array) && !string_key_value_pair.empty? && string_key_value_pair.length > 1
47
+ key = string_key_value_pair[0]
48
+ value = string_key_value_pair[1]
49
+ if defined? value && !value.nil? && !value.empty?
50
+ deserialize_value =
51
+ if (value.index("[") == 0 || value.index("{") == 0) # this is an array or a hash
52
+ eval(value)
53
+ else
54
+ value
55
+ end
56
+ return [key, deserialize_value]
57
+ else
58
+ return string_key_value_pair
59
+ end
60
+ else
61
+ return string_key_value_pair
62
+ end
14
63
  end
15
64
  end
16
65
  end
@@ -1 +1 @@
1
- module QuiversTaskrunner
1
+ module QuiversTaskrunner
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quiverstaskrunner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.40977
4
+ version: 0.1.254029
5
5
  platform: ruby
6
6
  authors:
7
7
  - ndao
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-31 00:00:00.000000000 Z
11
+ date: 2014-12-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler