class TokyoMetro::Factory::Seed::Static::Station::Info

Private Instance Methods

create_and_get_pattern_id( pattern ) click to toggle source
# File lib/tokyo_metro/factory/seed/static/station/info.rb, line 134
def create_and_get_pattern_id( pattern )
  ::StoppingPattern.find_or_create_by( same_as: pattern ).id
end
create_station()
Alias for: seed_main
create_station_facility_info() click to toggle source
# File lib/tokyo_metro/factory/seed/static/station/info.rb, line 46
def create_station_facility_info
  ::StationFacility::Info.find_or_create_by( same_as: @info.station_facility_info )
end
hash_for_updating_db() click to toggle source
# File lib/tokyo_metro/factory/seed/static/station/info.rb, line 50
def hash_for_updating_db
  h = ::Hash.new
  [ :name_hira , :name_in_system , :name_en , :index_in_railway_line ].each do | key_name |
    h[ key_name ] = @info.send( key_name )
  end
  h
end
hash_to_db() click to toggle source
# File lib/tokyo_metro/factory/seed/static/station/info.rb, line 58
def hash_to_db
  h = ::Hash.new

  h[ :station_facility_info_id ] = station_facility_info_id
  h[ :railway_line_id ] = @railway_line_id
  h[ :operator_id ] = ::RailwayLine.find( @railway_line_id ).operator_id

  [
    :name_ja , :name_hira , :name_in_system , :name_en , :index_in_railway_line ,
    :station_code , :same_as
  ].each do | key_name |
    h[ key_name ] = @info.send( key_name )
  end

  h
end
seed_main() click to toggle source
# File lib/tokyo_metro/factory/seed/static/station/info.rb, line 15
def seed_main
  if station_info_already_exists_in_db?
    update_station_info
  else
    unless station_facility_info_already_exists_in_db?
      create_station_facility_info
    end
    create_station
  end
end
Also aliased as: create_station
seed_normal_stopping_patterns( s_id ) click to toggle source
# File lib/tokyo_metro/factory/seed/static/station/info.rb, line 138
def seed_normal_stopping_patterns( s_id )
  @info.stop.each do | pattern |
    p_id = create_and_get_pattern_id( pattern )
    ::StationStoppingPattern.find_or_create_by(
      station_info_id: s_id ,
      stopping_pattern_id: p_id ,
      partial: false ,
      for_driver: false
    )
  end
end
seed_normal_stopping_patterns_for_drivers( s_id ) click to toggle source
# File lib/tokyo_metro/factory/seed/static/station/info.rb, line 166
def seed_normal_stopping_patterns_for_drivers( s_id )
  if @info.stop_for_drivers.present?
    @info.stop_for_drivers.each do | pattern |
      p_id = create_and_get_pattern_id( pattern )
      ::StationStoppingPattern.find_or_create_by(
        station_info_id: s_id ,
        stopping_pattern_id: p_id ,
        partial: false ,
        for_driver: true
      )
    end
  end
end
seed_normal_stopping_patterns_of_some_trains( s_id ) click to toggle source
# File lib/tokyo_metro/factory/seed/static/station/info.rb, line 150
def seed_normal_stopping_patterns_of_some_trains( s_id )
  if @info.some_trains_stop.present?
    @info.some_trains_stop.each do | pattern , note |
      p_id = create_and_get_pattern_id( pattern )
      note_id = ::StationStoppingPatternNote.find_or_create_by( text: note ).id
      ::StationStoppingPattern.find_or_create_by(
        station_info_id: s_id ,
        stopping_pattern_id: p_id ,
        partial: true ,
        for_driver: false ,
        station_stopping_pattern_note_id: note_id
      )
    end
  end
end
seed_optional_infos() click to toggle source
# File lib/tokyo_metro/factory/seed/static/station/info.rb, line 26
def seed_optional_infos
  # StationNameAlias , 停車駅の処理
  seed_station_name_alias
  seed_station_facility_custom

  seed_stopping_patterns
end
seed_station_facility_custom() click to toggle source
# File lib/tokyo_metro/factory/seed/static/station/info.rb, line 108
def seed_station_facility_custom
  if @info.station_facility_custom.present?
    ary_of_station_facility_name_alias = [ @info.station_facility_custom ].flatten
    if @info.station_facility_custom_alias.present?
      ary_of_station_facility_name_alias += [ @info.station_facility_custom_alias ].flatten
    end
    sf_id = station_facility_info_id
    ary_of_station_facility_name_alias.each.with_index(1) do | station_facility_name_alias , i |
      h = {
        station_facility_info_id: sf_id ,
        index_of_alias: i ,
        same_as: station_facility_name_alias
      }
      ::StationFacility::NameAlias.find_or_create_by(h)
    end
  end
end
seed_stopping_patterns() click to toggle source
# File lib/tokyo_metro/factory/seed/static/station/info.rb, line 126
def seed_stopping_patterns
  s_id = station_info_id

  seed_normal_stopping_patterns( s_id )
  seed_normal_stopping_patterns_of_some_trains( s_id )
  seed_normal_stopping_patterns_for_drivers( s_id )
end
station_facility_info_already_exists_in_db?() click to toggle source
# File lib/tokyo_metro/factory/seed/static/station/info.rb, line 38
def station_facility_info_already_exists_in_db?
  ::StationFacility::Info.exists?( same_as: @info.station_facility_info )
end
station_info_already_exists_in_db?() click to toggle source
# File lib/tokyo_metro/factory/seed/static/station/info.rb, line 34
def station_info_already_exists_in_db?
  ::Station::Info.exists?( same_as: @info.same_as )
end
station_name_alias() click to toggle source
# File lib/tokyo_metro/factory/seed/static/station/info.rb, line 99
def station_name_alias
  s_id = station_info_id
  if @info.station_name_alias.present?
    [ @info.station_name_alias ].flatten.each do | station_name_alias |
      ::Station::NameAlias.find_or_create_by( station_info_id: s_id , same_as: station_name_alias )
    end
  end
end
update_station_info() click to toggle source
# File lib/tokyo_metro/factory/seed/static/station/info.rb, line 42
def update_station_info
  ::Station::Info.find_by( same_as: @info.same_as ).update( hash_for_updating_db )
end