Class: Gtk2PasswordApp::Account

Inherits:
Object
  • Object
show all
Defined in:
lib/gtk2passwordapp/account.rb

Constant Summary collapse

PASSWORD =
0
PREVIOUS =
1
USERNAME =
2
URL =
3
NOTE =
4
UPDATED =
5

Instance Method Summary collapse

Constructor Details

#initialize(name, data) ⇒ Account

Returns a new instance of Account.



11
12
13
14
15
16
17
# File 'lib/gtk2passwordapp/account.rb', line 11

def initialize(name, data)
  unless data.has_key?(name)
    raise "Account name must be a non-empty String." unless name.class==String and name.length > 0
    data[name] = [ '', '', '', '', '', 0 ]
  end
  @name, @data = name, data[name]
end

Instance Method Details

#nameObject

READERS ###



21
22
23
# File 'lib/gtk2passwordapp/account.rb', line 21

def name
  @name
end

#noteObject



41
42
43
# File 'lib/gtk2passwordapp/account.rb', line 41

def note
  @data[NOTE]
end

#note=(note) ⇒ Object



60
61
62
# File 'lib/gtk2passwordapp/account.rb', line 60

def note=(note)
  @data[NOTE]=note
end

#passwordObject



25
26
27
# File 'lib/gtk2passwordapp/account.rb', line 25

def password
  @data[PASSWORD]
end

#password=(password) ⇒ Object

WRITTERS ###



51
52
53
54
55
56
57
58
# File 'lib/gtk2passwordapp/account.rb', line 51

def password=(password)
  raise 'Password must be all graph.' unless password=~/^[[:graph:]]+$/
  if @data[PASSWORD] != password
    @data[UPDATED] = Time.now.to_i
    @data[PREVIOUS] = @data[PASSWORD]
    @data[PASSWORD] = password
  end
end

#previousObject



29
30
31
# File 'lib/gtk2passwordapp/account.rb', line 29

def previous
  @data[PREVIOUS]
end

#updatedObject



45
46
47
# File 'lib/gtk2passwordapp/account.rb', line 45

def updated
  @data[UPDATED]
end

#urlObject



37
38
39
# File 'lib/gtk2passwordapp/account.rb', line 37

def url
  @data[URL]
end

#url=(url) ⇒ Object



69
70
71
72
# File 'lib/gtk2passwordapp/account.rb', line 69

def url=(url)
  raise 'Must be like http://site' unless url=='' or url=~/^\w+:\/\/\S+$/
  @data[URL]=url
end

#usernameObject



33
34
35
# File 'lib/gtk2passwordapp/account.rb', line 33

def username
  @data[USERNAME]
end

#username=(username) ⇒ Object



64
65
66
67
# File 'lib/gtk2passwordapp/account.rb', line 64

def username=(username)
  raise 'Username must be all graph.' unless username=~/^[[:graph:]]*$/
  @data[USERNAME]=username
end