angie 0.1.0 → 0.1.1

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
  SHA256:
3
- metadata.gz: 04d02314fd63907858ccdde72e07c1c5bec01a4b71565528074d9a94677c71e0
4
- data.tar.gz: 7a0c6bd546a6172efc2fbeda9ae4f4bdac8cb32541215ce8f81b2409a5408acb
3
+ metadata.gz: 3874ce7313db426edc06cde4c8eb98f1e2c49e606c805d64d36b9dc34f91fc03
4
+ data.tar.gz: 46760b7aabde6c68fbdd0e2abc6989b4f9aa5d183bbc0dfbb6acc10924125a12
5
5
  SHA512:
6
- metadata.gz: b7bec2567713bbf967f64726390004f12c130be5f68601db4eafc869e27d11cc2ff53cb3f783b75dfadb181572d1b8cd74639bcd5b227819c0ce1f7dc952db3c
7
- data.tar.gz: 9c6ac74b183da8fc84c819fd18e9223b4e0215f25899feca0351f5e9151c8a8b23b4a81844c2cff78583ab2e993ab2c752091d0957edb63548480e453b0168f2
6
+ metadata.gz: 977482ddc1f22188f131573141e645074851e6d32aabf95721c8f0c97f6bffc3b5c62f84b28466e5c22fba5edf582b3f60bbcd183df97be6797aa4ea897db1e8
7
+ data.tar.gz: 9e36eee07a80626f118d075cf0b6c24174de2524b15f798524a61d1f3cb7ab5280899ca23f68f07a7aa25fc74563ef78fa9edeeb894a7d665635cb7871085c72
data/angie-0.1.0.gem ADDED
Binary file
data/lib/angie/dsl.rb ADDED
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Angie
4
+ class DSL
5
+ def initialize(parent = nil, &block)
6
+ @config = []
7
+ @parent = parent
8
+ @indentation = parent ? parent.indentation + 1 : 0
9
+ instance_exec(&block) if block_given?
10
+ end
11
+
12
+ def directive(name, *args)
13
+ @config << "#{indent}#{name} #{args.join(' ')};"
14
+ end
15
+
16
+ def block(name, &block)
17
+ @config << "#{indent}#{name} {"
18
+ if block_given?
19
+ child = NginxDSL.new(self, &block)
20
+ @config.concat(child.config)
21
+ end
22
+ @config << "#{indent}}"
23
+ end
24
+
25
+ def method_missing(name, *args, &block)
26
+ if block_given?
27
+ block(name.to_s, &block)
28
+ else
29
+ directive(name.to_s, *args)
30
+ end
31
+ end
32
+
33
+ def respond_to_missing?(method_name, include_private = false)
34
+ true
35
+ end
36
+
37
+ def config
38
+ @config
39
+ end
40
+
41
+ def to_s
42
+ @config.join("\n") unless @parent
43
+ end
44
+
45
+ protected
46
+ attr_reader :indentation
47
+
48
+ private
49
+ def indent
50
+ ' ' * @indentation
51
+ end
52
+ end
53
+ end
data/lib/angie/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Angie
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: angie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - creadone
@@ -23,8 +23,10 @@ files:
23
23
  - LICENSE.txt
24
24
  - README.md
25
25
  - Rakefile
26
+ - angie-0.1.0.gem
26
27
  - angie.gemspec
27
28
  - lib/angie.rb
29
+ - lib/angie/dsl.rb
28
30
  - lib/angie/version.rb
29
31
  - sig/angie.rbs
30
32
  homepage: https://github.com/creadone/angie