This method extract only the "Validate.spec" from
        modules that were collected by ConfigReader._get_modules().
        And, this method append "Validate.spec" to raw_specs.
        This method creates a dictionary like the following:
        raw_specs = {
            'redis': (
                "[redis]",
                "host = string(default='127.0.0.1')",
                "port = integer(0, 65535, default=6379)",
                "db = integer(default=0)",
                "charset = string(default='utf-8')",
                "password = string(default=None)"
            ),
            ...
        }

        raw_specs is used by ConfigReader._create_specs().

def _get_raw_specs(self, config):
        """
        This method extract only the "Validate.spec" from
        modules that were collected by ConfigReader._get_modules().
        And, this method append "Validate.spec" to raw_specs.
        This method creates a dictionary like the following:
        raw_specs = {
            'redis': (
                "[redis]",
                "host = string(default='127.0.0.1')",
                "port = integer(0, 65535, default=6379)",
                "db = integer(default=0)",
                "charset = string(default='utf-8')",
                "password = string(default=None)"
            ),
            ...
        }

        raw_specs is used by ConfigReader._create_specs().
        """

        # spec_name is hard-corded
        raw_specs = {}
        spec_name = 'Validator'
        modules = self._get_modules()

        for section, options in config.items():

            if section == 'global':
                continue

            try:
                name = options['module']
            except KeyError:
                raise ConfigMissingValue(section, 'module')

            try:
                spec = getattr(modules[name], spec_name)().spec
                raw_specs[name] = spec
            except KeyError:
                raise NotSupportedError(name)

        return raw_specs