Class: UserQ::Entry

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(code) ⇒ Entry

Returns a new instance of Entry.



81
82
83
84
85
86
87
# File 'lib/userq.rb', line 81

def initialize code
  self.entry = UserQ::UserQueue.find_by_code(self.code = code)
  raise "Entry code #{code} not valid" if self.entry.count == 0

  # Woohoo!
  self.entry = self.entry.first
end

Instance Attribute Details

#codeObject

Returns the value of attribute code.



79
80
81
# File 'lib/userq.rb', line 79

def code
  @code
end

#entryObject

Returns the value of attribute entry.



79
80
81
# File 'lib/userq.rb', line 79

def entry
  @entry
end

Instance Method Details

#aliveObject



144
145
146
# File 'lib/userq.rb', line 144

def alive
  entry.created_at - UserQ::Internal.current_time
end

#alive?Boolean

Opposite of expired?

Returns:

  • (Boolean)


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

def alive? # Opposite of expired?
  entry.expires_at >= UserQ::Internal.current_time
end

#dataObject



148
149
150
# File 'lib/userq.rb', line 148

def data
  entry.data || Hash.new
end

#expireObject



106
107
108
109
110
# File 'lib/userq.rb', line 106

def expire
  entry.expires_at = UserQ::Internal.current_time - 1
  entry.save
  true
end

#expired?Boolean

Returns:

  • (Boolean)


93
94
95
# File 'lib/userq.rb', line 93

def expired?
  entry.expires_at < UserQ::Internal.current_time
end

#expiresObject



101
102
103
104
# File 'lib/userq.rb', line 101

def expires
  expires = (entry.expires_at - UserQ::Internal.current_time).floor
  expires > -1 ? expires : -1
end

#extend(seconds) ⇒ Object



132
133
134
135
136
137
138
139
140
141
142
# File 'lib/userq.rb', line 132

def extend seconds

  if entry.expires_at < UserQ::Internal.current_time
    entry.expires_at = UserQ::Internal.current_time + seconds
  else
    entry.expires_at += seconds
  end

  entry.save
  expires
end

#removeObject



112
113
114
115
116
117
# File 'lib/userq.rb', line 112

def remove
  entry.destroy
  entry = nil
  code = nil
  true
end

#removed?Boolean

Returns:

  • (Boolean)


119
120
121
122
# File 'lib/userq.rb', line 119

def removed?
  true if entry.nil? or code.nil?
  false
end

#shorten(seconds) ⇒ Object



124
125
126
127
128
129
130
# File 'lib/userq.rb', line 124

def shorten seconds

  entry.expires_at -= seconds if entry.expires_at >= UserQ::Internal.current_time
  entry.save

  expires
end

#valid_context?(context) ⇒ Boolean

Returns:

  • (Boolean)


89
90
91
# File 'lib/userq.rb', line 89

def valid_context? context
  entry.context == context
end