module CityPicker

Constants

VERSION

Public Class Methods

data() click to toggle source
# File lib/city_picker.rb, line 5
def data
  unless @list
    # Rails.logger.info "========= LIST  #{Time.now}"
    @list = JSON.parse(File.read("#{Engine.root}/db/data.json"))
  end
  @list
end
get_address(codes = []) click to toggle source
# File lib/city_picker.rb, line 28
def get_address(codes = [])
  address = []
  codes.each do |code|
    address << get_by_code(code)
  end
  address.join('')
end
get_by_code(code) click to toggle source
# File lib/city_picker.rb, line 23
def get_by_code(code)
  values = data.values.flatten
  get(values, code)
end
list(type, code) click to toggle source
# File lib/city_picker.rb, line 18
def list(type, code)
  result = list_data(type, code)
  get_data(result)
end
list_data(type, code) click to toggle source
# File lib/city_picker.rb, line 13
def list_data(type, code)
  result = data[type]
  result.select{|a| a if a['parent'] == code} if type != 'province'
end

Private Class Methods

get(values, code) click to toggle source
# File lib/city_picker.rb, line 38
def get(values, code)
  result = values.detect{|a| a if a['code'] == code}
  result.nil? ? nil : result['name']
end
get_data(arr = []) click to toggle source
# File lib/city_picker.rb, line 43
def get_data(arr = [])
  data = {}
  arr.each do |item|
    data[item['code']] = item['name']
  end
  data
end