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