quiverstaskrunner 0.1.40977 → 0.1.254029

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