nginx-conf 0.0.6 → 0.0.7

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: f55aa416b9f116f24110019bafe7739a4dee06a7
4
- data.tar.gz: b1c479d06625d9e92e558a1dc8385ab9fe1e6bdb
3
+ metadata.gz: b1505db4c8b8f524b38814653afc991e01a20c53
4
+ data.tar.gz: 82b269755c998abbb18ad62dfe61443a68e8b0b2
5
5
  SHA512:
6
- metadata.gz: 6d0028e76ca6668954900d4fc8a03e8dcdf5f147222860de00ef4ae07b66c864aa208e4d9954dadaa7d5e6fb193adf707be8c93f0d2ebc00b451a9bdcd8f6bae
7
- data.tar.gz: 629ef8ca068dc67a14055e10f9be95a8bb85adef9cf9d9fc2168889b4300b29f5d7d229a712b66bcf6e743a45cd50d2601b830a7eec89b0088fabb8aca5b8656
6
+ metadata.gz: 73cfa2c556baec73f7a85087a94f1fae0b1d71736773690f5899fbe7da286bdc8c7ccaca93e5bb50399c139d7d593b7af9b4f2bfc72ca5a9edb0157e16b40dfb
7
+ data.tar.gz: 2f8dc76fac06a8c613fbbd6f28c263fc35777ddbd3833990c9ec4a28059a3ff3122985be3bdd5b27d30979a92bad38d00b8afeb2582a06e6805c059aa479e774
@@ -34,19 +34,20 @@ class Compiler
34
34
  def compile_hash_without_brackets hash
35
35
  hash.map do |key, values|
36
36
  if @repeats.include? key
37
- values.map do |config|
38
- compile_hash_item key, [config]
39
- end.join()
37
+ values.map do |values_per_item|
38
+ compile_hash_item key, values_per_item
39
+ end.join
40
40
  else
41
41
  compile_hash_item key, values
42
42
  end
43
- end.join()
43
+ end.join
44
44
  end
45
45
 
46
46
  def compile_hash_item key, values
47
47
  values = [values] if not values.is_a? Array
48
48
 
49
- indent(key.to_s + ' ' + compile_elem(values) \
49
+ values_str = compile_elem(values)
50
+ indent(key.to_s + (values_str != '' ? ' ' + values_str : '') \
50
51
  + (values[-1].is_a?(Hash) ? "" : ";")) + "\n"
51
52
  end
52
53
 
@@ -5,6 +5,43 @@ require_relative 'compiler'
5
5
 
6
6
 
7
7
  def nginx_conf &block
8
- repeats = %i(server load_module fastcgi_param)
9
- Compiler.new(repeats).compile block_is_hash(repeats, &block)
8
+ repeats = %i(server load_module fastcgi_param set if_)
9
+
10
+ hash = block_is_hash repeats, &block
11
+ replace_if = lambda { |o| replace_elem :if_, :if, o }
12
+ replace_if.call hash
13
+ replace_if.call repeats
14
+ Compiler.new(repeats).compile hash
15
+ end
16
+
17
+
18
+ def replace_elem origin, subst, object
19
+ replace = lambda { |o| replace_elem origin, subst, o }
20
+
21
+ case object
22
+ when Hash
23
+ new_pairs = {}
24
+
25
+ object.each do |key, value|
26
+ case origin
27
+ when key
28
+ object.delete key
29
+ new_pairs[subst] = value
30
+ when value
31
+ object[key] = subst
32
+ else
33
+ replace.call value
34
+ end
35
+ end
36
+
37
+ object.merge! new_pairs
38
+ when Array
39
+ object.each_with_index do |value, key|
40
+ if value == origin
41
+ object[key] = subst
42
+ else
43
+ replace.call value
44
+ end
45
+ end
46
+ end
10
47
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nginx-conf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yota Toyama
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-25 00:00:00.000000000 Z
11
+ date: 2016-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: block-is-hash