Class: Cindy::Cindy

Inherits:
Object
  • Object
show all
Defined in:
lib/cindy/cindy.rb

Defined Under Namespace

Modules: DSL

Constant Summary collapse

CONFIGURATION_FILE =
File.expand_path '~/.cindy'

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeCindy

Returns a new instance of Cindy.



64
65
66
67
# File 'lib/cindy/cindy.rb', line 64

def initialize
    @environments = {}
    @templates = {}
end

Class Method Details

.from_string(string) ⇒ Object



69
70
71
72
73
# File 'lib/cindy/cindy.rb', line 69

def self.from_string(string)
    cindy = Cindy.new
    DSL::CindyNode.new(cindy).instance_eval string
    cindy
end

.load(filename = nil) ⇒ Object



75
76
77
78
79
80
# File 'lib/cindy/cindy.rb', line 75

def self.load(filename = nil)
    @filename = filename || CONFIGURATION_FILE
    cindy = Cindy.new
    DSL::CindyNode.new(cindy).instance_eval(File.read(@filename), File.basename(@filename), 0)
    cindy
end

Instance Method Details

#environment_add(envname, attributes) ⇒ Object



95
96
97
98
99
# File 'lib/cindy/cindy.rb', line 95

def environment_add(envname, attributes)
    envname = envname.intern
    # assert [email protected]? envname
    @environments[envname] = Environment.new(envname, attributes)
end

#environmentsObject



86
87
88
# File 'lib/cindy/cindy.rb', line 86

def environments
    @environments.values
end

#has_environment?(envname) ⇒ Boolean

Returns:

  • (Boolean)


90
91
92
93
# File 'lib/cindy/cindy.rb', line 90

def has_environment?(envname)
    envname = envname.intern
    @environments.key? envname
end

#has_template?(tplname) ⇒ Boolean

Returns:

  • (Boolean)


105
106
107
108
# File 'lib/cindy/cindy.rb', line 105

def has_template?(tplname)
    tplname = tplname.intern
    @templates.key? tplname
end

#template_add(tplname, file) ⇒ Object



110
111
112
113
114
# File 'lib/cindy/cindy.rb', line 110

def template_add(tplname, file)
    tplname = tplname.intern
    # assert [email protected]? name
    @templates[tplname] = Template.new File.expand_path(file), tplname
end

#template_environment_deploy(envname, tplname) ⇒ Object



124
125
126
127
128
129
130
# File 'lib/cindy/cindy.rb', line 124

def template_environment_deploy(envname, tplname)
    envname = envname.intern
    tplname = tplname.intern
    check_environment! envname
    check_template! tplname
    @templates[tplname].deploy @environments[envname]
end

#template_environment_print(envname, tplname) ⇒ Object



116
117
118
119
120
121
122
# File 'lib/cindy/cindy.rb', line 116

def template_environment_print(envname, tplname)
    envname = envname.intern
    tplname = tplname.intern
    check_environment! envname
    check_template! tplname
    @templates[tplname].print @environments[envname]
end

#template_environment_variables(envname, tplname) ⇒ Object



132
133
134
135
136
137
138
# File 'lib/cindy/cindy.rb', line 132

def template_environment_variables(envname, tplname)
    envname = envname.intern
    tplname = tplname.intern
    check_environment! envname
    check_template! tplname
    @templates[tplname].list_variables envname
end

#templatesObject



101
102
103
# File 'lib/cindy/cindy.rb', line 101

def templates
    @templates.values
end

#to_sObject



82
83
84
# File 'lib/cindy/cindy.rb', line 82

def to_s
    (@environments.values.map(&:to_s) + [''] + @templates.values.map(&:to_s)).join("\n")
end