templar 0.7.2 → 0.7.3
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.
- data/lib/tasks/templar_tasks.rake +1 -1
- data/lib/templar/capistrano.rb +14 -4
- data/lib/templar/engine.rb +10 -8
- data/lib/templar/processor.rb +50 -18
- data/lib/templar/version.rb +1 -1
- metadata +9 -9
data/lib/templar/capistrano.rb
CHANGED
@@ -15,12 +15,21 @@ configuration.load do
|
|
15
15
|
|
16
16
|
puts " * initializing templar..."
|
17
17
|
|
18
|
-
@templar = Templar::Processor.new
|
19
|
-
|
20
|
-
|
18
|
+
@templar = Templar::Processor.new(:overrides => {:print_format => " templar: (update: %s) %s => %s"})
|
19
|
+
if @templar.config.use_environments
|
20
|
+
@templar.environment = begin
|
21
|
+
if defined?(Rails)
|
22
|
+
Rails.env
|
23
|
+
elsif ENV['ENVIRONMENT']
|
24
|
+
ENV['ENVIRONMENT']
|
25
|
+
else
|
26
|
+
ARGV[0]
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
21
30
|
|
22
31
|
begin
|
23
|
-
[
|
32
|
+
[@templar.environment].each do |arg|
|
24
33
|
task arg do
|
25
34
|
nil
|
26
35
|
end
|
@@ -30,6 +39,7 @@ configuration.load do
|
|
30
39
|
end
|
31
40
|
|
32
41
|
def run_templar(opts={})
|
42
|
+
puts " ** using environment: #{@templar.environment}" if @templar.config.use_environments
|
33
43
|
@templar.process
|
34
44
|
end
|
35
45
|
|
data/lib/templar/engine.rb
CHANGED
@@ -7,15 +7,17 @@ module Templar
|
|
7
7
|
engine_name "templar"
|
8
8
|
end
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
class << self
|
11
|
+
def init(overrides = {})
|
12
|
+
@processor ||= Templar::Processor.new(:overrides => overrides)
|
13
|
+
end
|
13
14
|
|
14
|
-
|
15
|
-
|
16
|
-
|
15
|
+
def data
|
16
|
+
@processor.data
|
17
|
+
end
|
17
18
|
|
18
|
-
|
19
|
-
|
19
|
+
def config
|
20
|
+
@processor.config
|
21
|
+
end
|
20
22
|
end
|
21
23
|
end
|
data/lib/templar/processor.rb
CHANGED
@@ -8,43 +8,75 @@ module Templar
|
|
8
8
|
# This is the implementation of template processing.
|
9
9
|
class Processor
|
10
10
|
# @return [Templar::Config] contains the templar configuration data, usually config/templar.yml
|
11
|
-
|
11
|
+
attr_reader :config
|
12
12
|
# @return [Templar::Config] contains the data loaded from the YAML data file, usually config/templar/data.yml
|
13
|
-
|
13
|
+
attr_reader :data
|
14
|
+
# @return [String] the environment Templar is using
|
15
|
+
attr_accessor :environment
|
14
16
|
|
15
17
|
##
|
16
18
|
# Get a new processor
|
17
19
|
# @param [Hash] config_overrides these values will be merged on top of the defaults.
|
18
|
-
def initialize(
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
@
|
24
|
-
@
|
25
|
-
|
26
|
-
|
27
|
-
|
20
|
+
def initialize(settings = {})
|
21
|
+
defaults = {
|
22
|
+
:print_format => " templar: (update: %s) %s => %s"
|
23
|
+
}
|
24
|
+
|
25
|
+
@config = load_yaml_file("config/templar.yml", :defaults => defaults, :overrides => settings[:overrides])
|
26
|
+
@use_environments = @config.use_environments
|
27
|
+
@directory = @config.directory
|
28
|
+
@templates = @config.templates || []
|
29
|
+
|
30
|
+
@data = load_yaml_file(data_file)
|
31
|
+
|
32
|
+
raise "Data is empty. Missing environment in data settings?" unless @data
|
28
33
|
end
|
29
34
|
|
30
35
|
##
|
31
36
|
# Process configuration templates
|
32
37
|
# @raise [TemplarException] Raises exception when it cannot find files
|
33
38
|
def process
|
34
|
-
|
35
|
-
|
36
|
-
|
39
|
+
if @use_environments
|
40
|
+
@environment ||= begin
|
41
|
+
return Rails.env if defined?(Rails)
|
42
|
+
return ENV['ENVIRONMENT'] if ENV['ENVIRONMENT']
|
43
|
+
nil
|
44
|
+
end
|
45
|
+
raise "Use Environments option is true, but environment is not set (#{@config.inspect})" if @use_environments && !@environment
|
46
|
+
raise "Data is empty, missing environment?" unless @data[@environment.to_sym]
|
47
|
+
@data = @data[@environment.to_sym]
|
48
|
+
end
|
37
49
|
|
50
|
+
raise "Data is empty, please check configuration" unless @data
|
38
51
|
process_templates
|
39
52
|
end
|
40
53
|
|
54
|
+
private
|
55
|
+
|
56
|
+
##
|
57
|
+
# load yaml file into config object
|
58
|
+
# @param [String] file the file to load
|
59
|
+
# @param [Hash] overrides these values will be merged on top of the file data
|
60
|
+
# @return [Templar::Config] contains the file as a config object
|
61
|
+
def load_yaml_file(file, settings = {})
|
62
|
+
raise "file #{file} does not exist" unless File.exists?(file)
|
63
|
+
data = settings[:defaults] || {}
|
64
|
+
data.merge!(YAML.load_file(file)||{})
|
65
|
+
data.merge!(settings[:overrides]||{})
|
66
|
+
Templar::Config.new(data)
|
67
|
+
end
|
41
68
|
|
42
69
|
##
|
43
70
|
# Determine the data file to use.
|
44
71
|
# If #{directory}/data.yml exists, use that, otherwise use #{directory}/data.sample.yml
|
45
72
|
# data.sample.yml should contain non-development template data.
|
46
73
|
def data_file
|
47
|
-
|
74
|
+
#@data_file ||= File.exists?("#{@directory}/data.yml") ? "#{@directory}/data.yml" : "#{@directory}/data.sample.yml"
|
75
|
+
@data_file ||= begin
|
76
|
+
return "#@directory/#@environment.yml" if @use_environments && File.exists?("#@directory/#@environment.yml")
|
77
|
+
return "#@directory/data.yml" if File.exists?("#@directory/data.yml")
|
78
|
+
"#@directory/data.sample.yml"
|
79
|
+
end
|
48
80
|
end
|
49
81
|
|
50
82
|
##
|
@@ -80,8 +112,8 @@ module Templar
|
|
80
112
|
if update
|
81
113
|
template_data = File.read(source)
|
82
114
|
erb = Erubis::Eruby.new(template_data)
|
83
|
-
substitutions =
|
84
|
-
dest_data = erb.evaluate(:T => substitutions, :templar =>
|
115
|
+
substitutions = @data
|
116
|
+
dest_data = erb.evaluate(:T => substitutions, :templar => self)
|
85
117
|
# dest_data = ERB.new(template_data).result b
|
86
118
|
File.open(dest, 'w') { |f| f.write(dest_data) }
|
87
119
|
end
|
data/lib/templar/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: templar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 5
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 7
|
9
|
-
-
|
10
|
-
version: 0.7.
|
9
|
+
- 3
|
10
|
+
version: 0.7.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Shawn Catanzarite
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-04
|
18
|
+
date: 2012-05-04 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: rake
|
@@ -29,8 +29,8 @@ dependencies:
|
|
29
29
|
- 0
|
30
30
|
version: "0"
|
31
31
|
type: :runtime
|
32
|
-
prerelease: false
|
33
32
|
requirement: *id001
|
33
|
+
prerelease: false
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: erubis
|
36
36
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
@@ -43,8 +43,8 @@ dependencies:
|
|
43
43
|
- 0
|
44
44
|
version: "0"
|
45
45
|
type: :runtime
|
46
|
-
prerelease: false
|
47
46
|
requirement: *id002
|
47
|
+
prerelease: false
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: yard
|
50
50
|
version_requirements: &id003 !ruby/object:Gem::Requirement
|
@@ -57,8 +57,8 @@ dependencies:
|
|
57
57
|
- 0
|
58
58
|
version: "0"
|
59
59
|
type: :development
|
60
|
-
prerelease: false
|
61
60
|
requirement: *id003
|
61
|
+
prerelease: false
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: sqlite3
|
64
64
|
version_requirements: &id004 !ruby/object:Gem::Requirement
|
@@ -71,8 +71,8 @@ dependencies:
|
|
71
71
|
- 0
|
72
72
|
version: "0"
|
73
73
|
type: :development
|
74
|
-
prerelease: false
|
75
74
|
requirement: *id004
|
75
|
+
prerelease: false
|
76
76
|
description: "[config] templar allows you to manage development environment configuration files as templates."
|
77
77
|
email:
|
78
78
|
- scatanzarite@gmail.com
|
@@ -156,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
156
156
|
requirements: []
|
157
157
|
|
158
158
|
rubyforge_project:
|
159
|
-
rubygems_version: 1.8.
|
159
|
+
rubygems_version: 1.8.24
|
160
160
|
signing_key:
|
161
161
|
specification_version: 3
|
162
162
|
summary: "[config] templar allows you to manage development environment configuration files as templates."
|