Class: Nuntius::Configuration

Inherits:
Object
  • Object
show all
Includes:
Options
Defined in:
lib/nuntius/configuration.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Options

included, #set_defaults!

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/nuntius/configuration.rb', line 57

def initialize
  set_defaults!

  @nuntiable_classes = []
  @nuntiable_class_names = []
  @transports = []
  @providers = {}
  @visible_scope = -> { all }
  @add_metadata = -> {}
  @metadata_fields = {}
  @metadata_humanize = ->(data) { data.inspect }
  @default_template_scope = ->(_object) { all }
  @default_params = {}
end

Instance Attribute Details

#add_metadataObject

Returns the value of attribute add_metadata.



52
53
54
# File 'lib/nuntius/configuration.rb', line 52

def 
  @add_metadata
end

#default_params(event, record) ⇒ Object



101
102
103
# File 'lib/nuntius/configuration.rb', line 101

def default_params(event, record)
  @default_params.is_a?(Proc) ? instance_exec(event, record, &@default_params) : @default_params
end

#default_template_scopeObject

Returns the value of attribute default_template_scope.



52
53
54
# File 'lib/nuntius/configuration.rb', line 52

def default_template_scope
  @default_template_scope
end

#flow_color(template_id) ⇒ Object



105
106
107
# File 'lib/nuntius/configuration.rb', line 105

def flow_color(template_id)
  @flow_color.is_a?(Proc) ? instance_exec(template_id, &@flow_color) : @flow_color
end

#metadata_fieldsObject

Returns the value of attribute metadata_fields.



52
53
54
# File 'lib/nuntius/configuration.rb', line 52

def 
  @metadata_fields
end

#metadata_humanize(metadata) ⇒ Object

Make the part that is important for visible readable for humans



73
74
75
# File 'lib/nuntius/configuration.rb', line 73

def ()
  @metadata_humanize.is_a?(Proc) ? instance_exec(, &@metadata_humanize) : @metadata_humanize
end

#providersObject (readonly)

Returns the value of attribute providers.



55
56
57
# File 'lib/nuntius/configuration.rb', line 55

def providers
  @providers
end

#transportsObject (readonly)

Returns the value of attribute transports.



55
56
57
# File 'lib/nuntius/configuration.rb', line 55

def transports
  @transports
end

#visible_scopeObject

Returns the value of attribute visible_scope.



52
53
54
# File 'lib/nuntius/configuration.rb', line 52

def visible_scope
  @visible_scope
end

Instance Method Details

#add_nuntiable_class(klass) ⇒ Object



77
78
79
80
# File 'lib/nuntius/configuration.rb', line 77

def add_nuntiable_class(klass)
  @nuntiable_class_names = []
  @nuntiable_classes << klass.to_s unless @nuntiable_classes.include?(klass.to_s)
end

#nuntiable_class_namesObject



82
83
84
85
86
# File 'lib/nuntius/configuration.rb', line 82

def nuntiable_class_names
  return @nuntiable_class_names if @nuntiable_class_names.present?

  compile_nuntiable_class_names!
end

#provider(provider, transport:, priority: 1, timeout: 0, settings: {}) ⇒ Object



88
89
90
91
92
93
94
95
# File 'lib/nuntius/configuration.rb', line 88

def provider(provider, transport:, priority: 1, timeout: 0, settings: {})
  if @transports.include? transport
    @providers[transport.to_sym] ||= []
    @providers[transport.to_sym].push(provider: provider, priority: priority, timeout: timeout, settings: settings)
  else
    Nuntius.config.logger.call.warn "provider #{provider} not enabled as transport #{transport} is not enabled"
  end
end

#transport(transport) ⇒ Object



97
98
99
# File 'lib/nuntius/configuration.rb', line 97

def transport(transport)
  @transports.push(transport) if transport
end