Class: AocCli::Database::Stats::Complete
- Inherits:
-
Init
- Object
- Init
- AocCli::Database::Stats::Complete
show all
- Defined in:
- lib/aoc_cli/database.rb
Instance Attribute Summary collapse
Attributes inherited from Init
#day, #db, #now, #part, #user, #year
Instance Method Summary
collapse
Methods inherited from Init
#cols, #data, #init
Constructor Details
#initialize(u: Metafile.get(:user), y: Metafile.get(:year), d: Metafile.get(:day), p: Metafile.get(:part), n:) ⇒ Complete
Returns a new instance of Complete.
129
130
131
132
133
134
135
136
|
# File 'lib/aoc_cli/database.rb', line 129
def initialize(u:Metafile.get(:user),
y:Metafile.get(:year),
d:Metafile.get(:day),
p:Metafile.get(:part),
n:)
super(u:u, y:y, d:d, p:p)
@n_attempts = n
end
|
Instance Attribute Details
#n_attempts ⇒ Object
Returns the value of attribute n_attempts.
128
129
130
|
# File 'lib/aoc_cli/database.rb', line 128
def n_attempts
@n_attempts
end
|
Instance Method Details
#dl_time ⇒ Object
158
159
160
161
162
|
# File 'lib/aoc_cli/database.rb', line 158
def dl_time
@dl_time ||= Time.parse(db
.select(t:"stats", cols:"dl_time", where:where)
.flatten.first)
end
|
#elapsed ⇒ Object
151
152
153
|
# File 'lib/aoc_cli/database.rb', line 151
def elapsed
@elapsed ||= hms(now - dl_time)
end
|
#hms(seconds) ⇒ Object
154
155
156
157
|
# File 'lib/aoc_cli/database.rb', line 154
def hms(seconds)
[seconds/3600, seconds/60 % 60, seconds % 60]
.map{|t| t.to_i.to_s.rjust(2, "0")}.join(":")
end
|
#update ⇒ Object
137
138
139
|
# File 'lib/aoc_cli/database.rb', line 137
def update
db.update(t:"stats", val:val, where:where)
end
|
#val ⇒ Object
140
141
142
143
144
145
|
# File 'lib/aoc_cli/database.rb', line 140
def val
{ elapsed: "'#{elapsed}'",
end_time: "'#{now}'",
attempts: "'#{n_attempts}'",
correct: "'1'" }
end
|
#where ⇒ Object
146
147
148
149
150
|
# File 'lib/aoc_cli/database.rb', line 146
def where
{ year: year,
day: day,
part: part }
end
|