class TokyoMetro::Factory::Generate::Api::MetaClass::Info::Fundamental::ValidityChecker::MetaClass

Public Class Methods

new( h , namespace ) click to toggle source
# File lib/tokyo_metro/factory/generate/api/meta_class/info/fundamental/validity_checker/meta_class.rb, line 3
def initialize( h , namespace )
  @h = h
  @namespace = namespace
  @class_methods_in_toplevel_namespace = @namespace.instance_class.methods.sort
end
process( h , namespace ) click to toggle source
# File lib/tokyo_metro/factory/generate/api/meta_class/info/fundamental/validity_checker/meta_class.rb, line 9
def self.process( h , namespace )
  self.new( h , namespace ).process
end

Public Instance Methods

process() click to toggle source
# File lib/tokyo_metro/factory/generate/api/meta_class/info/fundamental/validity_checker/meta_class.rb, line 13
def process
  class_method_names_and_hash_keys.keys.each do | class_method_name |
    if @class_methods_in_toplevel_namespace.include?( class_method_name )
      convert_elevator_and_escalator( class_method_name )
      raise_error( class_method_name )
    end
  end
end

Private Instance Methods

convert_elevator_and_escalator( class_method_name ) click to toggle source
# File lib/tokyo_metro/factory/generate/api/meta_class/info/fundamental/validity_checker/meta_class.rb, line 24
def convert_elevator_and_escalator( class_method_name )
  valid_value = valid_value_of_hash( class_method_name )
  hash_key = class_method_names_and_hash_keys[ class_method_name ]

  unless @h[ hash_key ] == valid_value
    case valid_value
    when "エレベータ" , "エスカレータ"
      invalid_value = "#{ valid_value }ー"
      if @h[ hash_key ] == invalid_value
        @h[ hash_key ] = valid_value
        # puts "=" * 8 + " ☆ Convert"
        # puts @h[ "owl:sameAs" ]
        # puts "#{ invalid_value } => #{ valid_value }"
        # puts ""
      # elsif @h[ hash_key ] == valid_value
        # puts "-" * 8 + " ○ No convert"
        # puts @h[ "owl:sameAs" ]
        # puts ""
      end

    when "http://vocab.tokyometroapp.jp/context_odpt_StationTimetable.jsonld"
      invalid_value = "http://www.odpt.org/context.jsonld"
      if @h[ hash_key ] == invalid_value
        @h[ hash_key ] = valid_value
      end
    end

  end
end
raise_error( class_method_name ) click to toggle source
# File lib/tokyo_metro/factory/generate/api/meta_class/info/fundamental/validity_checker/meta_class.rb, line 54
def raise_error( class_method_name )
  valid_value = valid_value_of_hash( class_method_name )
  hash_key = class_method_names_and_hash_keys[ class_method_name ]

  if @h[ hash_key ].present? and @h[ hash_key ] != valid_value
    puts "● Error"
    puts @h.to_s
    puts ""
    puts "Error: The value of #{ hash_key } (#{ @h[ hash_key ].to_s } \[#{ @h[ hash_key ].class.name }\], from API) is not valid."
    puts "  It should be \"#{ valid_value }\" \[#{ valid_value.class.name }\]."
    puts "Instance Class: #{ @namespace.instance_class }"
    raise "Error"
  end
end
valid_value_of_hash( class_method_name ) click to toggle source
# File lib/tokyo_metro/factory/generate/api/meta_class/info/fundamental/validity_checker/meta_class.rb, line 69
def valid_value_of_hash( class_method_name )
  @namespace.instance_class.send( class_method_name )
end