Class: Libis::Format::TypeDatabase
- Inherits:
-
Object
- Object
- Libis::Format::TypeDatabase
- Defined in:
- lib/libis/format/type_database.rb
Overview
noinspection RubyClassVariableUsageInspection
Class Method Summary collapse
- .enrich(info, map_keys = {}) ⇒ Object
- .export_csv(filename, **options) ⇒ Object
- .ext_infos(ext) ⇒ Object
- .ext_types(ext) ⇒ Object
- .get(type_name, key) ⇒ Object
- .group_types(group) ⇒ Object
- .groups ⇒ Object
- .implementation(impl) ⇒ Object
- .known_mime?(mime) ⇒ Boolean
- .mime_groups(mime) ⇒ Object
- .mime_infos(mime) ⇒ Object
- .mime_types(mime) ⇒ Object
- .normalize(info, map_keys = {}) ⇒ Object
- .puid_groups(puid) ⇒ Object
- .puid_infos(puid) ⇒ Object
- .puid_typeinfo(puid) ⇒ Object
- .puid_types(puid) ⇒ Object
- .type_extentions(ftype) ⇒ Object
- .type_group(ftype) ⇒ Object
- .type_mimetypes(ftype) ⇒ Object
- .type_puids(ftype) ⇒ Object
- .typeinfo(ftype) ⇒ Object
Class Method Details
.enrich(info, map_keys = {}) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/libis/format/type_database.rb', line 16 def self.enrich(info, map_keys = {}) return {} unless info.is_a? Hash mapper = Hash.new { |hash, key| hash[key] = key } mapper.merge! map_keys unless (puid = info[mapper[:PUID]]).blank? info[mapper[:TYPE]] ||= begin puid_infos(puid).first[:TYPE] rescue StandardError nil end end unless (mime = info[mapper[:MIME]]).blank? info[mapper[:TYPE]] ||= begin mime_infos(mime).first[:TYPE] rescue StandardError nil end end unless (type_name = info[mapper[:TYPE]]).nil? mapper.each_key do |key| info[mapper[key]] = get(type_name, key) || info[mapper[key]] end info[mapper[:GROUP]] = type_group(type_name) end info end |
.export_csv(filename, **options) ⇒ Object
151 152 153 |
# File 'lib/libis/format/type_database.rb', line 151 def self.export_csv(filename, **) @implementation.export_csv(filename, **) end |
.ext_infos(ext) ⇒ Object
131 132 133 |
# File 'lib/libis/format/type_database.rb', line 131 def self.ext_infos(ext) @implementation.ext_infos(ext) end |
.ext_types(ext) ⇒ Object
135 136 137 |
# File 'lib/libis/format/type_database.rb', line 135 def self.ext_types(ext) @implementation.ext_types(ext) end |
.get(type_name, key) ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/libis/format/type_database.rb', line 70 def self.get(type_name, key) case key when :MIME type_mimetypes(type_name).first when :PUID type_puids(type_name).first when :EXTENSION type_extentions(type_name).first else typeinfo(type_name)[key] end end |
.group_types(group) ⇒ Object
103 104 105 |
# File 'lib/libis/format/type_database.rb', line 103 def self.group_types(group) @implementation.group_types(group) end |
.groups ⇒ Object
147 148 149 |
# File 'lib/libis/format/type_database.rb', line 147 def self.groups @implementation.groups end |
.implementation(impl) ⇒ Object
12 13 14 |
# File 'lib/libis/format/type_database.rb', line 12 def self.implementation(impl) @implementation = impl end |
.known_mime?(mime) ⇒ Boolean
143 144 145 |
# File 'lib/libis/format/type_database.rb', line 143 def self.known_mime?(mime) @implementation.known_mime?(mime) end |
.mime_groups(mime) ⇒ Object
127 128 129 |
# File 'lib/libis/format/type_database.rb', line 127 def self.mime_groups(mime) mime_types(mime).map(&method(:type_group)) end |
.mime_infos(mime) ⇒ Object
119 120 121 |
# File 'lib/libis/format/type_database.rb', line 119 def self.mime_infos(mime) @implementation.mime_infos(mime) end |
.mime_types(mime) ⇒ Object
123 124 125 |
# File 'lib/libis/format/type_database.rb', line 123 def self.mime_types(mime) @implementation.mime_types(mime) end |
.normalize(info, map_keys = {}) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/libis/format/type_database.rb', line 44 def self.normalize(info, map_keys = {}) return {} unless info.is_a? Hash mapper = Hash.new { |hash, key| hash[key] = key } mapper.merge! map_keys unless (puid = info[mapper[:PUID]]).blank? info[mapper[:TYPE]] ||= begin puid_infos(puid).first[:TYPE] rescue StandardError nil end end unless (mime = info[mapper[:MIME]]).blank? info[mapper[:TYPE]] ||= begin mime_infos(mime).first[:TYPE] rescue StandardError nil end end unless (type_name = info[mapper[:TYPE]]).nil? info[mapper[:MIME]] = type_mimetypes(type_name).first if type_mimetypes(type_name).first info[mapper[:GROUP]] = type_group(type_name) end info end |
.puid_groups(puid) ⇒ Object
115 116 117 |
# File 'lib/libis/format/type_database.rb', line 115 def self.puid_groups(puid) puid_types(puid).map(&method(:type_group)) end |
.puid_infos(puid) ⇒ Object
107 108 109 |
# File 'lib/libis/format/type_database.rb', line 107 def self.puid_infos(puid) @implementation.puid_infos(puid) end |
.puid_typeinfo(puid) ⇒ Object
139 140 141 |
# File 'lib/libis/format/type_database.rb', line 139 def self.puid_typeinfo(puid) @implementation.puid_typeinfo(puid) end |
.puid_types(puid) ⇒ Object
111 112 113 |
# File 'lib/libis/format/type_database.rb', line 111 def self.puid_types(puid) @implementation.puid_types(puid) end |
.type_extentions(ftype) ⇒ Object
95 96 97 |
# File 'lib/libis/format/type_database.rb', line 95 def self.type_extentions(ftype) typeinfo(ftype)[:EXTENSIONS] || [] end |
.type_group(ftype) ⇒ Object
83 84 85 |
# File 'lib/libis/format/type_database.rb', line 83 def self.type_group(ftype) typeinfo(ftype)[:GROUP] end |
.type_mimetypes(ftype) ⇒ Object
87 88 89 |
# File 'lib/libis/format/type_database.rb', line 87 def self.type_mimetypes(ftype) typeinfo(ftype)[:MIME] || [] end |
.type_puids(ftype) ⇒ Object
91 92 93 |
# File 'lib/libis/format/type_database.rb', line 91 def self.type_puids(ftype) typeinfo(ftype)[:PUID] || [] end |
.typeinfo(ftype) ⇒ Object
99 100 101 |
# File 'lib/libis/format/type_database.rb', line 99 def self.typeinfo(ftype) @implementation.typeinfo(ftype) end |