html_skeleton 0.4.4 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 55532393dae14c551ad8a938425e057aa82e94e84fc2cc101bf48af785b18a92
4
- data.tar.gz: b3a1aa963b89dc333e7a5574a9c8cdfb9613d824f9e96c3a88e622b0a74d7dfb
3
+ metadata.gz: 56db184d22751726492ac71403572cd8a2834d0181aadc3ba867c88308cd249d
4
+ data.tar.gz: da19bf08daca4345f61044155ea1e2829824614d02489bfdcb187f30cf6538f1
5
5
  SHA512:
6
- metadata.gz: 6182e2b9914696e363d0aefbde4c07e3920cb94605b2d8c2770f3b5acd5e0894b9c6ec58c3410f1664284abbef10aec80dc0c41cdb171ecfc56e46630a31029c
7
- data.tar.gz: 4b7c5fe799657a40782a68f3a938c084e72c3f248853b6855a45a42a55fab3caef258d8019126fd3a0aaac91da20608b3f8faacc82f52d744a78c2ecc5c72136
6
+ metadata.gz: dbc2c9998eb15367256072d4c1963526f5225a72c5177a63d852ac587bf4f7a8aff7278c6558d2093a0eed9c9f1b2ced057cdfe65612112b99d9ed392d05c36a
7
+ data.tar.gz: 138ab21b89eb023bdaddeff721831a96cceb5b7e5b85ec457dee7d043ffb04f6ec888f0acc2aae57e19af2b05b77668b6c8f1522abfcb2752dcc451584905b44
data/MIT-LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright 2012-2019 Dittmar Krall - http://matique.de
1
+ Copyright 2012-2020 Dittmar Krall - http://matique.de
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -47,7 +47,7 @@ Default Options
47
47
  day_names: Date::DAYNAMES.dup,
48
48
  month_names: Date::MONTHNAMES,
49
49
  abbrev: (0..1),
50
- cell_proc: block || lambda {|d| d.day.to_s},
50
+ cell_proc: block || ->(d) { d.day.to_s},
51
51
  first_day_of_week: 1
52
52
 
53
53
 
@@ -80,7 +80,7 @@ Examples
80
80
  }
81
81
 
82
82
  stripes = %w{odd even}
83
- proc = lambda{ |row| k = stripes.shift; stripes << k; %Q{class="#{k}"} }
83
+ proc = ->(row) { k = stripes.shift; stripes << k; %Q{class="#{k}"} }
84
84
  HtmlSkeleton.new.table(@users, %w{email address},
85
85
  tr_attribute: proc,
86
86
  legend: 'Users') { |row, col|
@@ -92,10 +92,10 @@ Default Options
92
92
  legend: nil,
93
93
  col_legend: lambda(&:to_s),
94
94
  row_legend: lambda(&:id),
95
- th_attribute: lambda { |col| nil },
96
- tr_attribute: lambda { |row| nil },
95
+ th_attribute: ->(col) { nil },
96
+ tr_attribute: ->(row) { nil },
97
97
  table_class: 'skeleton',
98
- cell_proc: block || lambda {|row, col| "<td>#{row} #{col}</td>"}
98
+ cell_proc: block || ->(row, col) { "<td>#{row} #{col}</td>"}
99
99
 
100
100
 
101
101
  Curious?
data/lib/html_skeleton.rb CHANGED
@@ -7,35 +7,33 @@ class HtmlSkeleton
7
7
 
8
8
  def calendar(options = {}, &block)
9
9
  set_calendar_options(options, &block)
10
- frame = @options[:month] ? 'div' : 'table'
11
- body = @options[:month] ?
12
- a_month(@options[:year], @options[:month]) :
13
- a_year(@options[:year])
14
- %Q{<#{frame} class="#{@options[:calendar_class]}"> #{body} </#{frame}>}
10
+ month = @options[:month]
11
+ frame = month ? 'div' : 'table'
12
+ body = month ? a_month(@options[:year], month) : a_year(@options[:year])
13
+ %(<#{frame} class="#{@options[:calendar_class]}"> #{body} </#{frame}>)
15
14
  end
16
15
 
17
16
  def table(rows, cols, options = {}, &block)
18
17
  set_table_options(options, &block)
19
- <<-EOS
20
- <table class="#{@options[:table_class]}">
21
- #{table_header(cols)}
22
- #{table_body(rows, cols)}
23
- </table>
24
- EOS
18
+ <<~TABLE
19
+ <table class="#{@options[:table_class]}">
20
+ #{table_header(cols)}
21
+ #{table_body(rows, cols)}
22
+ </table>
23
+ TABLE
25
24
  end
26
25
 
27
-
28
26
  protected
29
27
  def set_calendar_options(options, &block)
30
28
  year = DateTime.now.year
31
29
  @options = {
32
- year: year,
33
- title: year,
34
- rows: 3,
30
+ year: year,
31
+ title: year,
32
+ rows: 3,
35
33
  calendar_class: 'skeleton',
36
34
  month_names: Date::MONTHNAMES,
37
- abbrev: (0..1),
38
- cell_proc: block || lambda {|d| d.day.to_s},
35
+ abbrev: (0..1),
36
+ cell_proc: block || ->(d) { d.day.to_s },
39
37
  first_day_of_week: 1
40
38
  }.merge options
41
39
 
@@ -44,8 +42,8 @@ class HtmlSkeleton
44
42
 
45
43
  @day_header = names.collect { |day|
46
44
  abbr = day[@options[:abbrev]]
47
- str = abbr == day ? day : %Q{<abbr title="#{day}">#{abbr}</abbr>}
48
- %Q{<th scope="col">#{str}</th>}
45
+ str = abbr == day ? day : %(<abbr title="#{day}">#{abbr}</abbr>)
46
+ %(<th scope="col">#{str}</th>)
49
47
  }.join('')
50
48
  end
51
49
 
@@ -54,12 +52,11 @@ class HtmlSkeleton
54
52
  legend: nil,
55
53
  col_legend: lambda(&:to_s),
56
54
  row_legend: lambda(&:id),
57
- th_attribute: lambda { |col| nil },
58
- tr_attribute: lambda { |row| nil },
55
+ th_attribute: ->(_col) { nil },
56
+ tr_attribute: ->(_row) { nil },
59
57
 
60
58
  table_class: 'skeleton',
61
- cell_proc: block || lambda {|row, col| "<td>#{row} #{col}</td>"},
59
+ cell_proc: block || ->(row, col) { "<td>#{row} #{col}</td>" }
62
60
  }.merge options
63
61
  end
64
-
65
62
  end
@@ -8,42 +8,42 @@ class HtmlSkeleton
8
8
  def a_year(year)
9
9
  rows = @options[:rows]
10
10
  cols = 12 / rows
11
- raise "html_skeleton_calendar: invalid option <rows>" unless rows * cols == 12
11
+ raise 'html_skeleton_calendar: invalid option <rows>' unless rows * cols == 12
12
12
 
13
- body = (0..rows - 1).collect {|y|
14
- str = (1..cols).collect {|x| "<td>#{a_month(year, y * cols + x)}</td>"}
13
+ body = (0..rows - 1).collect { |y|
14
+ str = (1..cols).collect { |x| "<td>#{a_month(year, y * cols + x)}</td>" }
15
15
  "<tr>#{str.join('')}</tr>"
16
16
  }
17
- <<-EOS
18
- <thead><th colspan="2">#{@options[:title]}</th></thead>
19
- #{body.join('')}
20
- EOS
17
+ <<~THEAD
18
+ <thead><th colspan="2">#{@options[:title]}</th></thead>
19
+ #{body.join('')}
20
+ THEAD
21
21
  end
22
22
 
23
23
  def a_month(year, month)
24
24
  title = @options[:month_names][month]
25
- <<-EOS
26
- <table class="month">
27
- <tr class="monthName"><th colspan="7">#{title}</th></tr>
28
- <tr class="dayName">#{@day_header}</tr>
29
- #{days_of_month(year, month)}
30
- </table>
31
- EOS
25
+ <<~TABLE
26
+ <table class="month">
27
+ <tr class="monthName"><th colspan="7">#{title}</th></tr>
28
+ <tr class="dayName">#{@day_header}</tr>
29
+ #{days_of_month(year, month)}
30
+ </table>
31
+ TABLE
32
32
  end
33
33
 
34
34
  def days_of_month(year, month)
35
35
  first_weekday = @options[:first_day_of_week]
36
- last_weekday = first_weekday > 0 ? first_weekday - 1 : 6
36
+ last_weekday = first_weekday.positive? ? first_weekday - 1 : 6
37
37
  cell_proc = @options[:cell_proc]
38
- today = (Time.respond_to?(:zone) &&
39
- !(zone = Time.zone).nil? ? zone.now.to_date : Date.today)
38
+ bool = Time.respond_to?(:zone) && !(zone = Time.zone).nil?
39
+ today = bool ? zone.now.to_date : Date.today
40
40
 
41
41
  first = Date.civil(year, month, 1)
42
42
  last = Date.civil(year, month, -1)
43
43
 
44
44
  cal = '<tr>'
45
45
  cal << '<td></td>' * days_between(first_weekday, first.wday)
46
- first.upto(last) {|cur|
46
+ first.upto(last) { |cur|
47
47
  cal << a_day(cur, today, cell_proc)
48
48
  cal << '</tr> <tr>' if cur.wday == last_weekday
49
49
  }
@@ -58,7 +58,7 @@ class HtmlSkeleton
58
58
  "<td class=\"#{attrs}\">#{block.call(date)}</td>"
59
59
  # "<td class=\"#{attrs}\">##</td>"
60
60
  end
61
-
61
+
62
62
  def weekend?(date)
63
63
  [0, 6].include?(date.wday)
64
64
  end
@@ -66,5 +66,4 @@ class HtmlSkeleton
66
66
  def days_between(first, second)
67
67
  first > second ? second + (7 - first) : second - first
68
68
  end
69
-
70
69
  end
@@ -2,7 +2,7 @@ require 'date'
2
2
 
3
3
  # table methods ######################################################
4
4
  class HtmlSkeleton
5
- protected
5
+ protected
6
6
  def table_header(cols)
7
7
  legend = @options[:legend]
8
8
  th_attribute = @options[:th_attribute]
@@ -12,7 +12,7 @@ class HtmlSkeleton
12
12
  col_header = cols.collect { |col|
13
13
  "<th #{th_attribute.call(col)}>#{proc.call(col)}</th>"
14
14
  }.join
15
- %Q{<thead><th class="legend">#{legend}</th>#{col_header}</thead>}
15
+ %(<thead><th class="legend">#{legend}</th>#{col_header}</thead>)
16
16
  end
17
17
 
18
18
  def table_body(rows, cols)
@@ -20,10 +20,10 @@ class HtmlSkeleton
20
20
  row_legend = @options[:row_legend]
21
21
  tr_attribute = @options[:tr_attribute]
22
22
  rows.collect { |row|
23
- rlegend = legend ? %Q{<td class="legend">#{row_legend.call(row)}</td>}
24
- : ''
23
+ rlegend = ''
24
+ rlegend = %(<td class="legend">#{row_legend.call(row)}</td>) if legend
25
25
  cells = table_row(row, cols)
26
- %Q{<tr #{tr_attribute.call(row)}>#{rlegend}#{cells}</tr>}
26
+ %(<tr #{tr_attribute.call(row)}>#{rlegend}#{cells}</tr>)
27
27
  }.join("\n")
28
28
  end
29
29
 
@@ -31,5 +31,4 @@ class HtmlSkeleton
31
31
  cell_proc = @options[:cell_proc]
32
32
  cols.collect { |col| cell_proc.call(row, col) }.join('')
33
33
  end
34
-
35
34
  end
metadata CHANGED
@@ -1,29 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: html_skeleton
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dittmar Krall
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-04 00:00:00.000000000 Z
11
+ date: 2020-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rake
14
+ name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '13'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '13'
27
41
  description: |2
28
42
  A simple helper for creating HTML calendars and tables.
29
43
 
@@ -60,7 +74,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
60
74
  - !ruby/object:Gem::Version
61
75
  version: '0'
62
76
  requirements: []
63
- rubygems_version: 3.0.6
77
+ rubygems_version: 3.0.8
64
78
  signing_key:
65
79
  specification_version: 4
66
80
  summary: A simple helper for creating HTML calendars and tables