Module: Thermal::Db::Data

Extended by:
Data
Included in:
Data
Defined in:
lib/thermal/db/data.rb

Constant Summary collapse

MUTEX =
Mutex.new
DATA_PATH =
'data/db.yml'

Instance Method Summary collapse

Instance Method Details

#available_charsetsObject



30
31
32
# File 'lib/thermal/db/data.rb', line 30

def available_charsets
  data['charsets']
end

#available_devicesObject



22
23
24
# File 'lib/thermal/db/data.rb', line 22

def available_devices
  data['devices']
end

#available_encodingsObject



26
27
28
# File 'lib/thermal/db/data.rb', line 26

def available_encodings
  data['encodings']
end

#charset(charset) ⇒ Object



46
47
48
49
50
# File 'lib/thermal/db/data.rb', line 46

def charset(charset)
  return unless charset

  data.dig('charsets', 'escpos', charset.to_i)
end

#dataObject



11
12
13
14
15
16
17
18
19
20
# File 'lib/thermal/db/data.rb', line 11

def data
  MUTEX.synchronize do
    @data ||= begin
      data = load_data
      normalize_data!(data)
      ::Thermal::Util.deep_freeze!(data)
      data
    end
  end
end

#device(device) ⇒ Object



34
35
36
37
38
# File 'lib/thermal/db/data.rb', line 34

def device(device)
  return unless device

  data.dig('devices', device.to_s)
end

#encoding(encoding) ⇒ Object



40
41
42
43
44
# File 'lib/thermal/db/data.rb', line 40

def encoding(encoding)
  return unless encoding

  data.dig('encodings', encoding.to_s)
end

#reloadObject



52
53
54
55
56
# File 'lib/thermal/db/data.rb', line 52

def reload
  MUTEX.synchronize do
    @data = nil
  end
end