class ConfigKit::ConfigData

Public Class Methods

new(config_data, name, api_version='v1.0', kind='config_kit') click to toggle source
Calls superclass method
# File lib/config_kit/config_data.rb, line 11
def initialize(config_data, name, api_version='v1.0', kind='config_kit')
  
  @defined_api_version=api_version
  @defined_kind = kind

  @metadata_required_fields = ['api_version', 'kind']
  @data_required_fields = ['version', 'namespace']
  @config_data = config_data
  @name = name
  check_metadata
  check_data
  @binded_data = binding_data
  super(@binded_data)
end

Public Instance Methods

api_version() click to toggle source
# File lib/config_kit/config_data.rb, line 84
def api_version
  @config_data['api_version']
end
binding_data() click to toggle source

/v1/config_kit/axle/v1.0/database => mysql

# File lib/config_kit/config_data.rb, line 58
def binding_data
  binding_kind
end
binding_kind() click to toggle source
# File lib/config_kit/config_data.rb, line 50
def binding_kind
  { kind => binding_name }
end
binding_name() click to toggle source
# File lib/config_kit/config_data.rb, line 46
def binding_name
  { @name => binding_version }
end
binding_version() click to toggle source
# File lib/config_kit/config_data.rb, line 42
def binding_version
  { data_version => data }
end
check_data() click to toggle source
# File lib/config_kit/config_data.rb, line 26
def check_data
  raise DataError, 'Config Kit Support Hash Data Formate ONLY.' unless data.is_a?(Hash)
  @data_required_fields.each do |f|
    raise DataMissingRequireFieldError,"Config Kit Raw data missing require field #{f} " unless data.has_key?(f)
  end
end
check_metadata() click to toggle source
# File lib/config_kit/config_data.rb, line 33
def check_metadata
  raise MetadataError, 'Config Kit Support Hash Data Formate ONLY.' unless @config_data.is_a?(Hash)
  @metadata_required_fields.each do |f|
    raise MetadataMissingRequireFieldError,"Config Kit Meta data missing require field #{f} " unless @config_data.has_key?(f)
  end
  raise MetadataError, "Config Kit API Version metadata mis-match #{@config_data['api_version']}." unless support_api?
  raise MetadataError, "Config Kit Kind metadate mis-match #{@config_data['kind']}." unless same_kind?
end
data() click to toggle source
# File lib/config_kit/config_data.rb, line 80
def data
  @config_data && @config_data[@name]
end
data_cs() click to toggle source
# File lib/config_kit/config_data.rb, line 76
def data_cs
  nil
end
data_version() click to toggle source
# File lib/config_kit/config_data.rb, line 70
def data_version
  _version = @config_data && @config_data[@name] && @config_data[@name]['version']
  version = _version[0] == 'v' ? _version : "v#{_version}"
  version
end
kind() click to toggle source
# File lib/config_kit/config_data.rb, line 88
def kind
  @config_data['kind']
end
same_kind?() click to toggle source
# File lib/config_kit/config_data.rb, line 62
def same_kind?
  @defined_kind == kind  
end
support_api?() click to toggle source
# File lib/config_kit/config_data.rb, line 66
def support_api?
  @defined_api_version == api_version
end