jekyll-kw-shorten 0.0.6 → 0.0.11

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: 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