payment_day 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 473ff17dc41c8fe9778cb7f81ad6d5d563eb1ae8a62a83f6cc535e3b0dcd76d8
4
- data.tar.gz: f8080f220c6816d42f7588ce612ce22948e0b678f0b54c2dcdace2f9051cb314
3
+ metadata.gz: 9cff6548d69331df6551413e6022e1096cd9c98229bcc609c1d2eb4ff532411d
4
+ data.tar.gz: a794a8df445185ee98c59b8425cfdf9237a24fc384f6c21559be6699355d4d70
5
5
  SHA512:
6
- metadata.gz: 336accb29ed0eaf542c978da383bb9233084071bb57fcd116e3ab573f62dc4e33c8283c1594835315c05d2bd87c9c0c082a98fc01e8503c9840524c279bcae25
7
- data.tar.gz: 1b2a327752a17619233ad74985d9844b37da95aa8704bb838f5ae4a0a10a56832b441896dd703ccb20cc3a722c7b68016921308f957bb1f2280abd224884b2d8
6
+ metadata.gz: 53b211a666cddc455973b8e52705316ee9e854b8cbe1f5b88c371c412861b57749a2cb76dbff7b91c7a41ccb7dfd8c38b4f2a404231807670433fff2fdd1c87e
7
+ data.tar.gz: c65095ab77e8d6574e9aea507d7ca5b6e9356604b747d486fa19dbaffa62f730e74721d7e1fa8669b0253c2af0b78707612f156476a046844d7cbbc43fdaa4f9
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # PaymentDay
2
2
 
3
+ [![Build Status](https://app.travis-ci.com/the-pulli/payment_day.svg?branch=main)](https://app.travis-ci.com/the-pulli/payment_day)
4
+
3
5
  Provides a class PaymentDay::View. This class generates the pay days for the given year(s).
4
6
 
5
7
  ## Installation
@@ -28,7 +30,7 @@ PaymentDay::View.create(2023..2024, 2025, '2026').pay_days # accept a mix of all
28
30
  # shows 2023 twice in the list of pay_days, default is false
29
31
  PaymentDay::View.create(2023..2024, 2023, duplicates: true).pay_days
30
32
 
31
- table = PaymentDay::View(2023).list # returns a Terminal::Table instance
33
+ table = PaymentDay::View.create(2023).list # returns a Terminal::Table instance
32
34
  puts table # which can be printed like this
33
35
  ```
34
36
 
@@ -37,6 +39,7 @@ puts table # which can be printed like this
37
39
  Option | Negated | Shortcut | Default
38
40
  --- | ---: | ---: | ---:
39
41
  --ascii | --no-ascii | -a | false
42
+ --colors | --no-colors | | true
40
43
  --columns | | -c | 10
41
44
  --dayname | --no-dayname | -e | true
42
45
  --duplicates | --no-duplicates | -d | false
@@ -13,6 +13,7 @@ module PaymentDay
13
13
  desc "view YEARS", "Lists all pay days for the given year(s)"
14
14
  method_option :ascii, aliases: "-a", type: :boolean, default: false, desc: "Do you want to have a ASCII table printed?"
15
15
  method_option :columns, aliases: "-c", type: :numeric, default: 10, desc: "How many years (columns) do you wanna display in one table?"
16
+ method_option :colors, type: :boolean, default: true, desc: "Do you want colored output?"
16
17
  method_option :dayname, aliases: "-e", type: :boolean, default: true, desc: "Do you want see the day name?"
17
18
  method_option :duplicates, aliases: "-d", type: :boolean, default: false, desc: "Do you want see duplicates?"
18
19
  method_option :footer, aliases: "-f", type: :boolean, default: true, desc: "Do you want see the table footer?"
@@ -21,11 +22,11 @@ module PaymentDay
21
22
  def view(*years)
22
23
  years = PaymentDay::View.create(years, options).years
23
24
  years = years.each_slice(options[:columns])
24
- years.each_with_index do |yearsChunk, page|
25
+ years.each_with_index do |years_chunk, page|
25
26
  year_options = options.dup
26
27
  year_options[:page] = page.next
27
28
  year_options[:pages] = years.to_a.length
28
- puts PaymentDay::View.create(yearsChunk, year_options).list()
29
+ puts PaymentDay::View.create(years_chunk, year_options).list
29
30
  end
30
31
  end
31
32
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PaymentDay
4
- VERSION = "0.2.1"
4
+ VERSION = "0.2.2"
5
5
  end
data/lib/payment_day.rb CHANGED
@@ -10,6 +10,8 @@ module PaymentDay
10
10
  class View
11
11
  DEFAULT_OPTIONS = {
12
12
  ascii: false,
13
+ colors: true,
14
+ columns: 10,
13
15
  dayname: false,
14
16
  duplicates: false,
15
17
  footer: true,
@@ -36,10 +38,12 @@ module PaymentDay
36
38
 
37
39
  def list
38
40
  Terminal::Table.new do |t|
39
- t.title = Rainbow("Pay days").bright
40
- t.headings = [Rainbow("Month").bright] + @years.map { |y| { value: Rainbow(y).bright, alignment: :center } }
41
+ t.title = format("Pay days", :bright)
42
+ t.headings = [format("Month", :bright)] + @years.map do |y|
43
+ { value: format(y, :bright), alignment: :center }
44
+ end
41
45
  t.style = { all_separators: @options[:separator], border: border }
42
- t.rows = @months.map { |m| Rainbow(m).cyan }.zip(*format_pay_days)
46
+ t.rows = @months.map { |m| format(m, :cyan) }.zip(*format_pay_days)
43
47
  @years.each_index { |v| t.align_column v.next, :center }
44
48
  page = @options[:page]
45
49
  pages = @options[:pages]
@@ -54,6 +58,10 @@ module PaymentDay
54
58
 
55
59
  private
56
60
 
61
+ def format(value, color)
62
+ @options[:colors] ? Rainbow(value).send(color) : value
63
+ end
64
+
57
65
  def prepare_years(years)
58
66
  result = years.flatten.map do |year|
59
67
  case year
@@ -76,32 +84,32 @@ module PaymentDay
76
84
  end
77
85
 
78
86
  def find_pay_days
79
- unless @options[:duplicates]
80
- year_hsh = {}
81
- @years.each.with_index do |year, index|
82
- year_hsh[year] = (1..12).to_a.map do |month|
83
- last_day = Date.parse("#{year}-#{month}-01").next_month.prev_day
84
- @months.push(last_day.strftime("%B")) if index.zero?
85
- prev(last_day)
86
- end
87
- end
88
- return year_hsh
89
- end
90
-
91
- @years.map.with_index do |year, index|
92
- (1..12).to_a.map do |month|
87
+ year_hsh = {}
88
+ years_ary = @years.map.with_index do |year, index|
89
+ year_hsh[year] = (1..12).to_a.map do |month|
93
90
  last_day = Date.parse("#{year}-#{month}-01").next_month.prev_day
94
91
  @months.push(last_day.strftime("%B")) if index.zero?
95
92
  prev(last_day)
96
93
  end
97
94
  end
95
+ return years_ary if @options[:duplicates]
96
+
97
+ year_hsh
98
98
  end
99
99
 
100
100
  def format_pay_days
101
101
  format = @options[:dayname] ? "%a, %d" : "%d"
102
- return @pay_days.map { |_, year| year.map { |d| Rainbow(d.strftime(format)).green } } unless @options[:duplicates]
103
-
104
- @pay_days.map { |year| year.map { |d| Rainbow(d.strftime(format)).green } }
102
+ formatter = lambda { |d|
103
+ day = d.strftime(format)
104
+ format(day, :green)
105
+ }
106
+
107
+ p @pay_days.is_a?(Hash)
108
+ @pay_days.map do |_, years|
109
+ p years
110
+ # mapping_object = @options[:duplicates] ? year : days
111
+ years.map { |d| formatter.call(d) }
112
+ end
105
113
  end
106
114
 
107
115
  def prev(day)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: payment_day
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - PuLLi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-01 00:00:00.000000000 Z
11
+ date: 2023-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rainbow