Class: WeeklyPlanner
- Inherits:
-
Object
- Object
- WeeklyPlanner
- Defined in:
- lib/weekly_planner.rb
Instance Attribute Summary collapse
-
#to_s ⇒ Object
readonly
Returns the value of attribute to_s.
Instance Method Summary collapse
- #dx ⇒ Object
- #format_row(heading, content) ⇒ Object
-
#initialize(filename = 'weekly-planner.txt', path: File.dirname(filename), config: {}) ⇒ WeeklyPlanner
constructor
A new instance of WeeklyPlanner.
- #ordinal(n) ⇒ Object
- #save(filename = @filename) ⇒ Object
Constructor Details
#initialize(filename = 'weekly-planner.txt', path: File.dirname(filename), config: {}) ⇒ WeeklyPlanner
Returns a new instance of WeeklyPlanner.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/weekly_planner.rb', line 23 def initialize(filename='weekly-planner.txt', path: File.dirname(filename), config: {}) @filename, @path = File.basename(filename), File.(path) fpath = File.join(path, filename) if File.exists?(fpath) then dx = import_to_dx(File.read(fpath)) @dx = refresh File.join(path, filename.sub(/\.txt$/,'.xml')), dx sync_archive() # purge any past dates while @dx.all.first and Date.parse(@dx.all.first.id, "%Y%m%d") != DateTime.now.to_date \ and @dx.all.length > 0 do @dx.all.first.delete end # new days to add? len = 7 - @dx.all.length if @dx.all.length > 0 and len > 0 then date = Date.strptime(@dx.all.last.id, "%Y%m%d") + 1 len.times.with_index do |row, i| @dx.create({x: (date + i).strftime("# %d-%b-%Y\n\n")}, \ id: (date + i).strftime("%Y%m%d")) end sync_archive @dx.all[-(len)..-1] #jr230716 else #jr230716 @dx = new_dx end else @dx = new_dx end # check for monthly-planner entries which # should be added to the weekly-planner monthlyplanner_filepath = config[:monthlyplanner_filepath] if monthlyplanner_filepath then mp = MonthlyPlanner.new monthlyplanner_filepath mp.this_week.each do |x| i = x.date.day - Date.today.day a = @dx.all[i].x.lines s = "%s %s" % [x.time, x.desc] @dx.all[i].x = (a << s + "\n").join unless a.index s end end end |
Instance Attribute Details
#to_s ⇒ Object (readonly)
Returns the value of attribute to_s.
21 22 23 |
# File 'lib/weekly_planner.rb', line 21 def to_s @to_s end |
Instance Method Details
#dx ⇒ Object
89 90 91 |
# File 'lib/weekly_planner.rb', line 89 def dx() @dx end |
#format_row(heading, content) ⇒ Object
196 197 198 199 |
# File 'lib/weekly_planner.rb', line 196 def format_row(heading, content) content.prepend "\n\n" unless content.empty? "%s\n%s%s" % [heading, '-' * heading.length, content] end |
#ordinal(n) ⇒ Object
201 202 203 204 |
# File 'lib/weekly_planner.rb', line 201 def ordinal(n) n.to_s + ( (10...20).include?(n) ? 'th' : \ %w{ th st nd rd th th th th th th }[n % 10] ) end |
#save(filename = @filename) ⇒ Object
93 94 95 96 97 98 99 100 101 |
# File 'lib/weekly_planner.rb', line 93 def save(filename=@filename) # s = File.basename(filename) + "\n" + dx_to_s(@dx).lines[1..-1].join File.write File.join(@path, filename), s @dx.save File.join(@path, filename.sub(/\.txt$/,'.xml')) sync_archive() end |