Class: Blufin::YmlMavenValidator

Inherits:
YmlValidatorBase show all
Defined in:
lib/core/yml/maven/yml_maven_validator.rb

Constant Summary collapse

CONFIG =
'config'
CONFIG_JAVA =
'java'
CONFIG_JAVA_VERSION =
'version'
CONFIG_BLUFIN =
'blufin'
CONFIG_BLUFIN_VERSION =
'version'
CONFIG_PARENTS =
'parents'
CONFIG_PARENTS_NAME =
'name'
CONFIG_PARENTS_TITLE =
'title'
CONFIG_APP_VERSION =
'version'
DEPENDENCIES_APP =
'dependencies-app'
DEPENDENCIES_BLUFIN =
'dependencies-blufin'
DEPENDENCIES_MVN =
'dependencies-mvn'
DEPENDENCIES_GROUP_ID =
'group-id'
DEPENDENCIES_ARTIFACT_ID =
'artifact-id'
DEPENDENCIES_VERSION =
'version'
DEPENDENCIES_USE =
'use'
DEPENDENCIES_EXCLUDE =
'exclude'
DEPENDENCIES_TEST_SCOPE =
'testScope'
DEPENDENCIES_TEST_JAR =
'testJar'
BLUFIN =
'blufin'
BLUFIN_TITLE =
'title'
BLUFIN_PARENT =
'parent'
APP_INFRASTRUCTURE =
'app-infrastructure'
APP_INFRASTRUCTURE_API =
'api'
APP_INFRASTRUCTURE_CRON =
'cron'
APP_INFRASTRUCTURE_LIB =
'lib'
APP_INFRASTRUCTURE_SDK_CORE =
'sdk-core'
APP_INFRASTRUCTURE_SDK_INTERNAL =
'sdk-internal'
APP_INFRASTRUCTURE_SDK_OAUTH =
'sdk-oauth'
APP_INFRASTRUCTURE_WORKER =
'worker'
APP_INFRASTRUCTURE_BUILD_PLUGINS =
'dependencies-external'
EXTRA_DATA =
'extra-data'
EXTRA_DATA_CORE_LIBS =
'core-libs'
EXTRA_DATA_CORE_LIBS_WITH_CHILDREN =
'core-libs-with-children'
EXTRA_DATA_CORE_LIBS_PARENTS =
'core-libs-parents'
EXTRA_DATA_MVN_CACHE =
'extra-data-mvn-cache'
TYPE_BLUFIN =
'type_blufin'
TYPE_APP =
'type_app'
STRUCTURE_BLUFIN =
[
    {
        :section_name => CONFIG,
        :section_type => Blufin::YmlValidatorBase::SECTION_TYPE_FIXED,
        :section_data => {
            CONFIG_JAVA    => {
                :type         => Blufin::YmlValidatorBase::FIELD_TYPE_NESTED_DATA,
                :required     => true,
                :section_data => {
                    CONFIG_JAVA_VERSION => {
                        :type     => FIELD_TYPE_TEXT,
                        :required => true,
                        :regex    => /\A1\.[0-9]+\z/
                    }
                }
            },
            CONFIG_BLUFIN  => {
                :type         => Blufin::YmlValidatorBase::FIELD_TYPE_NESTED_DATA,
                :required     => true,
                :section_data => {
                    CONFIG_BLUFIN_VERSION => {
                        :type     => FIELD_TYPE_TEXT,
                        :required => true,
                        :regex    => /\A[0-9]{1,4}\.[0-9]{1,4}\.[0-9]{1,4}(-SNAPSHOT)?\z/
                    }
                }
            },
            CONFIG_PARENTS => {
                :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                :required     => false,
                :section_data => {
                    CONFIG_PARENTS_NAME  => {
                        :type  => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                        :regex => /\Ablufin-([a-z0-9\-])+\z/
                    },
                    CONFIG_PARENTS_TITLE => {
                        :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                    },
                }
            }
        }
    },
    {
        :section_name => DEPENDENCIES_MVN,
        :section_type => Blufin::YmlValidatorBase::SECTION_TYPE_ARRAY,
        :section_data => {
            DEPENDENCIES_GROUP_ID    => {
                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
            },
            DEPENDENCIES_ARTIFACT_ID => {
                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
            },
            DEPENDENCIES_VERSION     => {
                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
            }
        }
    },
    {
        :section_name => BLUFIN,
        :section_type => Blufin::YmlValidatorBase::SECTION_TYPE_DYNAMIC,
        :section_data => {
            :section_alphabetical => true,
            :section_regex        => /[a-z\-]+/,
            :section_fields       => {
                BLUFIN_TITLE         => {
                    :type     => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                    :required => true
                },
                BLUFIN_PARENT        => {
                    :type     => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                    :required => false
                },
                DEPENDENCIES_BLUFIN  => {
                    :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                    :required     => false,
                    :section_data => {
                        DEPENDENCIES_USE        => {
                            :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                        },
                        DEPENDENCIES_EXCLUDE    => {
                            :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                            :required => false
                        },
                        DEPENDENCIES_TEST_SCOPE => {
                            :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                            :required => false
                        },
                        DEPENDENCIES_TEST_JAR   => {
                            :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                            :required => false
                        }
                    }
                },
                DEPENDENCIES_MVN     => {
                    :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                    :required     => false,
                    :section_data => {
                        DEPENDENCIES_USE        => {
                            :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                        },
                        DEPENDENCIES_EXCLUDE    => {
                            :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                            :required => false
                        },
                        DEPENDENCIES_TEST_SCOPE => {
                            :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                            :required => false
                        }
                    }
                }
            },
        }
    }
]
STRUCTURE_APP =
[
    {
        :section_name => CONFIG,
        :section_type => Blufin::YmlValidatorBase::SECTION_TYPE_FIXED,
        :section_data => {
            CONFIG_JAVA    => {
                :type         => Blufin::YmlValidatorBase::FIELD_TYPE_NESTED_DATA,
                :required     => true,
                :section_data => {
                    CONFIG_JAVA_VERSION => {
                        :type     => FIELD_TYPE_TEXT,
                        :required => true,
                        :regex    => /\A1\.[0-9]+\z/
                    }
                }
            },
            CONFIG_BLUFIN  => {
                :type         => Blufin::YmlValidatorBase::FIELD_TYPE_NESTED_DATA,
                :required     => true,
                :section_data => {
                    CONFIG_BLUFIN_VERSION => {
                        :type     => FIELD_TYPE_TEXT,
                        :required => true,
                        :regex    => /\A[0-9]{1,4}\.[0-9]{1,4}\.[0-9]{1,4}(-SNAPSHOT)?\z/
                    }
                }
            },
            CONFIG_PARENTS => {
                :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                :required     => false,
                :section_data => {
                    CONFIG_PARENTS_NAME  => {
                        :type  => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                        :regex => /\A[a-z0-9\-]+-[a-z0-9\-]+\z/
                    },
                    CONFIG_PARENTS_TITLE => {
                        :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                    },
                }
            }
        }
    },
    {
        :section_name => DEPENDENCIES_MVN,
        :section_type => Blufin::YmlValidatorBase::SECTION_TYPE_ARRAY,
        :required     => false,
        :section_data => {
            DEPENDENCIES_GROUP_ID    => {
                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
            },
            DEPENDENCIES_ARTIFACT_ID => {
                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
            },
            DEPENDENCIES_VERSION     => {
                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
            }
        }
    },
    {
        :section_name => APP_INFRASTRUCTURE,
        :section_type => Blufin::YmlValidatorBase::SECTION_TYPE_FIXED,
        :section_data => {
            APP_INFRASTRUCTURE_API          => {
                :type         => Blufin::YmlValidatorBase::FIELD_TYPE_NESTED_DATA,
                :required     => true,
                :section_data => {
                    BLUFIN_TITLE         => {
                        :type     => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                        :required => true
                    },
                    BLUFIN_PARENT        => {
                        :type     => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                        :required => false
                    },
                    DEPENDENCIES_APP     => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            },
                            DEPENDENCIES_TEST_JAR   => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    },
                    DEPENDENCIES_BLUFIN  => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            },
                            DEPENDENCIES_TEST_JAR   => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    },
                    DEPENDENCIES_MVN     => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    }
                }
            },
            APP_INFRASTRUCTURE_CRON         => {
                :type         => Blufin::YmlValidatorBase::FIELD_TYPE_NESTED_DATA,
                :required     => true,
                :section_data => {
                    BLUFIN_TITLE         => {
                        :type     => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                        :required => true
                    },
                    BLUFIN_PARENT        => {
                        :type     => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                        :required => false
                    },
                    DEPENDENCIES_APP     => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            },
                            DEPENDENCIES_TEST_JAR   => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    },
                    DEPENDENCIES_BLUFIN  => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            },
                            DEPENDENCIES_TEST_JAR   => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    },
                    DEPENDENCIES_MVN     => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    }
                }
            },
            APP_INFRASTRUCTURE_LIB          => {
                :type         => Blufin::YmlValidatorBase::FIELD_TYPE_NESTED_DATA,
                :required     => true,
                :section_data => {
                    BLUFIN_TITLE         => {
                        :type     => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                        :required => true
                    },
                    BLUFIN_PARENT        => {
                        :type     => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                        :required => false
                    },
                    DEPENDENCIES_APP     => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            },
                            DEPENDENCIES_TEST_JAR   => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    },
                    DEPENDENCIES_BLUFIN  => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            },
                            DEPENDENCIES_TEST_JAR   => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    },
                    DEPENDENCIES_MVN     => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    }
                }
            },
            APP_INFRASTRUCTURE_SDK_CORE     => {
                :type         => Blufin::YmlValidatorBase::FIELD_TYPE_NESTED_DATA,
                :required     => true,
                :section_data => {
                    BLUFIN_TITLE         => {
                        :type     => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                        :required => true
                    },
                    BLUFIN_PARENT        => {
                        :type     => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                        :required => false
                    },
                    DEPENDENCIES_APP     => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            },
                            DEPENDENCIES_TEST_JAR   => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    },
                    DEPENDENCIES_BLUFIN  => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            },
                            DEPENDENCIES_TEST_JAR   => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    },
                    DEPENDENCIES_MVN     => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    }
                }
            },
            APP_INFRASTRUCTURE_SDK_INTERNAL => {
                :type         => Blufin::YmlValidatorBase::FIELD_TYPE_NESTED_DATA,
                :required     => true,
                :section_data => {
                    BLUFIN_TITLE         => {
                        :type     => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                        :required => true
                    },
                    BLUFIN_PARENT        => {
                        :type     => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                        :required => false
                    },
                    DEPENDENCIES_APP     => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            },
                            DEPENDENCIES_TEST_JAR   => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    },
                    DEPENDENCIES_BLUFIN  => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            },
                            DEPENDENCIES_TEST_JAR   => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    },
                    DEPENDENCIES_MVN     => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    }
                }
            },
            APP_INFRASTRUCTURE_SDK_OAUTH    => {
                :type         => Blufin::YmlValidatorBase::FIELD_TYPE_NESTED_DATA,
                :required     => true,
                :section_data => {
                    BLUFIN_TITLE         => {
                        :type     => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                        :required => true
                    },
                    BLUFIN_PARENT        => {
                        :type     => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                        :required => false
                    },
                    DEPENDENCIES_APP     => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            },
                            DEPENDENCIES_TEST_JAR   => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    },
                    DEPENDENCIES_BLUFIN  => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            },
                            DEPENDENCIES_TEST_JAR   => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    },
                    DEPENDENCIES_MVN     => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    }
                }
            },
            APP_INFRASTRUCTURE_WORKER       => {
                :type         => Blufin::YmlValidatorBase::FIELD_TYPE_NESTED_DATA,
                :required     => true,
                :section_data => {
                    BLUFIN_TITLE         => {
                        :type     => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                        :required => true
                    },
                    BLUFIN_PARENT        => {
                        :type     => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT,
                        :required => false
                    },
                    DEPENDENCIES_APP     => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            },
                            DEPENDENCIES_TEST_JAR   => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    },
                    DEPENDENCIES_BLUFIN  => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            },
                            DEPENDENCIES_TEST_JAR   => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    },
                    DEPENDENCIES_MVN     => {
                        :type         => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                        :required     => false,
                        :section_data => {
                            DEPENDENCIES_USE        => {
                                :type => Blufin::YmlValidatorBase::FIELD_TYPE_TEXT
                            },
                            DEPENDENCIES_EXCLUDE    => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_ARRAY,
                                :required => false
                            },
                            DEPENDENCIES_TEST_SCOPE => {
                                :type     => Blufin::YmlValidatorBase::FIELD_TYPE_BOOLEAN,
                                :required => false
                            }
                        }
                    }
                }
            }
        }
    }
]

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

Instance Method Summary collapse

Methods inherited from YmlValidatorBase

#validate, #validate_single_file

Constructor Details

#initialize(site, error_handler) ⇒ Object

Initialize the class.



746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
# File 'lib/core/yml/maven/yml_maven_validator.rb', line 746

def initialize(site, error_handler)

    @error_handler      = error_handler
    @config_file_blufin = "#{Blufin::Config::get_path('Paths', 'BlufinJava')}/maven.yml"

    unless site.nil?

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

        @config_file_app = "#{Blufin::SiteResolver::get_site_location(@site)}/#{Blufin::YmlMavenValidator::APP_INFRASTRUCTURE}/maven.yml"

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

    end

    # Parse BLUFIN maven.yml.
    error_count_before = @error_handler.get_error_count
    @data              = validate_single_file(site, @config_file_blufin, STRUCTURE_BLUFIN, error_handler)
    return false if @data.nil? || @error_handler.get_error_count > error_count_before
    @data        = @data[@config_file_blufin]
    @data_blufin = validate_yml_file(@config_file_blufin, TYPE_BLUFIN)

    unless site.nil?

        @core_libraries               = nil
        @core_libraries_with_children = nil

        # Parse APP-INFRASTRUCTURE maven.yml.
        error_count_before            = @error_handler.get_error_count
        @data                         = validate_single_file(site, @config_file_app, alter_structure_for_app(STRUCTURE_APP), error_handler)
        return false if @data.nil? || @error_handler.get_error_count > error_count_before
        @data     = @data[@config_file_app]
        @data_app = validate_yml_file(@config_file_app, TYPE_APP)

    end

end

Instance Attribute Details

#data_appObject

Returns the value of attribute data_app.



5
6
7
# File 'lib/core/yml/maven/yml_maven_validator.rb', line 5

def data_app
  @data_app
end

#data_blufinObject

Returns the value of attribute data_blufin.



5
6
7
# File 'lib/core/yml/maven/yml_maven_validator.rb', line 5

def data_blufin
  @data_blufin
end