Class: Blufin::YmlConfigValidator

Inherits:
YmlValidatorBase show all
Defined in:
lib/core/yml/config/yml_config_validator.rb

Constant Summary collapse

GET =
'GET'
POST =
'POST'
PUT =
'PUT'
PATCH =
'PATCH'
DELETE =
'DELETE'
VALID_METHODS =
[GET, POST, PUT, PATCH, DELETE]
GLOBAL =
'global'
GLOBAL_AUTHENTICATION =
'authentication'
CRON =
'cron'
WORKER =
'worker'
WORKER_PRIORITY =
'priority'
WORKER_DESCRIPTION =
'description'
MESSAGE =
'message'
MESSAGE_RECEIVER =
'MessageReceiver'
STRUCTURE =
[
    {
        :section_name => GLOBAL,
        :section_type => Blufin::YmlValidatorBase::SECTION_TYPE_FIXED,
        :section_data => {
            GLOBAL_AUTHENTICATION => {
                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                :required => true
            }
        }
    },
    {
        :section_name => CRON,
        :section_type => Blufin::YmlValidatorBase::SECTION_TYPE_DYNAMIC,
        :section_data => {
            :section_alphabetical => true,
            :section_regex        => /\A[a-z_]+\z/,
            :section_fields       => {
                MESSAGE => {
                    :type     => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                    :required => true
                }
            }
        }
    },
    {
        :section_name => WORKER,
        :section_type => Blufin::YmlValidatorBase::SECTION_TYPE_DYNAMIC,
        :section_data => {
            :section_alphabetical => true,
            :section_regex        => /\A[a-z_]+\z/,
            :section_fields       => {
                WORKER_PRIORITY    => {
                    :type     => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                    :required => true
                },
                WORKER_DESCRIPTION => {
                    :type     => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                    :required => true
                }
            }
        }
    }
]
PLACEHOLDER_PACKAGE =
'{{--PLACEHOLDER-PACKAGE--}}'
PLACEHOLDER_CLASS =
'{{--PLACEHOLDER-CLASS--}}'
PLACEHOLDER_ONE =
'{{--PLACEHOLDER-ONE--}}'
PLACEHOLDER_TWO =
'{{--PLACEHOLDER-TWO--}}'
PLACEHOLDER_THREE =
'{{--PLACEHOLDER-THREE--}}'
PLACEHOLDER_FOUR =
'{{--PLACEHOLDER-FOUR--}}'
PLACEHOLDER_FIVE =
'{{--PLACEHOLDER-FIVE--}}'
PLACEHOLDER_SIX =
'{{--PLACEHOLDER-SIX--}}'
PLACEHOLDER_SITE_NAME =
'{{--SITE-NAME--}}'
PLACEHOLDER_SITE_DOMAIN =
'{{--SITE-DOMAIN--}}'
TEMPLATE_WORKER =
<<TEMPLATE
package #{PLACEHOLDER_PACKAGE};

import org.blufin.core.cloud.queue.MessageIncoming;
import org.blufin.worker.queue.MessageHandlerInterface;

public final class #{PLACEHOLDER_CLASS} implements MessageHandlerInterface {

    @Override
    public boolean handle(MessageIncoming message) throws Exception {

        return false;
    }
}
TEMPLATE

Constants inherited from YmlValidatorBase

Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY, Blufin::YmlValidatorBase::FIELD_TYPE_BLANK, Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN, Blufin::YmlValidatorBase::FIELD_TYPE_FILE, Blufin::YmlValidatorBase::FIELD_TYPE_FLOAT, Blufin::YmlValidatorBase::FIELD_TYPE_NESTED_DATA, Blufin::YmlValidatorBase::FIELD_TYPE_TEXT, Blufin::YmlValidatorBase::SECTION_MATCHES_FILENAME, Blufin::YmlValidatorBase::SECTION_TYPE_ARRAY, Blufin::YmlValidatorBase::SECTION_TYPE_DYNAMIC, Blufin::YmlValidatorBase::SECTION_TYPE_FIXED

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from YmlValidatorBase

#validate, #validate_single_file

Constructor Details

#initialize(site, error_handler) ⇒ Object

Initialize the class.



101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/core/yml/config/yml_config_validator.rb', line 101

def initialize(site, error_handler)

    @site        = Blufin::SiteResolver::validate_site(site)
    @site_path   = Blufin::SiteResolver::get_site_location(@site)
    @site_name   = Blufin::SiteResolver::get_site_name(@site)
    @site_domain = Blufin::SiteResolver::get_site_domain(@site)

    @error_handler = error_handler
    @config_file   = "#{Blufin::SiteResolver::get_site_location(@site)}/#{Blufin::Site::PATH_TO_YML_CONFIG}/config.yml"

    @@message_types = nil
    @@cron_types    = nil

    return unless Blufin::YmlCommon::validate_directory_structure(@site_path, Blufin::Site::PATH_TO_YML_CONFIG, %w(config.yml), [], @error_handler)

    @@config_data = validate_single_file(site, @config_file, STRUCTURE, error_handler)
    @@config_data = @@config_data[@config_file]

    @config_data = @@config_data

    validate_data

end

Instance Attribute Details

#config_dataObject

Returns the value of attribute config_data.



13
14
15
# File 'lib/core/yml/config/yml_config_validator.rb', line 13

def config_data
  @config_data
end

Class Method Details

.get_cron_typesObject

Get CronTypes(s) as Array from @@config_data.

Returns:

  • Array



141
142
143
144
145
146
147
148
149
150
151
# File 'lib/core/yml/config/yml_config_validator.rb', line 141

def self.get_cron_types
    if @@cron_types.nil?
        @@cron_types = {}
        if !@@config_data[CRON].nil? && @@config_data[CRON].keys.any?
            @@config_data[CRON].each do |key, data|
                @@cron_types[key] = data
            end
        end
    end
    @@cron_types
end

.get_message_typesObject

Get MessageType(s) as Array from @@config_data.

Returns:

  • Array



127
128
129
130
131
132
133
134
135
136
137
# File 'lib/core/yml/config/yml_config_validator.rb', line 127

def self.get_message_types
    if @@message_types.nil?
        @@message_types = {}
        if !@@config_data[WORKER].nil? && @@config_data[WORKER].keys.any?
            @@config_data[WORKER].each do |key, data|
                @@message_types[key] = data
            end
        end
    end
    @@message_types
end