nginxtra 1.2.3.5 → 1.2.3.6
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/nginxtra +1 -1
- data/bin/nginxtra_rails +1 -1
- data/lib/nginxtra/config.rb +72 -14
- data/lib/nginxtra/version.rb +1 -1
- data/templates/files/nginx.conf.rb +2 -0
- metadata +4 -4
data/bin/nginxtra
CHANGED
data/bin/nginxtra_rails
CHANGED
data/lib/nginxtra/config.rb
CHANGED
@@ -8,11 +8,65 @@ module Nginxtra
|
|
8
8
|
NGINX_PIDFILE_FILENAME = ".nginx_pid".freeze
|
9
9
|
@@last_config = nil
|
10
10
|
|
11
|
-
def initialize
|
11
|
+
def initialize(*args)
|
12
12
|
@requires_root = false
|
13
13
|
@compile_options = []
|
14
|
+
@partial_paths = []
|
15
|
+
@file_paths = []
|
14
16
|
@files = {}
|
15
17
|
@@last_config = self
|
18
|
+
|
19
|
+
if block_given?
|
20
|
+
yield self
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# Define an additional directory where partials can be found. The
|
25
|
+
# passed in path should have directories listed by configuration
|
26
|
+
# file, then partials within those.
|
27
|
+
#
|
28
|
+
# For example:
|
29
|
+
# custom_partials "/my/path"
|
30
|
+
# /my/path/nginx.conf/rails.rb
|
31
|
+
# /my/path/nginx.conf/static.rb
|
32
|
+
def custom_partials(path)
|
33
|
+
@partial_paths << path
|
34
|
+
end
|
35
|
+
|
36
|
+
# Define an additional directory where file templates can be
|
37
|
+
# found. The passed in path should have file templates within it.
|
38
|
+
#
|
39
|
+
# For example:
|
40
|
+
# custom_files "/my/path"
|
41
|
+
# /my/path/nginx.conf.rb
|
42
|
+
def custom_files(path)
|
43
|
+
@file_paths << path
|
44
|
+
end
|
45
|
+
|
46
|
+
# Retrieve an array of directories where partials can be
|
47
|
+
# contained. This includes the custom partial directories added
|
48
|
+
# with the "custom_partials" method, in the order they were added,
|
49
|
+
# then the standard override location, and finally the standard
|
50
|
+
# gem partials.
|
51
|
+
def partial_paths
|
52
|
+
[].tap do |result|
|
53
|
+
result.push *@partial_paths
|
54
|
+
result.push File.join(Nginxtra::Config.template_dir, "partials")
|
55
|
+
result.push File.join(Nginxtra::Config.gem_template_dir, "partials")
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
# Retrieve an array of directories where file templates can be
|
60
|
+
# contained. This includes the custom file directories added with
|
61
|
+
# the "custom_files" method, in the order they were added, then
|
62
|
+
# the standard override location, and finally the standard gem
|
63
|
+
# file templates.
|
64
|
+
def file_paths
|
65
|
+
[].tap do |result|
|
66
|
+
result.push *@file_paths
|
67
|
+
result.push File.join(Nginxtra::Config.template_dir, "files")
|
68
|
+
result.push File.join(Nginxtra::Config.gem_template_dir, "files")
|
69
|
+
end
|
16
70
|
end
|
17
71
|
|
18
72
|
# This method is used to configure nginx via nginxtra. Inside
|
@@ -396,11 +450,14 @@ module Nginxtra
|
|
396
450
|
|
397
451
|
# Process the simple config.
|
398
452
|
def process!
|
399
|
-
|
400
|
-
|
453
|
+
file_options = @config.file_paths.map do |path|
|
454
|
+
find_config_files! path
|
455
|
+
end
|
401
456
|
|
402
|
-
config_files = (
|
403
|
-
|
457
|
+
config_files = file_options.map(&:keys).inject([], &:+).uniq.map do |x|
|
458
|
+
file_options.select do |option|
|
459
|
+
option.include? x
|
460
|
+
end.first[x]
|
404
461
|
end
|
405
462
|
|
406
463
|
process_files! config_files
|
@@ -433,22 +490,23 @@ module Nginxtra
|
|
433
490
|
files.each do |x|
|
434
491
|
path = x[:path]
|
435
492
|
file_name = x[:config_file]
|
493
|
+
config = @config
|
436
494
|
options = @options
|
437
495
|
invoked_partials = @invoked_partials
|
438
496
|
|
439
497
|
yielder = proc do
|
440
498
|
invoked_partials.each do |partial|
|
441
499
|
method, args, block = partial
|
442
|
-
partial_end_path = "partials/#{file_name}/#{method}.rb"
|
443
|
-
partial_path = File.join Nginxtra::Config.gem_template_dir, partial_end_path
|
444
|
-
override_partial_path = File.join Nginxtra::Config.template_dir, partial_end_path
|
445
500
|
partial_options = {}
|
446
501
|
partial_options = args.first if args.length > 0 && args.first.kind_of?(Hash)
|
447
502
|
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
503
|
+
config.partial_paths.each do |path|
|
504
|
+
partial_path = File.join path, "#{file_name}/#{method}.rb"
|
505
|
+
|
506
|
+
if File.exists? partial_path
|
507
|
+
process_template! partial_path, partial_options, block
|
508
|
+
break
|
509
|
+
end
|
452
510
|
end
|
453
511
|
end
|
454
512
|
end
|
@@ -503,6 +561,6 @@ end
|
|
503
561
|
# nginxtra.config do
|
504
562
|
# ...
|
505
563
|
# end
|
506
|
-
def nginxtra
|
507
|
-
Nginxtra::Config.new
|
564
|
+
def nginxtra(*args, &block)
|
565
|
+
Nginxtra::Config.new *args, &block
|
508
566
|
end
|
data/lib/nginxtra/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nginxtra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.3.
|
4
|
+
version: 1.2.3.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-09-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
16
|
-
requirement: &
|
16
|
+
requirement: &15893000 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: 0.16.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *15893000
|
25
25
|
description: This gem is intended to provide an easy to use configuration file that
|
26
26
|
will automatically be used to compile nginx and configure the configuration.
|
27
27
|
email: reasonnumber@gmail.com
|