Class: Circuitdata::Profile

Inherits:
Object
  • Object
show all
Defined in:
lib/circuitdata/profile.rb

Constant Summary collapse

BASIC_PROFILE_STRUCTURE =
{
  open_trade_transfer_package: {
    version: SCHEMA_VERSION,
    profiles: {
      default: {circuitdata: {version: SCHEMA_VERSION}},
      restricted: {circuitdata: {version: SCHEMA_VERSION}},
      enforced: {circuitdata: {version: SCHEMA_VERSION}},
    },
  },
}

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data:) ⇒ Profile

Returns a new instance of Profile.



17
18
19
# File 'lib/circuitdata/profile.rb', line 17

def initialize(data:)
  @data = data
end

Class Method Details

.questionsObject



13
14
15
# File 'lib/circuitdata/profile.rb', line 13

def self.questions
  Schema.profile_questions
end

Instance Method Details

#dataObject



21
22
23
# File 'lib/circuitdata/profile.rb', line 21

def data
  @data ||= setup_basic_data
end

#profile_dataObject



25
26
27
# File 'lib/circuitdata/profile.rb', line 25

def profile_data
  data.dig(:open_trade_transfer_package, :profiles)
end

#question_answer(path) ⇒ Object



29
30
31
32
# File 'lib/circuitdata/profile.rb', line 29

def question_answer(path)
  path = path.map { |p| p.is_a?(String) ? p.to_sym : p }
  profile_data.dig(*path)
end

#set_question_answer(path, value) ⇒ Object



34
35
36
37
38
# File 'lib/circuitdata/profile.rb', line 34

def set_question_answer(path, value)
  path = path.map { |p| p.is_a?(String) ? p.to_sym : p }
  return if value.nil? && question_answer(path).nil?
  Bury.bury(profile_data, *path, value)
end