amakanize 0.6.5 → 0.8.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.
Files changed (51) hide show
  1. checksums.yaml +5 -5
  2. data/.github/release.yml +23 -0
  3. data/.github/workflows/bump-request.yml +26 -0
  4. data/.github/workflows/github-label-sync.yml +18 -0
  5. data/.github/workflows/release.yml +12 -0
  6. data/.github/workflows/test.yml +27 -0
  7. data/.gitignore +0 -1
  8. data/.rubocop.yml +3 -73
  9. data/CHANGELOG.md +4 -0
  10. data/Gemfile +7 -1
  11. data/Gemfile.lock +58 -0
  12. data/README.md +2 -4
  13. data/Rakefile +10 -3
  14. data/amakanize.gemspec +13 -15
  15. data/lib/amakanize/author_name.rb +4 -2
  16. data/lib/amakanize/author_names.rb +5 -5
  17. data/lib/amakanize/book_position.rb +4 -2
  18. data/lib/amakanize/filterable.rb +5 -3
  19. data/lib/amakanize/filters/base_filter.rb +2 -0
  20. data/lib/amakanize/filters/book_position_at_end_detection_filter.rb +8 -8
  21. data/lib/amakanize/filters/book_position_clearing_filter.rb +5 -5
  22. data/lib/amakanize/filters/book_position_in_bracket_detection_filter.rb +8 -8
  23. data/lib/amakanize/filters/book_position_in_words_detection_filter.rb +8 -8
  24. data/lib/amakanize/filters/book_position_number_canonicalization_filter.rb +5 -5
  25. data/lib/amakanize/filters/brackets_normalization_filter.rb +4 -2
  26. data/lib/amakanize/filters/continuous_spaces_normalization_filter.rb +4 -2
  27. data/lib/amakanize/filters/dash_between_alphabets_normalization_filter.rb +4 -2
  28. data/lib/amakanize/filters/html_unescape_filter.rb +5 -3
  29. data/lib/amakanize/filters/hyphen_minus_normalization_filter.rb +4 -2
  30. data/lib/amakanize/filters/normalization_filter.rb +4 -3
  31. data/lib/amakanize/filters/obvious_volume_number_deletion_filter.rb +7 -5
  32. data/lib/amakanize/filters/parentheses_deletion_filter.rb +4 -2
  33. data/lib/amakanize/filters/role_name_deletion_filter.rb +9 -7
  34. data/lib/amakanize/filters/space_between_exclamation_and_bracket_deletion_filter.rb +4 -2
  35. data/lib/amakanize/filters/space_deletion_filter.rb +4 -2
  36. data/lib/amakanize/filters/spaces_between_exclamations_deletion_filter.rb +4 -2
  37. data/lib/amakanize/filters/strip_filter.rb +4 -2
  38. data/lib/amakanize/filters/trailing_author_name_payload_deletion_filter.rb +6 -4
  39. data/lib/amakanize/filters/trailing_dash_deletion_filter.rb +6 -4
  40. data/lib/amakanize/filters/trailing_double_parentheses_singlization_filter.rb +6 -4
  41. data/lib/amakanize/filters/trailing_parentheses_deletion_filter.rb +5 -5
  42. data/lib/amakanize/filters/trailing_series_name_payload_deletion_filter.rb +5 -3
  43. data/lib/amakanize/filters/trailing_symbol_deletion_filter.rb +6 -4
  44. data/lib/amakanize/filters/trailing_volume_number_deletion_filter.rb +5 -5
  45. data/lib/amakanize/filters/video_position_detection_filter.rb +10 -9
  46. data/lib/amakanize/filters/video_position_number_conversion_filter.rb +115 -113
  47. data/lib/amakanize/series_name.rb +4 -2
  48. data/lib/amakanize/version.rb +3 -1
  49. data/lib/amakanize/video_position.rb +4 -2
  50. data/lib/amakanize.rb +41 -39
  51. metadata +11 -62
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: b733fa6b1b58408b9f775a8771148e0dd6fad83c
4
- data.tar.gz: e63462625cf13bff717399039967015d14704168
2
+ SHA256:
3
+ metadata.gz: 16678421179e2e75b6b7d4f9789f4e33a9f458f3b4b9d96dc2fed4f642d5e907
4
+ data.tar.gz: 52989b7b4056e9943f6f0e45e5bbe1b44b949cc23b714799d2dc59fedd698fd5
5
5
  SHA512:
6
- metadata.gz: 6297c44d37ced45e17163679010d169b5e73b20087fd73d4837a5097b20459732e9b5f9e80db98eb6c180a2e518f10611b5eb2178a72b155a7068bffd9d1fe0d
7
- data.tar.gz: cc21ebabb03d6d01cabe852fcc32989f304562490db8de1da197bfff7bc3c0e2a8148b928f272202adc7e5a7da7669071b6ea442c38ab98b38d8a19b75709605
6
+ metadata.gz: 3cd4c607e385326e3967d1397daf0b504d0832e41beb67048deee97d4cf6b8b392effdc083a87a86dee247ee6c71aa9e8c12308e62b9307142c3a78bdc4d2a01
7
+ data.tar.gz: 10a56038359bd17b023099449822dacea75a78f3a059c4a816c5babd0a3973246976ab5c179d286f455327495733f9c4e3db33afe9663c69d934e446bcbd915a
@@ -0,0 +1,23 @@
1
+ changelog:
2
+ categories:
3
+ - title: Added
4
+ labels:
5
+ - add
6
+ - title: Changed
7
+ labels:
8
+ - change
9
+ - title: Deprecated
10
+ labels:
11
+ - deprecate
12
+ - title: Fixed
13
+ labels:
14
+ - fix
15
+ - title: Removed
16
+ labels:
17
+ - remove
18
+ - title: Security
19
+ labels:
20
+ - security
21
+ - title: Others
22
+ labels:
23
+ - "*"
@@ -0,0 +1,26 @@
1
+ name: bump-request
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ version:
7
+ description: Version to change to.
8
+ required: true
9
+ type: string
10
+
11
+ jobs:
12
+ run:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v3
16
+ - name: Set up Ruby
17
+ uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: 3.1.2
20
+ bundler-cache: true
21
+ - uses: r7kamura/bump-request@v0
22
+ with:
23
+ command: |
24
+ sed -i -r 's/([0-9]+\.[0-9]+\.[0-9]+)/${{ inputs.version }}/' lib/*/version.rb
25
+ bundle install
26
+ version: ${{ inputs.version }}
@@ -0,0 +1,18 @@
1
+ name: github-label-sync
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ paths:
8
+ - .github/workflows/github-label-sync.yml
9
+ workflow_dispatch:
10
+
11
+ jobs:
12
+ build:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: r7kamura/github-label-sync-action@v0
16
+ with:
17
+ source_path: labels-keepachangelog.yml
18
+ source_repository: r7kamura/github-label-presets
@@ -0,0 +1,12 @@
1
+ name: release
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ jobs:
9
+ release:
10
+ uses: r7kamura/workflows/.github/workflows/gem-release.yml@main
11
+ secrets:
12
+ rubygems-org-api-key: ${{ secrets.RUBYGEMS_ORG_API_KEY }}
@@ -0,0 +1,27 @@
1
+ name: test
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+
9
+ jobs:
10
+ build:
11
+ runs-on: ubuntu-latest
12
+ name: Ruby ${{ matrix.ruby }}
13
+ strategy:
14
+ matrix:
15
+ ruby:
16
+ - '2.7'
17
+ - '3.1'
18
+
19
+ steps:
20
+ - uses: actions/checkout@v2
21
+ - name: Set up Ruby
22
+ uses: ruby/setup-ruby@v1
23
+ with:
24
+ ruby-version: ${{ matrix.ruby }}
25
+ bundler-cache: true
26
+ - name: Run the default task
27
+ run: bundle exec rake
data/.gitignore CHANGED
@@ -1,6 +1,5 @@
1
1
  /.bundle/
2
2
  /.yardoc
3
- /Gemfile.lock
4
3
  /_yardoc/
5
4
  /coverage/
6
5
  /doc/
data/.rubocop.yml CHANGED
@@ -1,84 +1,14 @@
1
1
  AllCops:
2
- Exclude:
3
- - db/**/*
4
- - node_modules/**/*
5
- - vendor/**/*
6
- TargetRubyVersion: 2.2
2
+ TargetRubyVersion: 2.7
7
3
 
8
- AsciiComments:
4
+ Layout/LineLength:
9
5
  Enabled: false
10
6
 
11
- Lint/HandleExceptions:
12
- Enabled: false
13
-
14
- Lint/UnusedBlockArgument:
15
- Enabled: false
16
-
17
- Lint/UnusedMethodArgument:
18
- Enabled: false
19
-
20
- Metrics/AbcSize:
21
- Enabled: false
22
-
23
- Metrics/ClassLength:
24
- Enabled: false
25
-
26
- Metrics/CyclomaticComplexity:
27
- Enabled: false
28
-
29
- Metrics/LineLength:
30
- Enabled: false
31
-
32
- Metrics/MethodLength:
33
- Enabled: false
34
-
35
- Metrics/ParameterLists:
36
- Enabled: false
37
-
38
- Metrics/PerceivedComplexity:
39
- Max: 10
40
-
41
- Style/AccessModifierIndentation:
7
+ Metrics:
42
8
  Enabled: false
43
9
 
44
10
  Style/Documentation:
45
11
  Enabled: false
46
12
 
47
- Style/DoubleNegation:
48
- Enabled: false
49
-
50
- Style/GuardClause:
51
- Enabled: false
52
-
53
- Style/IfUnlessModifier:
54
- Enabled: false
55
-
56
13
  Style/MultilineBlockChain:
57
14
  Enabled: false
58
-
59
- Style/MultilineMethodCallIndentation:
60
- Enabled: false
61
-
62
- Style/MutableConstant:
63
- Enabled: false
64
-
65
- Style/Next:
66
- Enabled: false
67
-
68
- Style/PercentLiteralDelimiters:
69
- Enabled: false
70
-
71
- Style/PredicateName:
72
- Enabled: false
73
-
74
- Style/SpaceAroundOperators:
75
- Enabled: false
76
-
77
- Style/StringLiterals:
78
- EnforcedStyle: double_quotes
79
-
80
- Style/TrailingCommaInArguments:
81
- Enabled: false
82
-
83
- Style/TrailingCommaInLiteral:
84
- Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## v0.7.0
2
+
3
+ - Require Ruby 2.5+
4
+
1
5
  ## v0.6.5
2
6
 
3
7
  - Fix typo in DashBetweenAl'p'habetsNormalizationFilter
data/Gemfile CHANGED
@@ -1,4 +1,10 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem"s dependencies in amakanize.gemspec
4
6
  gemspec
7
+
8
+ gem 'rake'
9
+ gem 'rspec'
10
+ gem 'rubocop'
data/Gemfile.lock ADDED
@@ -0,0 +1,58 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ amakanize (0.8.0)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ ast (2.4.2)
10
+ diff-lcs (1.5.0)
11
+ json (2.6.2)
12
+ parallel (1.22.1)
13
+ parser (3.1.3.0)
14
+ ast (~> 2.4.1)
15
+ rainbow (3.1.1)
16
+ rake (13.0.6)
17
+ regexp_parser (2.6.1)
18
+ rexml (3.2.5)
19
+ rspec (3.12.0)
20
+ rspec-core (~> 3.12.0)
21
+ rspec-expectations (~> 3.12.0)
22
+ rspec-mocks (~> 3.12.0)
23
+ rspec-core (3.12.0)
24
+ rspec-support (~> 3.12.0)
25
+ rspec-expectations (3.12.0)
26
+ diff-lcs (>= 1.2.0, < 2.0)
27
+ rspec-support (~> 3.12.0)
28
+ rspec-mocks (3.12.0)
29
+ diff-lcs (>= 1.2.0, < 2.0)
30
+ rspec-support (~> 3.12.0)
31
+ rspec-support (3.12.0)
32
+ rubocop (1.39.0)
33
+ json (~> 2.3)
34
+ parallel (~> 1.10)
35
+ parser (>= 3.1.2.1)
36
+ rainbow (>= 2.2.2, < 4.0)
37
+ regexp_parser (>= 1.8, < 3.0)
38
+ rexml (>= 3.2.5, < 4.0)
39
+ rubocop-ast (>= 1.23.0, < 2.0)
40
+ ruby-progressbar (~> 1.7)
41
+ unicode-display_width (>= 1.4.0, < 3.0)
42
+ rubocop-ast (1.23.0)
43
+ parser (>= 3.1.1.0)
44
+ ruby-progressbar (1.11.0)
45
+ unicode-display_width (2.3.0)
46
+
47
+ PLATFORMS
48
+ x86_64-linux
49
+
50
+ DEPENDENCIES
51
+ amakanize!
52
+ bundler
53
+ rake
54
+ rspec
55
+ rubocop
56
+
57
+ BUNDLED WITH
58
+ 2.3.26
data/README.md CHANGED
@@ -1,10 +1,8 @@
1
1
  # Amakanize
2
2
 
3
- [![CircleCI](https://img.shields.io/circleci/project/github/amakan/amakanize.svg)](https://circleci.com/gh/amakan/amakanize)
4
- [![Gem Version](https://badge.fury.io/rb/amakanize.svg)](https://rubygems.org/gems/amakanize)
5
- [![Documentation](http://img.shields.io/badge/docs-rdoc.info-blue.svg)](http://www.rubydoc.info/github/amakan/amakanize)
3
+ [![test](https://github.com/amakan/amakanize/actions/workflows/test.yml/badge.svg)](https://github.com/amakan/amakanize/actions/workflows/test.yml)
6
4
 
7
- Utilities to canonicalize names for [amakan.net](https://amakan.net/).
5
+ Utilities to canonicalize Japanese comic series names and author names.
8
6
 
9
7
  ## Installation
10
8
 
data/Rakefile CHANGED
@@ -1,5 +1,12 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
3
5
 
4
6
  RSpec::Core::RakeTask.new(:spec)
5
- task default: :spec
7
+
8
+ require 'rubocop/rake_task'
9
+
10
+ RuboCop::RakeTask.new
11
+
12
+ task default: %i[spec rubocop]
data/amakanize.gemspec CHANGED
@@ -1,23 +1,21 @@
1
- lib = File.expand_path("../lib", __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
2
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require "amakanize/version"
5
+ require 'amakanize/version'
4
6
 
5
7
  Gem::Specification.new do |spec|
6
- spec.name = "amakanize"
8
+ spec.name = 'amakanize'
7
9
  spec.version = Amakanize::VERSION
8
- spec.authors = ["Ryo Nakamura"]
9
- spec.email = ["r7kamura@gmail.com"]
10
- spec.summary = "Utilities to canonicalize series names and author names."
11
- spec.homepage = "https://github.com/amakan/amakanize"
12
- spec.license = "MIT"
10
+ spec.authors = ['Ryo Nakamura']
11
+ spec.email = ['r7kamura@gmail.com']
12
+ spec.summary = 'Utilities to canonicalize Japanese comic series names and author names.'
13
+ spec.homepage = 'https://github.com/amakan/amakanize'
14
+ spec.license = 'MIT'
13
15
 
14
16
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
15
- spec.require_paths = ["lib"]
16
- spec.required_ruby_version = ">= 2.2.2"
17
+ spec.require_paths = ['lib']
18
+ spec.required_ruby_version = '>= 2.7'
17
19
 
18
- spec.add_dependency "activesupport"
19
- spec.add_development_dependency "bundler"
20
- spec.add_development_dependency "rake", "~> 10.0"
21
- spec.add_development_dependency "rspec", "3.5.0"
22
- spec.add_development_dependency "rubocop", "0.44.1"
20
+ spec.add_development_dependency 'bundler'
23
21
  end
@@ -1,4 +1,6 @@
1
- require "amakanize/filterable"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filterable'
2
4
 
3
5
  module Amakanize
4
6
  class AuthorName
@@ -14,7 +16,7 @@ module Amakanize
14
16
  ::Amakanize::Filters::ParenthesesDeletionFilter,
15
17
  ::Amakanize::Filters::RoleNameDeletionFilter,
16
18
  ::Amakanize::Filters::TrailingAuthorNamePayloadDeletionFilter,
17
- ::Amakanize::Filters::SpaceDeletionFilter,
19
+ ::Amakanize::Filters::SpaceDeletionFilter
18
20
  ]
19
21
  end
20
22
  end
@@ -1,12 +1,14 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Amakanize
2
4
  class AuthorNames
3
5
  include ::Enumerable
4
6
 
5
- AUTHOR_NAME_SEPARATORS = %w(
7
+ AUTHOR_NAME_SEPARATORS = %w[
6
8
  ,
7
9
 
8
10
 
9
- )
11
+ ].freeze
10
12
 
11
13
  AUTHOR_NAME_SEPARATORS_REGEXP = ::Regexp.union(AUTHOR_NAME_SEPARATORS)
12
14
 
@@ -34,9 +36,7 @@ module Amakanize
34
36
 
35
37
  # @private
36
38
  # @return [String]
37
- def raw
38
- @raw
39
- end
39
+ attr_reader :raw
40
40
 
41
41
  # @private
42
42
  # @return [Array<String>]
@@ -1,4 +1,6 @@
1
- require "amakanize/filterable"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filterable'
2
4
 
3
5
  module Amakanize
4
6
  class BookPosition
@@ -25,7 +27,7 @@ module Amakanize
25
27
  ::Amakanize::Filters::BookPositionAtEndDetectionFilter,
26
28
  ::Amakanize::Filters::BookPositionClearingFilter,
27
29
  ::Amakanize::Filters::VideoPositionNumberConversionFilter,
28
- ::Amakanize::Filters::BookPositionNumberCanonicalizationFilter,
30
+ ::Amakanize::Filters::BookPositionNumberCanonicalizationFilter
29
31
  ]
30
32
  end
31
33
  end
@@ -1,8 +1,10 @@
1
- require "active_support/concern"
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Amakanize
4
4
  module Filterable
5
- extend ::ActiveSupport::Concern
5
+ def self.included(base)
6
+ base.extend(ClassMethods)
7
+ end
6
8
 
7
9
  # @param raw [String]
8
10
  def initialize(raw)
@@ -12,7 +14,7 @@ module Amakanize
12
14
  # @note Override
13
15
  def to_s
14
16
  filters.inject(context: {}, output: raw) do |result, filter|
15
- filter.call(result)
17
+ filter.call(**result)
16
18
  end[:output]
17
19
  end
18
20
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Amakanize
2
4
  module Filters
3
5
  class BaseFilter
@@ -1,4 +1,6 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
@@ -9,19 +11,17 @@ module Amakanize
9
11
  (?:#{::Amakanize::PATTERN_OF_SUFFIX_OF_BOOK_POSITION})?
10
12
  \s*
11
13
  \z
12
- /x
14
+ /x.freeze
13
15
 
14
16
  # @note Override
15
17
  def call(context:, output:)
16
- unless context[:position_detected]
17
- if position = output[PATTERN, 1]
18
- context[:position_detected] = true
19
- output = position
20
- end
18
+ if !context[:position_detected] && (position = output[PATTERN, 1])
19
+ context[:position_detected] = true
20
+ output = position
21
21
  end
22
22
  {
23
23
  context: context,
24
- output: output,
24
+ output: output
25
25
  }
26
26
  end
27
27
  end
@@ -1,16 +1,16 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
5
7
  class BookPositionClearingFilter < ::Amakanize::Filters::BaseFilter
6
8
  # @note Override
7
9
  def call(context:, output:)
8
- unless context[:position_detected]
9
- output = ""
10
- end
10
+ output = '' unless context[:position_detected]
11
11
  {
12
12
  context: context,
13
- output: output,
13
+ output: output
14
14
  }
15
15
  end
16
16
  end
@@ -1,4 +1,6 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
@@ -9,19 +11,17 @@ module Amakanize
9
11
  (#{::Amakanize::PATTERN_OF_NUMERIC_CHARACTERS})
10
12
  (?:#{::Amakanize::PATTERN_OF_SUFFIX_OF_BOOK_POSITION})?
11
13
  \)
12
- /x
14
+ /x.freeze
13
15
 
14
16
  # @note Override
15
17
  def call(context:, output:)
16
- unless context[:position_detected]
17
- if position = output[PATTERN, 1]
18
- context[:position_detected] = true
19
- output = position
20
- end
18
+ if !context[:position_detected] && (position = output[PATTERN, 1])
19
+ context[:position_detected] = true
20
+ output = position
21
21
  end
22
22
  {
23
23
  context: context,
24
- output: output,
24
+ output: output
25
25
  }
26
26
  end
27
27
  end
@@ -1,4 +1,6 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
@@ -6,19 +8,17 @@ module Amakanize
6
8
  PATTERN = /
7
9
  (?:#{::Amakanize::PATTERN_OF_PREFIX_OF_BOOK_POSITION})(#{::Amakanize::PATTERN_OF_NUMERIC_CHARACTERS})
8
10
  |(#{::Amakanize::PATTERN_OF_NUMERIC_CHARACTERS})(?:#{::Amakanize::PATTERN_OF_SUFFIX_OF_BOOK_POSITION})
9
- /x
11
+ /x.freeze
10
12
 
11
13
  # @note Override
12
14
  def call(context:, output:)
13
- unless context[:position_detected]
14
- if position = output[PATTERN, 1]
15
- context[:position_detected] = true
16
- output = position
17
- end
15
+ if !context[:position_detected] && (position = output[PATTERN, 1])
16
+ context[:position_detected] = true
17
+ output = position
18
18
  end
19
19
  {
20
20
  context: context,
21
- output: output,
21
+ output: output
22
22
  }
23
23
  end
24
24
  end
@@ -1,16 +1,16 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
5
7
  class BookPositionNumberCanonicalizationFilter < ::Amakanize::Filters::BaseFilter
6
8
  # @note Override
7
9
  def call(context:, output:)
8
- if context[:position_detected]
9
- output = output.gsub(/\A0+([1-9]+)/, '\1')
10
- end
10
+ output = output.gsub(/\A0+([1-9]+)/, '\1') if context[:position_detected]
11
11
  {
12
12
  context: context,
13
- output: output,
13
+ output: output
14
14
  }
15
15
  end
16
16
  end
@@ -1,4 +1,6 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
@@ -33,7 +35,7 @@ module Amakanize
33
35
  {
34
36
  context: context,
35
37
  output: PAIRS.each_with_object(output) do |(open, close), result|
36
- result.gsub!(/#{open}([^\( ]+?)#{close}/, '(\1)')
38
+ result.gsub!(/#{open}([^( ]+?)#{close}/, '(\1)')
37
39
  end.gsub(/\s*\((.+?)\)(?:\z|(\s*))/) do
38
40
  " \(#{::Regexp.last_match(1)})#{' ' if Regexp.last_match(2)}"
39
41
  end
@@ -1,4 +1,6 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
@@ -9,7 +11,7 @@ module Amakanize
9
11
  def call(context:, output:)
10
12
  {
11
13
  context: context,
12
- output: output.gsub(/\s+/, " "),
14
+ output: output.gsub(/\s+/, ' ')
13
15
  }
14
16
  end
15
17
  end
@@ -1,4 +1,6 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
@@ -9,7 +11,7 @@ module Amakanize
9
11
  def call(context:, output:)
10
12
  {
11
13
  context: context,
12
- output: output.gsub(/(\w)ー(\w)/, '\1-\2'),
14
+ output: output.gsub(/(\w)ー(\w)/, '\1-\2')
13
15
  }
14
16
  end
15
17
  end