Module: MagicReport::Utils

Defined in:
lib/magic_report/utils.rb

Class Method Summary collapse

Class Method Details

.derive_class(opts, &block) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/magic_report/utils.rb', line 16

def derive_class(opts, &block)
  if block
    raise "name option must be provided" unless opts[:name]

    cloned_klass = ::MagicReport::Report.clone
    cloned_klass.define_singleton_method(:name) { opts[:name] }
    cloned_klass.class_eval(&block)
    cloned_klass
  else
    opts[:class]
  end
end

.t(name:, key:) ⇒ Object

Parameters:

  • name

    is the report name



31
32
33
# File 'lib/magic_report/utils.rb', line 31

def t(name:, key:)
  I18n.translate!("magic_report.#{name}.#{key}")
end

.underscore(klass) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'lib/magic_report/utils.rb', line 5

def underscore(klass)
  return "ded" unless klass

  klass.gsub(/::/, "/")
    .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
    .gsub(/([a-z\d])([A-Z])/, '\1_\2')
    .tr("-", "_")
    .tr("/", ".")
    .downcase
end