Sha256: 788f6ccd8e1d1a6f11bfac9d128c2bfacb143c86ffb6caab2a2715cce36066f4

Contents?: true

Size: 681 Bytes

Versions: 43

Compression:

Stored size: 681 Bytes

Contents

module Ddr::Structures
  class ComponentTypeTerm

    CONFIG_FILE = ::File.join(Rails.root, 'config', 'structure_component_type.yml')

    @@lookup = {}

    def self.term(media_type)
      hit = lookup_table.detect { |k,v| media_type =~ k }
      hit.last if hit
    end

    def self.lookup_table
      load_lookup if @@lookup.empty?
      @@lookup
    end

    def self.load_lookup
      config = YAML::load(::File.read(CONFIG_FILE))
      config.each do |type_term, media_types|
        media_types.each do |media_type|
          lookup_key = Regexp.new("\\A#{media_type.gsub('*', '.*')}\\Z")
          @@lookup[lookup_key] = type_term
        end
      end
    end

  end
end

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
ddr-core-1.17.0 lib/ddr/structures/component_type_term.rb
ddr-core-1.16.0 lib/ddr/structures/component_type_term.rb
ddr-core-1.15.0 lib/ddr/structures/component_type_term.rb
ddr-core-1.14.0 lib/ddr/structures/component_type_term.rb
ddr-core-1.13.2 lib/ddr/structures/component_type_term.rb
ddr-core-1.13.1 lib/ddr/structures/component_type_term.rb
ddr-core-1.13.0 lib/ddr/structures/component_type_term.rb
ddr-core-1.12.2 lib/ddr/structures/component_type_term.rb
ddr-core-1.12.1 lib/ddr/structures/component_type_term.rb
ddr-core-1.12.0 lib/ddr/structures/component_type_term.rb
ddr-core-1.11.0 lib/ddr/structures/component_type_term.rb
ddr-core-1.10.0 lib/ddr/structures/component_type_term.rb
ddr-core-1.9.0 lib/ddr/structures/component_type_term.rb
ddr-core-1.8.0 lib/ddr/structures/component_type_term.rb
ddr-core-1.7.0 lib/ddr/structures/component_type_term.rb
ddr-core-1.6.6 lib/ddr/structures/component_type_term.rb
ddr-core-1.6.5 lib/ddr/structures/component_type_term.rb
ddr-core-1.6.4 lib/ddr/structures/component_type_term.rb
ddr-core-1.6.3 lib/ddr/structures/component_type_term.rb
ddr-core-1.6.2 lib/ddr/structures/component_type_term.rb