class Keepassx::Entry
Attributes
group[R]
Public Class Methods
extract_from_payload(header, payload)
click to toggle source
# File lib/keepassx/entry.rb, line 59 def extract_from_payload(header, payload) entries = [] header.entries_count.times { entries << Entry.new(payload) } entries end
new(payload)
click to toggle source
Calls superclass method
# File lib/keepassx/entry.rb, line 38 def initialize(payload) super do # Do some validation raise ArgumentError, "'name' is required (type: string)" unless valid_string?(payload[:name]) raise ArgumentError, "'group_id' is required (type: integer)" unless payload[:group] || valid_integer?(payload[:group_id]) # First set @group and @group_id. # Remove key from payload to not interfere with KeePassX fields format self.group = payload.delete(:group) # Add group_id key to respect KeePassX fields format payload[:group_id] = group.id # Build list of fields @fields = build_payload(payload) end end
Public Instance Methods
group=(value)
click to toggle source
# File lib/keepassx/entry.rb, line 68 def group=(value) raise ArgumentError, "Expected Keepassx::Group, got #{value.class}" unless value.is_a?(Keepassx::Group) self.group_id = value.id @group = value end
Private Instance Methods
default_fields()
click to toggle source
rubocop:disable Metrics/MethodLength
# File lib/keepassx/entry.rb, line 80 def default_fields @default_fields ||= { id: SecureRandom.uuid.gsub('-', ''), group_id: nil, icon: 1, name: nil, url: nil, username: nil, password: nil, notes: nil, creation_time: Time.now, last_mod_time: Time.now, last_acc_time: Time.now, expiration_time: Time.local(2999, 12, 28, 23, 59, 59), binary_desc: nil, binary_data: nil, terminator: nil, } end
exclusion_list()
click to toggle source
Calls superclass method
# File lib/keepassx/entry.rb, line 108 def exclusion_list super.concat(%w[binary_desc binary_data]) end
group_id=(value)
click to toggle source
Keep this method private in order to avoid group/group_id divergence
# File lib/keepassx/entry.rb, line 103 def group_id=(value) set :group_id, value end