module Nucleon::Mixin::Action::Registration

Public Instance Methods

register_array(name, default = [], locale = nil, &code) click to toggle source
   # File lib/core/mixin/action/registration.rb
34 def register_array(name, default = [], locale = nil, &code)
35   register(name, :array, default, locale, &code)
36 end
register_bool(name, default = false, locale = nil, &code) click to toggle source
   # File lib/core/mixin/action/registration.rb
10 def register_bool(name, default = false, locale = nil, &code)
11   register(name, :bool, default, locale, &code)
12 end
register_directories(name, default = nil, locale = nil, &code) click to toggle source
   # File lib/core/mixin/action/registration.rb
82 def register_directories(name, default = nil, locale = nil, &code)
83   name = name.to_sym
84 
85   option_locale, validation_locale = split_locales(locale)
86 
87   register_array(name, default, option_locale) do |values|
88     success = validate_directories(values, validation_locale)
89     success = code.call(values, success) if code
90     success
91   end
92 end
register_directory(name, default = nil, locale = nil, &code) click to toggle source
   # File lib/core/mixin/action/registration.rb
68 def register_directory(name, default = nil, locale = nil, &code)
69   name = name.to_sym
70 
71   option_locale, validation_locale = split_locales(locale)
72 
73   register_str(name, default, option_locale) do |value|
74     success = validate_directory(value, validation_locale)
75     success = code.call(value, success) if code
76     success
77   end
78 end
register_file(name, default = nil, locale = nil, &code) click to toggle source
   # File lib/core/mixin/action/registration.rb
40 def register_file(name, default = nil, locale = nil, &code)
41   name = name.to_sym
42 
43   option_locale, validation_locale = split_locales(locale)
44 
45   register_str(name, default, option_locale) do |value|
46     success = validate_file(value, validation_locale)
47     success = code.call(value, success) if code
48     success
49   end
50 end
register_files(name, default = nil, locale = nil, &code) click to toggle source
   # File lib/core/mixin/action/registration.rb
54 def register_files(name, default = nil, locale = nil, &code)
55   name = name.to_sym
56 
57   option_locale, validation_locale = split_locales(locale)
58 
59   register_array(name, default, option_locale) do |values|
60     success = validate_files(values, validation_locale)
61     success = code.call(values, success) if code
62     success
63   end
64 end
register_float(name, default = nil, locale = nil, &code) click to toggle source
   # File lib/core/mixin/action/registration.rb
22 def register_float(name, default = nil, locale = nil, &code)
23   register(name, :float, default, locale, &code)
24 end
register_int(name, default = nil, locale = nil, &code) click to toggle source
   # File lib/core/mixin/action/registration.rb
16 def register_int(name, default = nil, locale = nil, &code)
17   register(name, :int, default, locale, &code)
18 end
register_plugin(namespace, type, name, default = nil, locale = nil, &code) click to toggle source
    # File lib/core/mixin/action/registration.rb
152 def register_plugin(namespace, type, name, default = nil, locale = nil, &code)
153   name = name.to_sym
154 
155   option_locale, validation_locale = split_locales(locale)
156 
157   register_str(name, default, option_locale) do |value|
158     success = validate_plugins(namespace, type, name, value, validation_locale)
159     success = code.call(value, success) if code
160     success
161   end
162 end
register_plugin_provider(namespace, type, name, default = nil, locale = nil, &code) click to toggle source
    # File lib/core/mixin/action/registration.rb
124 def register_plugin_provider(namespace, type, name, default = nil, locale = nil, &code)
125   name = name.to_sym
126 
127   option_locale, validation_locale = split_locales(locale)
128 
129   register_str(name, default, option_locale) do |value|
130     success = validate_plugin_providers(namespace, type, name, value, validation_locale)
131     success = code.call(value, success) if code
132     success
133   end
134 end
register_plugin_providers(namespace, type, name, default = nil, locale = nil, &code) click to toggle source
    # File lib/core/mixin/action/registration.rb
138 def register_plugin_providers(namespace, type, name, default = nil, locale = nil, &code)
139   name = name.to_sym
140 
141   option_locale, validation_locale = split_locales(locale)
142 
143   register_array(name, default, option_locale) do |values|
144     success = validate_plugin_providers(namespace, type, name, values, validation_locale)
145     success = code.call(values, success) if code
146     success
147   end
148 end
register_plugin_type(namespace, name, default = nil, locale = nil, &code) click to toggle source
    # File lib/core/mixin/action/registration.rb
 96 def register_plugin_type(namespace, name, default = nil, locale = nil, &code)
 97   name = name.to_sym
 98 
 99   option_locale, validation_locale = split_locales(locale)
100 
101   register_str(name, default, option_locale) do |value|
102     success = validate_plugin_types(namespace, name, value, validation_locale)
103     success = code.call(value, success) if code
104     success
105   end
106 end
register_plugin_types(namespace, name, default = nil, locale = nil, &code) click to toggle source
    # File lib/core/mixin/action/registration.rb
110 def register_plugin_types(namespace, name, default = nil, locale = nil, &code)
111   name = name.to_sym
112 
113   option_locale, validation_locale = split_locales(locale)
114 
115   register_array(name, default, option_locale) do |values|
116     success = validate_plugin_types(namespace, name, values, validation_locale)
117     success = code.call(values, success) if code
118     success
119   end
120 end
register_plugins(namespace, type, name, default = nil, locale = nil, &code) click to toggle source
    # File lib/core/mixin/action/registration.rb
166 def register_plugins(namespace, type, name, default = nil, locale = nil, &code)
167   name = name.to_sym
168 
169   option_locale, validation_locale = split_locales(locale)
170 
171   register_array(name, default, option_locale) do |values|
172     success = validate_plugins(namespace, type, name, values, validation_locale)
173     success = code.call(values, success) if code
174     success
175   end
176 end
register_project(name, default = nil, locale = nil, &code) click to toggle source
    # File lib/core/mixin/action/registration.rb
192 def register_project(name, default = nil, locale = nil, &code)
193   register_plugin(:nucleon, :project, name.to_sym, default, locale, &code)
194 end
register_project_provider(name, default = nil, locale = nil, &code) click to toggle source
    # File lib/core/mixin/action/registration.rb
180 def register_project_provider(name, default = nil, locale = nil, &code)
181   register_plugin_provider(:nucleon, :project, name.to_sym, default, locale, &code)
182 end
register_project_providers(name, default = nil, locale = nil, &code) click to toggle source
    # File lib/core/mixin/action/registration.rb
186 def register_project_providers(name, default = nil, locale = nil, &code)
187   register_plugin_providers(:nucleon, :project, name.to_sym, default, locale, &code)
188 end
register_projects(name, default = nil, locale = nil, &code) click to toggle source
    # File lib/core/mixin/action/registration.rb
198 def register_projects(name, default = nil, locale = nil, &code)
199   register_plugins(:nucleon, :project, name.to_sym, default, locale, &code)
200 end
register_str(name, default = '', locale = nil, &code) click to toggle source
   # File lib/core/mixin/action/registration.rb
28 def register_str(name, default = '', locale = nil, &code)
29   register(name, :str, default, locale, &code)
30 end
register_translator(name, default = nil, locale = nil, &code) click to toggle source
    # File lib/core/mixin/action/registration.rb
216 def register_translator(name, default = nil, locale = nil, &code)
217   register_plugin(:nucleon, :translator, name.to_sym, default, locale, &code)
218 end
register_translator_provider(name, default = nil, locale = nil, &code) click to toggle source
    # File lib/core/mixin/action/registration.rb
204 def register_translator_provider(name, default = nil, locale = nil, &code)
205   register_plugin_provider(:nucleon, :translator, name.to_sym, default, locale, &code)
206 end
register_translator_providers(name, default = nil, locale = nil, &code) click to toggle source
    # File lib/core/mixin/action/registration.rb
210 def register_translator_providers(name, default = nil, locale = nil, &code)
211   register_plugin_providers(:nucleon, :translator, name.to_sym, default, locale, &code)
212 end
register_translators(name, default = nil, locale = nil, &code) click to toggle source
    # File lib/core/mixin/action/registration.rb
222 def register_translators(name, default = nil, locale = nil, &code)
223   register_plugins(:nucleon, :translators, name.to_sym, default, locale, &code)
224 end
split_locales(locale) click to toggle source
    # File lib/core/mixin/action/registration.rb
321 def split_locales(locale)
322   option_locale     = nil
323   validation_locale = nil
324 
325   if locale.is_a?(Array)
326     option_locale     = locale[0]
327     validation_locale = locale[1] if locale.size > 1
328   else
329     option_locale     = locale
330   end
331   [ option_locale, validation_locale ]
332 end
validate_directories(dir_names, locale = nil) click to toggle source
    # File lib/core/mixin/action/registration.rb
257 def validate_directories(dir_names, locale = nil)
258   success = true
259 
260   array(dir_names).each do |dir_name|
261     test    = validate_directory(dir_name, locale)
262     success = false unless test
263   end
264   success
265 end
validate_directory(dir_name, locale = nil) click to toggle source
    # File lib/core/mixin/action/registration.rb
249 def validate_directory(dir_name, locale = nil)
250   success = dir_name.nil? || File.directory?(dir_name)
251   warn(locale, { :directory => dir_name }) unless success
252   success
253 end
validate_file(file_name, locale = nil) click to toggle source
    # File lib/core/mixin/action/registration.rb
229 def validate_file(file_name, locale = nil)
230   success = file_name.nil? || File.exists?(file_name)
231   warn(locale, { :file => file_name }) unless success
232   success
233 end
validate_files(file_names, locale = nil) click to toggle source
    # File lib/core/mixin/action/registration.rb
237 def validate_files(file_names, locale = nil)
238   success = true
239 
240   array(file_names).each do |file_name|
241     test    = validate_file(file_name, locale)
242     success = false unless test
243   end
244   success
245 end
validate_plugin_providers(namespace, type, name, values, locale = nil) click to toggle source
    # File lib/core/mixin/action/registration.rb
285 def validate_plugin_providers(namespace, type, name, values, locale = nil)
286   loaded_plugin_providers = Nucleon.loaded_plugins(namespace, type).keys
287   success                 = true
288   locale                  = "validation.#{name}" unless locale
289 
290   array(values).each do |value|
291     if ! loaded_plugin_providers.include?(value.to_sym)
292       warn(locale, { :value => value, :choices => loaded_plugin_providers.join(", ") })
293       success = false
294     end
295   end
296   success
297 end
validate_plugin_types(namespace, name, values, locale = nil) click to toggle source
    # File lib/core/mixin/action/registration.rb
269 def validate_plugin_types(namespace, name, values, locale = nil)
270   loaded_plugin_types = Nucleon.loaded_plugins(namespace).keys
271   success             = true
272   locale              = "validation.#{name}" unless locale
273 
274   array(values).each do |value|
275     if ! loaded_plugin_types.include?(value.to_sym)
276       warn(locale, { :value => value, :choices => loaded_plugin_types.join(", ") })
277       success = false
278     end
279   end
280   success
281 end
validate_plugins(namespace, type, name, values, locale = nil) click to toggle source
    # File lib/core/mixin/action/registration.rb
301 def validate_plugins(namespace, type, name, values, locale = nil)
302   plugin_class   = Nucleon.plugin_class(namespace, type)
303   loaded_plugins = Nucleon.loaded_plugins(namespace, type)
304   success        = true
305   locale         = "validation.#{name}" unless locale
306 
307   array(values).each do |value|
308     if info = plugin_class.translate_reference(value)
309       if ! loaded_plugins.keys.include?(info[:provider].to_sym)
310         warn(locale, Util::Data.merge([ info, { :value => value, :choices => loaded_plugins.keys.join(", ") } ]))
311         success = false
312       end
313     end
314   end
315   success
316 end