Class: Ddr::Contact

Inherits:
Struct
  • Object
show all
Defined in:
app/models/ddr/contact.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#askObject

Returns the value of attribute ask

Returns:

  • (Object)

    the current value of ask



2
3
4
# File 'app/models/ddr/contact.rb', line 2

def ask
  @ask
end

#emailObject

Returns the value of attribute email

Returns:

  • (Object)

    the current value of email



2
3
4
# File 'app/models/ddr/contact.rb', line 2

def email
  @email
end

#nameObject

Returns the value of attribute name

Returns:

  • (Object)

    the current value of name



2
3
4
# File 'app/models/ddr/contact.rb', line 2

def name
  @name
end

#phoneObject

Returns the value of attribute phone

Returns:

  • (Object)

    the current value of phone



2
3
4
# File 'app/models/ddr/contact.rb', line 2

def phone
  @phone
end

#short_nameObject

Returns the value of attribute short_name

Returns:

  • (Object)

    the current value of short_name



2
3
4
# File 'app/models/ddr/contact.rb', line 2

def short_name
  @short_name
end

#slugObject

Returns the value of attribute slug

Returns:

  • (Object)

    the current value of slug



2
3
4
# File 'app/models/ddr/contact.rb', line 2

def slug
  @slug
end

#urlObject

Returns the value of attribute url

Returns:

  • (Object)

    the current value of url



2
3
4
# File 'app/models/ddr/contact.rb', line 2

def url
  @url
end

Class Method Details

.allObject



12
13
14
# File 'app/models/ddr/contact.rb', line 12

def self.all
  keystore.values
end

.call(slug) ⇒ Object



16
17
18
19
20
21
# File 'app/models/ddr/contact.rb', line 16

def self.call(slug)
  keystore.fetch(slug)

rescue KeyError => _
  raise Ddr::NotFoundError, "Contact slug '#{slug}' not found."
end

.configObject



4
5
6
# File 'app/models/ddr/contact.rb', line 4

def self.config
  @config ||= YAML.load_file(::File.expand_path('../../../config/aux/contact.yml', __dir__))
end

.keysObject



23
24
25
# File 'app/models/ddr/contact.rb', line 23

def self.keys
  keystore.keys
end

.keystoreObject



8
9
10
# File 'app/models/ddr/contact.rb', line 8

def self.keystore
  @keystore ||= Hash[config.map { |entry| [entry['slug'], new(entry).freeze] }].freeze
end

Instance Method Details

#to_sObject



27
28
29
# File 'app/models/ddr/contact.rb', line 27

def to_s
  name
end