Class: Ymdtree
- Inherits:
-
Object
- Object
- Ymdtree
- Defined in:
- lib/middleman-blog-ymd/ymdtree.rb
Class Method Summary collapse
- .add(y, m, d) ⇒ Object
- .days_of(y, m) ⇒ Object
- .first_month_of_year(y) ⇒ Object
- .hash ⇒ Object
- .init(blog_data) ⇒ Object
- .last_month_of_year(y) ⇒ Object
- .months_of(y) ⇒ Object
- .next_month(y, m) ⇒ Object
- .next_year(y) ⇒ Object
- .previous_month(y, m) ⇒ Object
- .previous_year(y) ⇒ Object
- .years ⇒ Object
Class Method Details
.add(y, m, d) ⇒ Object
16 17 18 |
# File 'lib/middleman-blog-ymd/ymdtree.rb', line 16 def add(y , m , d) @hash[y][m][d] = true end |
.days_of(y, m) ⇒ Object
25 26 27 |
# File 'lib/middleman-blog-ymd/ymdtree.rb', line 25 def days_of( y, m ) @hash[y][m].keys end |
.first_month_of_year(y) ⇒ Object
63 64 65 66 67 |
# File 'lib/middleman-blog-ymd/ymdtree.rb', line 63 def first_month_of_year(y) ms = @hash[y].keys sorted_ms = ms.sort sorted_ms.first end |
.hash ⇒ Object
13 14 15 |
# File 'lib/middleman-blog-ymd/ymdtree.rb', line 13 def hash return @hash end |
.init(blog_data) ⇒ Object
5 6 7 8 9 10 11 12 |
# File 'lib/middleman-blog-ymd/ymdtree.rb', line 5 def init(blog_data) blog_data.articles.each{|article| year_value = article.date.gmtime.year month_value =article.date.gmtime.month day_value =article.date.gmtime.day add(year_value, month_value, day_value) } end |
.last_month_of_year(y) ⇒ Object
57 58 59 60 61 |
# File 'lib/middleman-blog-ymd/ymdtree.rb', line 57 def last_month_of_year(y) ms = @hash[y].keys sorted_ms = ms.sort sorted_ms.last end |
.months_of(y) ⇒ Object
22 23 24 |
# File 'lib/middleman-blog-ymd/ymdtree.rb', line 22 def months_of( y ) @hash[y].keys end |
.next_month(y, m) ⇒ Object
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/middleman-blog-ymd/ymdtree.rb', line 87 def next_month( y , m) month_array = @hash[y].to_a month_array = month_array.collect{|month| month[0] } m_idx = month_array.index(m) if m_idx == 0 if next_year(y) return [ next_year(y), first_month_of_year( next_year(y) ) ] # preious year of last month else return nil end else return [y , month_array[ m_idx - 1 ] ] end end |
.next_year(y) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/middleman-blog-ymd/ymdtree.rb', line 43 def next_year(y) ys = years sorted_ys = ys.sort yidx = sorted_ys.index(y) case yidx when (sorted_ys.length - 1) return nil when nil raise Error , "argument year doesn't exist" else return sorted_ys[yidx + 1] end end |
.previous_month(y, m) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/middleman-blog-ymd/ymdtree.rb', line 69 def previous_month( y , m) month_array = @hash[y].to_a month_array = month_array.collect{|month| month[0] } m_idx = month_array.index(m) if m_idx == ( month_array.length - 1 ) if previous_year(y) return [ previous_year(y), last_month_of_year( previous_year(y) )] # preious year of last month else return nil end else return [ y, month_array[ m_idx + 1 ] ] end end |
.previous_year(y) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/middleman-blog-ymd/ymdtree.rb', line 29 def previous_year(y) ys = years sorted_ys = ys.sort yidx = sorted_ys.index(y) case yidx when 0 return nil when nil raise Error , "argument year doesn't exist" else return sorted_ys[yidx - 1] end end |
.years ⇒ Object
19 20 21 |
# File 'lib/middleman-blog-ymd/ymdtree.rb', line 19 def years @hash.keys end |