jekyll-kw-shorten 0.0.6 → 0.0.11

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: 6125e8c3d524a504d635ef8d54be52fd1921e1a438bedf395e2648ebeab5df37
4
- data.tar.gz: 52b469038d47775197f2516c8ebd7c5e364ea6c5e5fd53438abbbf504dc519b4
3
+ metadata.gz: 3e593496e1b6a803fc2ccad35c0e477fefe1fb7fa1f9d5ae4431a84a9c99395f
4
+ data.tar.gz: 27ad67e6058c04547fc482d58e9b12bf9f06685ce01ff966b5e7fd7302348801
5
5
  SHA512:
6
- metadata.gz: 44c016593f8df9f70db887461e88d04eec172f2db398a641543d74b010607c4490da7e56576e2076a2a7bf85fda5db8b75fc580be6a8c34bac6f2c4b7bbbcb41
7
- data.tar.gz: 6181b606cbdae7b187a85ce6910298860d845b265b88b8323f6649393a9b4f153f34d17b3a88341791d9edc3e8fa9c8ea91b8e1f02fbb7505777cbc24688ad40
6
+ metadata.gz: cf3e5f9f35fad937a511661d3a6ab694046dc8fe178e84a234c195e46766d3291d2438c0990cba4b534d129d87d951865d4cb8903fe9009b9263cf664a217bf0
7
+ data.tar.gz: ece39f6384277d0f5f32fc6c32a79c3903099343cf4d0cea6682fae432814240dffdfe3817852e0339dc4d17db2019a8f400306e2582c415d8de4b63691bc933
@@ -1,42 +1,50 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'jekyll/KargWare/Shorten/parser'
4
+ require 'jekyll/KargWare/Shorten/version'
4
5
 
5
6
  module Jekyll
6
7
  module KargWare
8
+ # jekyll-kw-shorten jekyll (tag and filter) class
7
9
  module Shorten
8
10
  class Error < StandardError; end
9
11
  class Exception < Gem::Exception; end
10
12
 
13
+ module_function def get_plugin_config(context)
14
+ if defined? context.registers[:site].config
15
+ context.registers[:site].config[Jekyll::KargWare::Shorten::RUBYGEM_NAME] || {}
16
+ else
17
+ {}
18
+ end
19
+ end
20
+
11
21
  # shorten tag {% shorten input %} for Jekyll
12
22
  class ShortenTag < Liquid::Tag
13
23
  def initialize(tag_name, input, tokens)
14
24
  super
15
- @input = input
25
+ @input = input.to_s.strip
16
26
  end
17
27
 
18
28
  def render(context)
19
- ShortenFilter.shorten(@input)
29
+ parser = Jekyll::KargWare::Shorten::Parser.new(
30
+ Jekyll::KargWare::Shorten.get_plugin_config(context)
31
+ )
32
+ parser.parse(@input)
20
33
  end
21
34
  end
22
35
 
23
36
  # shorten filter {{ number | shorten }} for Jekyll
24
37
  module ShortenFilter
25
38
  def shorten(number)
26
- parser = Jekyll::KargWare::Shorten::Parser.new(get_site_config)
27
- parser.shorten(number)
28
- end
29
-
30
- private
31
-
32
- def get_site_config
33
- @context.registers[:site].config['jekyll-kw-shorten'] || {}
39
+ parser = Jekyll::KargWare::Shorten::Parser.new(
40
+ Jekyll::KargWare::Shorten.get_plugin_config(@context)
41
+ )
42
+ parser.parse(number)
34
43
  end
35
44
  end
36
-
37
45
  end
38
46
  end
39
47
  end
40
48
 
41
49
  Liquid::Template.register_tag('shorten', Jekyll::KargWare::Shorten::ShortenTag)
42
- Liquid::Template.register_filter(Jekyll::KargWare::Shorten::ShortenFilter)
50
+ Liquid::Template.register_filter(Jekyll::KargWare::Shorten::ShortenFilter)
@@ -21,9 +21,7 @@ module Jekyll
21
21
  @shorten_gt9_digit = options['shorten_gt9_digit']
22
22
  end
23
23
 
24
- private
25
-
26
- def generate_option_hash(options)
24
+ private def generate_option_hash(options)
27
25
  DEFAULT_CONFIG.merge(options)
28
26
  rescue TypeError
29
27
  DEFAULT_CONFIG
@@ -13,25 +13,39 @@ module Jekyll
13
13
  @configuration = Jekyll::KargWare::Shorten::Configuration.new(options)
14
14
  end
15
15
 
16
- def shorten(text)
17
- if text.is_a? String then
18
- return text
19
- else
20
- num = text.to_i
21
- if num >= 1000000000000 then
22
- return "∞ 🚀"
23
- elsif num >= 1000000000 then
24
- return (num / 1000000000.0).truncate(1).to_s + @configuration.shorten_gt9_digit
25
- elsif num >= 1000000 then
26
- return (num / 1000000.0).truncate(1).to_s + @configuration.shorten_gt6_digit
27
- elsif num >= 1000 then
28
- return (num / 1000.0).truncate(1).to_s + @configuration.shorten_gt3_digit
16
+ def parse(text)
17
+ return text unless Parser.number?(text)
18
+
19
+ begin
20
+ num = text.to_f
21
+ if num >= 1000000000000
22
+ '∞ 🚀'
23
+ elsif num >= 1000000000
24
+ format(num / 1000000000.0) + @configuration.shorten_gt9_digit
25
+ elsif num >= 1000000
26
+ format(num / 1000000.0) + @configuration.shorten_gt6_digit
27
+ elsif num >= 1000
28
+ format(num / 1000.0) + @configuration.shorten_gt3_digit
29
29
  else
30
- return (num).truncate(1).to_s
30
+ num.round(0).truncate(0).to_s.rjust(5)
31
31
  end
32
+ rescue StandardError => e
33
+ puts e.message
34
+ text
32
35
  end
33
36
  end
34
37
 
38
+ # private
39
+
40
+ def format(num)
41
+ num.round(1).truncate(1).to_s
42
+ end
43
+
44
+ def self.number?(string)
45
+ true if Float(string)
46
+ rescue StandardError
47
+ false
48
+ end
35
49
  end
36
50
  end
37
51
  end
@@ -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.6'
7
+ VERSION = '0.0.11'
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.6
4
+ version: 0.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicolas Karg
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-12-27 00:00:00.000000000 Z
12
+ date: 2021-01-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: jekyll