jekyll-kw-shorten 0.0.12 → 0.2.2

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: 012dee8b1fc72f257b2e457836d2b8f56cc3faac819e57fb0f29336cf3ff2436
4
- data.tar.gz: b3203689baedeeef368523c60a6bc272c74642f4348bf7dfc332665836085188
3
+ metadata.gz: df3ee2ecf207c1b6b96184ae10437b14703d66e9a4c6535d3692c6319f560a2f
4
+ data.tar.gz: ef033ff7ca3cc1160fcea93dfca027435fc54c7b2c3f4f187523b1e380024429
5
5
  SHA512:
6
- metadata.gz: 443768121201fcbb3a56405c1d25ca797278b4178070445b5ff745113a6efc1f694aff1156f9ea6e073b553c690348eb423db86ae0154e7d4e8847792d015a04
7
- data.tar.gz: ed61ccbf42f6b92577d68f8efbc4258f884185b69866a93c93b1484dc2e10c7937177b3bc9303e6b2cdaf6993e89637270fc1e5cc89be8120fd735a5ca6442af
6
+ metadata.gz: 8a39154c789ece32ab0dee19fc3054b4b8f74d5d8379fe059e68286a90c6a1650a0623907d8f5bb623095688ab128dcd0fb8f140b7169a8a50ec759de02ffcdc
7
+ data.tar.gz: 70b3f150871a1e5decccd6615e40ecfdae3c7fa15bac9f204c7f7320d9c5472c18cbdfb3ed0a7562a695e6130944a64a37c9c84899abfb5bdd7e6954866d5192
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 n13.org
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md CHANGED
@@ -1,27 +1,125 @@
1
+ # jekyll-kw-shorten
1
2
 
2
- The project `jekyll-kw-shorten` is a **[filter](https://jekyllrb.com/docs/plugins/filters/)** plug-in for a [jekyll](https://jekyllrb.com/) static page blog.
3
+ ![CI](https://github.com/n13org/jekyll-kw-shorten/workflows/CI/badge.svg)
4
+ ![Coverage](https://github.com/n13org/jekyll-kw-shorten/workflows/Coverage/badge.svg)
5
+ ![RuboCop](https://github.com/n13org/jekyll-kw-shorten/workflows/RuboCop/badge.svg)
6
+
7
+ [![Maintainability](https://api.codeclimate.com/v1/badges/efd40b09af4719e928bb/maintainability)](https://codeclimate.com/github/n13org/jekyll-kw-shorten/maintainability)
8
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/efd40b09af4719e928bb/test_coverage)](https://codeclimate.com/github/n13org/jekyll-kw-shorten/test_coverage)
9
+
10
+ [![Gem Version](https://badge.fury.io/rb/jekyll-kw-shorten.svg)](https://badge.fury.io/rb/jekyll-kw-shorten)
11
+
12
+ A jekyll plugin which can shorten long numbers, e.g. 1000 ➜ 1K or 1000000 ➜ 1M.
13
+
14
+ The project `jekyll-kw-shorten` is a plug-in for a [jekyll](https://jekyllrb.com/) static page blog. It can be used as **[filter](https://jekyllrb.com/docs/plugins/filters/)** and as **[tag](https://jekyllrb.com/docs/plugins/tag/)**.
3
15
 
4
16
  It is published on [rubygems.org](https://rubygems.org/gems/jekyll-kw-shorten), the source code is hosted on [GitHub](https://github.com/n13org/jekyll-kw-shorten).
5
17
 
6
18
  ## Usage
7
19
 
8
- * {{ "txt" | shorten }}
9
- * {{ "text with spaces" | shorten }}
10
- * {{ 500 | shorten }}
11
- * {{ 777 | shorten }}
12
- * {{ 1000 | shorten }}
13
- * {{ 1200 | shorten }}
14
- * {{ 1450 | shorten }}
15
- * {{ 1777 | shorten }}
16
- * {{ 12345 | shorten }}
17
- * {{ 1000000 | shorten }}
18
- * {{ 1110000 | shorten }}
19
- * {{ 1000000000 | shorten }}
20
+ Use the filter `{{ 1234 | shorten }}` or the tag `{% shorten 1234 %}` inside your markdown blog post file to get `1.2 K`.
21
+
22
+ The plug-in supports
23
+
24
+ * positiv numbers
25
+ * negativ numbers with leading `-` or `- `.
26
+ * float numbers (when multiple dots are in the text only the part to the first will be taken)
27
+ * Text with no numbers inside will simply echoed
28
+ * Text with numbers, will be reduced to just the digits
29
+ * Show a rocket `∞ 🚀` for very huge values (>= 1000000000000)
30
+ * Float numbers will be rounded
31
+
32
+ ### Examples as Jekyll Tag
33
+
34
+ | Syntax | OK | Result |
35
+ |-------------------------------|:--:|----------|
36
+ | {% shorten "MyText" %} | ✔️ | "MyText" |
37
+ | {% shorten MyText %} | ✔️ | MyText |
38
+ | {% shorten "My43Text" %} | ✔️ | 43 |
39
+ | {% shorten "My43.56Text" %} | ✔️ | 44 |
40
+ | {% shorten "My43.56.7Text" %} | ✔️ | 44 |
41
+ | {% shorten "1234" %} | ✔️ | 1.2 K |
42
+ | {% shorten 1 %} | ✔️ | 1 |
43
+ | {% shorten -22 %} | ✔️ | -22 |
44
+ | {% shorten - 44 %} | ✔️ | -44 |
45
+ | {% shorten 1000 %} | ✔️ | 1.0 K |
46
+ | {% shorten 1000000 %} | ✔️ | 1.0 M |
47
+ | {% shorten 1000000000 %} | ✔️ | 1.0 B |
48
+ | {% shorten 1000000000000 %} | ✔️ | ∞ 🚀 |
49
+
50
+ ### Examples as Jekyll Filter
51
+
52
+ | Syntax | OK | Result |
53
+ |----------------------------------|:--:|----------|
54
+ | {{ "MyText" \| shorten }} | ✔️ | "MyText" |
55
+ | {{ MyText \| shorten }} | ❌ | |
56
+ | {{ "My43Text" \| shorten }} | ✔️ | 43 |
57
+ | {{ "My43.56Text" \| shorten }} | ✔️ | 44 |
58
+ | {{ "My43.56.7Text" \| shorten }} | ✔️ | 44 |
59
+ | {{ "1234" \| shorten }} | ✔️ | 1.2 K |
60
+ | {{ 1 \| shorten }} | ✔️ | 1 |
61
+ | {{ -22 \| shorten }} | ✔️ | -22 |
62
+ | {{ - 44 \| shorten }} | ❌ | |
63
+ | {{ 1000 \| shorten }} | ✔️ | 1.0 K |
64
+ | {{ 1000000 \| shorten }} | ✔️ | 1.0 M |
65
+ | {{ 1000000000 \| shorten }} | ✔️ | 1.0 B |
66
+ | {{ 1000000000000 \| shorten }} | ✔️ | ∞ 🚀 |
67
+
68
+ **HINTS**:
69
+
70
+ * The filter `{{ MyText | shorten }}` will show nothing (empty string). The filter "thinks" the MyText is a variable (with the value nil). Numbers can be used with and without quotes. Text must be wrapped in quotes.
71
+ * The filter `{{ - 44 | shorten }}` will show nothing (empty string). The filter tries to parse the `-` as first part, not the number behind.
20
72
 
21
73
  ## Installation
22
74
 
75
+ Add `jekyll-kw-shorten` plugin in your Gemfile inside the `jekyll_plugins` group.
76
+
77
+ ```ruby
78
+ group :jekyll_plugins do
79
+ ...
80
+ gem "jekyll-kw-shorten"
81
+ ...
82
+ end
83
+ ```
84
+
85
+ Run `bundle install` to install the gem and update the Gemfile.lock.
86
+
87
+ Add `jekyll-kw-shorten` to the plugins section in your site's `_config.yml`. Then [configure](#configuration) your plug-in.
88
+
89
+ ```yaml
90
+ plugins:
91
+ - jekyll-kw-shorten
92
+ ```
93
+
23
94
  ## Configuration
24
95
 
25
- ## Contribution
96
+ Add the setting to your `_config.yml` file. Details you can find in the [documentation](https://jekyllrb.com/docs/configuration/). The name of the group is `jekyll-kw-shorten`.
97
+
98
+ * **shorten_gt3_digit** will be used for numbers between 1000 and 999999. Default is `' K'`.
99
+ * **shorten_gt6_digit** will be used for numbers between 1000000 and 999999999. Default is `' M'`.
100
+ * **shorten_gt9_digit** will be used for numbers between 1000000000 and 999999999999. Default is `' B'`.
101
+
102
+ ```yaml
103
+ ...
104
+ jekyll-kw-shorten:
105
+ shorten_gt3_digit: ' K'
106
+ shorten_gt6_digit: ' M'
107
+ shorten_gt9_digit: ' B'
108
+ ...
109
+ ```
110
+
111
+ When the config values are omit then the default values are used.
26
112
 
27
113
  ## Test locally
114
+
115
+ Run linting
116
+
117
+ ```shell
118
+ bundle exec rubocop
119
+ ```
120
+
121
+ Run tests
122
+
123
+ ```shell
124
+ bundle exec rake test
125
+ ```
@@ -10,10 +10,10 @@ module Jekyll
10
10
  # https://stackoverflow.com/questions/33952093/how-to-allow-only-one-dot-in-regex
11
11
  DIGITS_AND_SINGLE_DOT_ESCAPE_REGEXP = /(-?\s?[0-9]+(\.[0-9]+)?)/.freeze
12
12
 
13
- attr_reader :configuration
13
+ attr_reader :config
14
14
 
15
15
  def initialize(options = {})
16
- @configuration = Jekyll::KargWare::Shorten::Configuration.new(options)
16
+ @config = Jekyll::KargWare::Shorten::Configuration.new(options)
17
17
  end
18
18
 
19
19
  def parse(text)
@@ -21,27 +21,20 @@ module Jekyll
21
21
 
22
22
  return text unless Parser.number?(num)
23
23
 
24
- begin
25
- if num >= 1000000000000
26
- '∞ 🚀'
27
- elsif num >= 1000000000
28
- format(num / 1000000000.0) + @configuration.shorten_gt9_digit
29
- elsif num >= 1000000
30
- format(num / 1000000.0) + @configuration.shorten_gt6_digit
31
- elsif num >= 1000
32
- format(num / 1000.0) + @configuration.shorten_gt3_digit
33
- else
34
- num.round(0).truncate(0).to_s.rjust(5)
35
- end
36
- rescue StandardError => e
37
- puts e.message
38
- text
24
+ return '∞ 🚀' if num >= 1000000000000
25
+
26
+ if num >= 1000000000
27
+ format(num / 1000000000.0) + @config.shorten_gt9_digit
28
+ elsif num >= 1000000
29
+ format(num / 1000000.0) + @config.shorten_gt6_digit
30
+ elsif num >= 1000
31
+ format(num / 1000.0) + @config.shorten_gt3_digit
32
+ else
33
+ num.round(0).truncate(0).to_s.rjust(5)
39
34
  end
40
35
  end
41
36
 
42
- # private
43
-
44
- def format(num)
37
+ private def format(num)
45
38
  num.round(1).truncate(1).to_s
46
39
  end
47
40
 
@@ -4,7 +4,7 @@ module Jekyll
4
4
  module KargWare
5
5
  module Shorten
6
6
  RUBYGEM_NAME = 'jekyll-kw-shorten'
7
- VERSION = '0.0.12'
7
+ VERSION = '0.2.2'
8
8
  end
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-kw-shorten
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicolas Karg
@@ -25,24 +25,28 @@ dependencies:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
27
  version: '3.8'
28
- description: " A template project for jekyll plugins with some additional content\n"
28
+ description: |2
29
+ A jekyll plugin which can shorten long numbers, e.g. 1000 ➜ 1K or 1000000 ➜ 1M.
30
+
31
+ It can be used as filter `{{ 1234 | shorten }}` and as tag `{% shorten 1234 %}`, the result will be **1.2 K**
29
32
  email:
30
33
  - rubygems.org@n13.org
31
34
  executables: []
32
35
  extensions: []
33
36
  extra_rdoc_files: []
34
37
  files:
38
+ - LICENSE
35
39
  - README.md
36
40
  - lib/jekyll-kw-shorten.rb
37
41
  - lib/jekyll/KargWare/Shorten/configuration.rb
38
42
  - lib/jekyll/KargWare/Shorten/parser.rb
39
43
  - lib/jekyll/KargWare/Shorten/version.rb
40
- homepage: https://notes.n13.org/rubygems
44
+ homepage: https://n13.org/rubygems
41
45
  licenses: []
42
46
  metadata:
43
- homepage_uri: https://notes.n13.org/rubygems
44
- bug_tracker_uri: https://github.com/n13org/jekyll-plugin-template/issues
45
- source_code_uri: https://github.com/n13org/jekyll-plugin-template
47
+ homepage_uri: https://n13.org/rubygems
48
+ bug_tracker_uri: https://github.com/n13org/jekyll-kw-shorten/issues
49
+ source_code_uri: https://github.com/n13org/jekyll-kw-shorten
46
50
  post_install_message:
47
51
  rdoc_options: []
48
52
  require_paths:
@@ -51,7 +55,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
51
55
  requirements:
52
56
  - - ">="
53
57
  - !ruby/object:Gem::Version
54
- version: 2.3.0
58
+ version: 2.5.0
55
59
  required_rubygems_version: !ruby/object:Gem::Requirement
56
60
  requirements:
57
61
  - - ">="
@@ -61,5 +65,5 @@ requirements: []
61
65
  rubygems_version: 3.1.2
62
66
  signing_key:
63
67
  specification_version: 4
64
- summary: A template project for jekyll plugins.
68
+ summary: A jekyll plugin to shorten long numbers
65
69
  test_files: []