Method: When::Parts::Resource._setup_

Defined in:
lib/when_exe/parts/resource.rb

._setup_(options = {}) ⇒ void

Note:

本メソッドでマルチスレッド対応の管理変数の初期化を行っている。このため、本メソッド自体はスレッドセーフでない。

This method returns an undefined value.

初期化

Parameters:

  • options (Hash) (defaults to: {})

    以下の通り

Options Hash (options):

  • :base_uri (String)

    Base URI for When_exe Resources (Default When::SourceURI)

  • :additional_namespaces (Hash<String(namespace)=>String(URI)>)

    User defined namespaces (Default {})

  • :root_dir (String)

    Root Directory for When_exe Resources Cash data (Default When::RootDir)

  • :leave_const (Boolean)

    If true, leave Constants of When module defined



287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
# File 'lib/when_exe/parts/resource.rb', line 287

def _setup_(options={})
  super()
  @_prefix = {
    '_wp'  => 'https://en.wikipedia.org/wiki/',
    '_w'   => base_uri + '/',
    '_p'   => base_uri + 'Parts/',
    '_b'   => base_uri + 'BasicTypes/',
    '_m'   => base_uri + 'BasicTypes/M17n/',
    '_co'  => base_uri + 'Coordinates/',
    '_l'   => base_uri + 'Coordinates/Spatial?',
    '_v'   => base_uri + 'V/',
    '_rs'  => base_uri + 'RS/',
    '_ex'  => base_uri + 'EX/',
    '_tm'  => base_uri + 'TM/',
    '_e'   => base_uri + 'TM/CalendarEra/',
    '_t'   => base_uri + 'TimeStandard/',
    '_ep'  => base_uri + 'Ephemeris/',
    '_c'   => base_uri + 'CalendarTypes/',
    '_n'   => base_uri + 'CalendarNote/',
    '_sc'  => base_uri + 'Ephemeris/V50/'
  }
  @base_uri       = options[:base_uri] || When::SourceURI
  @root_dir       = options[:root_dir] || When::RootDir
  @_prefix        = options[:additional_namespaces].merge(@_prefix) if options[:additional_namespaces].kind_of?(Hash)
  @_prefix_values = @_prefix.values.sort.reverse
  @_prefix_index  = @_prefix.invert
  unless options[:leave_const] || ConstList.empty?
    ConstList.delete_if do |constant|
      When.send(:remove_const, constant) if When.const_defined?(constant)
      true
    end
    When._define_common_calendar_types
  end
end