amakanize 0.4.9 → 0.5.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/amakanize/author_name.rb +18 -12
- data/lib/amakanize/filters/base_filter.rb +4 -3
- data/lib/amakanize/filters/brackets_normalization_filter.rb +11 -8
- data/lib/amakanize/filters/continuous_spaces_normalization_filter.rb +15 -0
- data/lib/amakanize/filters/dash_between_alphabets_normalization_filter.rb +7 -4
- data/lib/amakanize/filters/html_unescape_filter.rb +7 -4
- data/lib/amakanize/filters/hyphen_minus_normalization_filter.rb +7 -4
- data/lib/amakanize/filters/normalization_filter.rb +7 -4
- data/lib/amakanize/filters/obvious_volume_number_deletion_filter.rb +23 -8
- data/lib/amakanize/filters/parentheses_deletion_filter.rb +7 -4
- data/lib/amakanize/filters/role_name_deletion_filter.rb +11 -8
- data/lib/amakanize/filters/space_between_exclamation_and_bracket_deletion_filter.rb +7 -4
- data/lib/amakanize/filters/space_deletion_filter.rb +7 -4
- data/lib/amakanize/filters/spaces_between_exclamations_deletion_filter.rb +7 -4
- data/lib/amakanize/filters/strip_filter.rb +7 -4
- data/lib/amakanize/filters/trailing_author_name_payload_deletion_filter.rb +7 -4
- data/lib/amakanize/filters/trailing_dash_deletion_filter.rb +7 -4
- data/lib/amakanize/filters/trailing_parentheses_deletion_filter.rb +10 -4
- data/lib/amakanize/filters/trailing_series_name_payload_deletion_filter.rb +8 -4
- data/lib/amakanize/filters/trailing_volume_number_deletion_filter.rb +10 -4
- data/lib/amakanize/series_name.rb +25 -18
- data/lib/amakanize/version.rb +1 -1
- data/lib/amakanize.rb +24 -24
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c624806345fd98cdbd36f5f0b3b8a374270cfbc4
|
4
|
+
data.tar.gz: 71f031cf37ce3a73dcfc7c406f903adaaa82373a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e86133b59f0b6bfec6b48dff69025e42b642bdc4cff0813dbe763ec8739d2f32d7555468790d88e244da24e20f87c3413b61b5916f5abff3e2944cbeb6167fa
|
7
|
+
data.tar.gz: 96e77bc51ebbf7eed3472d3b6561f592a55c249db1445b98925b5f2aabb5f08be1fce4597c97493e6779161f0edcfadf29d15781cc03891c4e1f08582e23f8e1
|
data/CHANGELOG.md
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
module Amakanize
|
2
2
|
class AuthorName
|
3
3
|
class << self
|
4
|
-
# @return [Array<
|
5
|
-
def
|
6
|
-
@
|
7
|
-
::Amakanize::Filters::HtmlUnescapeFilter
|
8
|
-
::Amakanize::Filters::NormalizationFilter
|
9
|
-
::Amakanize::Filters::HyphenMinusNormalizationFilter
|
10
|
-
::Amakanize::Filters::ParenthesesDeletionFilter
|
11
|
-
::Amakanize::Filters::RoleNameDeletionFilter
|
12
|
-
::Amakanize::Filters::TrailingAuthorNamePayloadDeletionFilter
|
13
|
-
::Amakanize::Filters::SpaceDeletionFilter
|
4
|
+
# @return [Array<Class>]
|
5
|
+
def filter_classes
|
6
|
+
@filter_classes ||= [
|
7
|
+
::Amakanize::Filters::HtmlUnescapeFilter,
|
8
|
+
::Amakanize::Filters::NormalizationFilter,
|
9
|
+
::Amakanize::Filters::HyphenMinusNormalizationFilter,
|
10
|
+
::Amakanize::Filters::ParenthesesDeletionFilter,
|
11
|
+
::Amakanize::Filters::RoleNameDeletionFilter,
|
12
|
+
::Amakanize::Filters::TrailingAuthorNamePayloadDeletionFilter,
|
13
|
+
::Amakanize::Filters::SpaceDeletionFilter,
|
14
14
|
]
|
15
15
|
end
|
16
16
|
end
|
@@ -22,9 +22,15 @@ module Amakanize
|
|
22
22
|
|
23
23
|
# @note Override
|
24
24
|
def to_s
|
25
|
-
|
25
|
+
filters.inject(context: {}, output: @raw) do |result, filter|
|
26
26
|
filter.call(result)
|
27
|
-
end
|
27
|
+
end[:output]
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def filters
|
33
|
+
@filters ||= self.class.filter_classes.map(&:new)
|
28
34
|
end
|
29
35
|
end
|
30
36
|
end
|
@@ -1,9 +1,10 @@
|
|
1
1
|
module Amakanize
|
2
2
|
module Filters
|
3
3
|
class BaseFilter
|
4
|
-
# @param
|
5
|
-
# @
|
6
|
-
|
4
|
+
# @param context [Hash]
|
5
|
+
# @param output [String]
|
6
|
+
# @return [Hash]
|
7
|
+
def call(context:, output:)
|
7
8
|
raise ::NotImplementedError
|
8
9
|
end
|
9
10
|
end
|
@@ -25,14 +25,17 @@ module Amakanize
|
|
25
25
|
|.each_slice(2)
|
26
26
|
|
27
27
|
# @note Override
|
28
|
-
# @param
|
29
|
-
# @return [
|
30
|
-
def call(
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
28
|
+
# @param output [String] e.g. `"IS〈インフィニット・ストラトス〉 1 (オーバーラップ文庫)"`
|
29
|
+
# @return [Hash] e.g. `"IS (インフィニット・ストラトス) 1 (オーバーラップ文庫)"`
|
30
|
+
def call(context:, output:)
|
31
|
+
{
|
32
|
+
context: context,
|
33
|
+
output: PAIRS.each_with_object(output) do |(open, close), result|
|
34
|
+
result.gsub!(/#{open}([^\(]+?)#{close}/, '(\1)')
|
35
|
+
end.gsub(/\s*\((.+?)\)(?:\z|(\s*))/) do
|
36
|
+
" \(#{$1})#{' ' if $2}"
|
37
|
+
end
|
38
|
+
}
|
36
39
|
end
|
37
40
|
end
|
38
41
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Amakanize
|
2
|
+
module Filters
|
3
|
+
class ContinuousSpacesNormalizationFilter < BaseFilter
|
4
|
+
# @note Override
|
5
|
+
# @param output [String] e.g. `"ウメハラ FIGHTING GAMERS!"`
|
6
|
+
# @return [Hash] e.g. `"ウメハラ FIGHTING GAMERS!"`
|
7
|
+
def call(context:, output:)
|
8
|
+
{
|
9
|
+
context: context,
|
10
|
+
output: output.gsub(/\s+/, " "),
|
11
|
+
}
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -2,10 +2,13 @@ module Amakanize
|
|
2
2
|
module Filters
|
3
3
|
class DashBetweenAlhabetsNormalizationFilter < BaseFilter
|
4
4
|
# @note Override
|
5
|
-
# @param
|
6
|
-
# @return [
|
7
|
-
def call(
|
8
|
-
|
5
|
+
# @param output [String] e.g. `"D.Grayーman"`
|
6
|
+
# @return [Hash] e.g. `"D.Gray-man"`
|
7
|
+
def call(context:, output:)
|
8
|
+
{
|
9
|
+
context: context,
|
10
|
+
output: output.gsub(/(\w)ー(\w)/, '\1-\2'),
|
11
|
+
}
|
9
12
|
end
|
10
13
|
end
|
11
14
|
end
|
@@ -4,10 +4,13 @@ module Amakanize
|
|
4
4
|
module Filters
|
5
5
|
class HtmlUnescapeFilter < BaseFilter
|
6
6
|
# @note Override
|
7
|
-
# @param
|
8
|
-
# @return [
|
9
|
-
def call(
|
10
|
-
|
7
|
+
# @param output [String] e.g. `"<ハノカゲ>"`
|
8
|
+
# @return [Hash] e.g. `"ハノカゲ"`
|
9
|
+
def call(context:, output:)
|
10
|
+
{
|
11
|
+
context: context,
|
12
|
+
output: ::CGI.unescapeHTML(output),
|
13
|
+
}
|
11
14
|
end
|
12
15
|
end
|
13
16
|
end
|
@@ -3,10 +3,13 @@ module Amakanize
|
|
3
3
|
class HyphenMinusNormalizationFilter < BaseFilter
|
4
4
|
# @note Override
|
5
5
|
# @note Replace U+2010 (hyphen) with U+002D (hyphen/minus)
|
6
|
-
# @param
|
7
|
-
# @return [
|
8
|
-
def call(
|
9
|
-
|
6
|
+
# @param output [String] e.g. `"D.Gray‐man"`
|
7
|
+
# @return [Hash] e.g. `"D.Gray-man"`
|
8
|
+
def call(context:, output:)
|
9
|
+
{
|
10
|
+
context: context,
|
11
|
+
output: output.gsub("‐", "-"),
|
12
|
+
}
|
10
13
|
end
|
11
14
|
end
|
12
15
|
end
|
@@ -4,10 +4,13 @@ module Amakanize
|
|
4
4
|
module Filters
|
5
5
|
class NormalizationFilter < BaseFilter
|
6
6
|
# @note Override
|
7
|
-
# @param
|
8
|
-
# @return [
|
9
|
-
def call(
|
10
|
-
|
7
|
+
# @param output [String] e.g. `"ぽんかん(8)"`, `"ぽんかん⑧"`
|
8
|
+
# @return [Hash] e.g. `"ぽんかん(8)"`, `"ぽんかん8"`
|
9
|
+
def call(context:, output:)
|
10
|
+
{
|
11
|
+
context: context,
|
12
|
+
output: ::ActiveSupport::Multibyte::Unicode.normalize(output),
|
13
|
+
}
|
11
14
|
end
|
12
15
|
end
|
13
16
|
end
|
@@ -1,15 +1,30 @@
|
|
1
1
|
module Amakanize
|
2
2
|
module Filters
|
3
3
|
class ObviousVolumeNumberDeletionFilter < BaseFilter
|
4
|
+
PATTERN = Regexp.union(
|
5
|
+
/\s*#{::Amakanize::PATTERN_OF_VOLUME_PREFIX}?#{::Amakanize::PATTERN_OF_NUMERIC_CHARACTERS}(?:話|巻|版).*/,
|
6
|
+
/\s+#{::Amakanize::PATTERN_OF_VOLUME_PREFIX}?#{::Amakanize::PATTERN_OF_NUMERIC_CHARACTERS}(?:話|巻|版)?:\s+.*/,
|
7
|
+
/\s+#{::Amakanize::PATTERN_OF_VOLUME_PREFIX}#{::Amakanize::PATTERN_OF_NUMERIC_CHARACTERS}\s+.*/,
|
8
|
+
/\s+Lv\.?\s*#{::Amakanize::PATTERN_OF_NUMERIC_CHARACTERS}(?:\s+.*|\z)/,
|
9
|
+
/\s*\(#{::Amakanize::PATTERN_OF_VOLUME_PREFIX}?#{::Amakanize::PATTERN_OF_NUMERIC_CHARACTERS}\).*/,
|
10
|
+
/\s*\d+年\s*\d+(?:月|\/\d+\s*)号.*/,
|
11
|
+
/\s*\d{4}\s*(?:AUTUMN|SPRING|SUMMER|WINTER)/,
|
12
|
+
)
|
13
|
+
|
4
14
|
# @note Override
|
5
|
-
# @param
|
6
|
-
# @return [
|
7
|
-
def call(
|
8
|
-
|
9
|
-
.
|
10
|
-
|
11
|
-
|
12
|
-
|
15
|
+
# @param output [String] e.g. `"刀語 第十一話 毒刀・鍍"`, `"アニウッド大通り 1: アニメ監督一家物語"`
|
16
|
+
# @return [Hash] e.g. `"刀語"`, `"アニウッド大通り"`
|
17
|
+
def call(context:, output:)
|
18
|
+
unless context[:volume_number_removed]
|
19
|
+
output = output.sub(PATTERN) do
|
20
|
+
context[:volume_number_removed] = true
|
21
|
+
""
|
22
|
+
end
|
23
|
+
end
|
24
|
+
{
|
25
|
+
context: context,
|
26
|
+
output: output,
|
27
|
+
}
|
13
28
|
end
|
14
29
|
end
|
15
30
|
end
|
@@ -2,10 +2,13 @@ module Amakanize
|
|
2
2
|
module Filters
|
3
3
|
class ParenthesesDeletionFilter < BaseFilter
|
4
4
|
# @note Override
|
5
|
-
# @param
|
6
|
-
# @return [
|
7
|
-
def call(
|
8
|
-
|
5
|
+
# @param output [String] e.g. `"ぽんかん(8)"`
|
6
|
+
# @return [Hash] e.g. `"ぽんかん8"`
|
7
|
+
def call(context:, output:)
|
8
|
+
{
|
9
|
+
context: context,
|
10
|
+
output: output.gsub(/\((\d+)\)/, '\1'),
|
11
|
+
}
|
9
12
|
end
|
10
13
|
end
|
11
14
|
end
|
@@ -13,14 +13,17 @@ module Amakanize
|
|
13
13
|
)
|
14
14
|
|
15
15
|
# @note Override
|
16
|
-
# @param
|
17
|
-
# @return [
|
18
|
-
def call(
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
16
|
+
# @param output [String] e.g. `"漫画:ハノカゲ"`, `"ハノカゲ:漫画"`
|
17
|
+
# @return [Hash] e.g. `"ハノカゲ"`
|
18
|
+
def call(context:, output:)
|
19
|
+
{
|
20
|
+
context: context,
|
21
|
+
output: output
|
22
|
+
.gsub(%r<\A#{PATTERN_OF_ROLE_NAME}[:/]>, "")
|
23
|
+
.gsub(%r<[:/]#{PATTERN_OF_ROLE_NAME}\z>, "")
|
24
|
+
.gsub(%r<\A\(#{PATTERN_OF_ROLE_NAME}(?:・#{PATTERN_OF_ROLE_NAME})*\)>, "")
|
25
|
+
.gsub(%r<\(#{PATTERN_OF_ROLE_NAME}(?:・#{PATTERN_OF_ROLE_NAME})*\)\z>, ""),
|
26
|
+
}
|
24
27
|
end
|
25
28
|
end
|
26
29
|
end
|
@@ -2,10 +2,13 @@ module Amakanize
|
|
2
2
|
module Filters
|
3
3
|
class SpaceBetweenExclamationAndBracketDeletionFilter < BaseFilter
|
4
4
|
# @note Override
|
5
|
-
# @param
|
6
|
-
# @return [
|
7
|
-
def call(
|
8
|
-
|
5
|
+
# @param output [String] e.g. `"まおゆう魔王勇者 「この我のものとなれ、勇者よ」「断る! 」"`
|
6
|
+
# @return [Hash] e.g. `"まおゆう魔王勇者 「この我のものとなれ、勇者よ」「断る!」"`
|
7
|
+
def call(context:, output:)
|
8
|
+
{
|
9
|
+
context: context,
|
10
|
+
output: output.gsub(/!\s+」/, "!」"),
|
11
|
+
}
|
9
12
|
end
|
10
13
|
end
|
11
14
|
end
|
@@ -2,10 +2,13 @@ module Amakanize
|
|
2
2
|
module Filters
|
3
3
|
class SpaceDeletionFilter < BaseFilter
|
4
4
|
# @note Override
|
5
|
-
# @param
|
6
|
-
# @return [
|
7
|
-
def call(
|
8
|
-
|
5
|
+
# @param output [String] e.g. `"渡 航"`
|
6
|
+
# @return [Hash] e.g. `"渡航"`
|
7
|
+
def call(context:, output:)
|
8
|
+
{
|
9
|
+
context: context,
|
10
|
+
output: output.gsub(/\s+/, ""),
|
11
|
+
}
|
9
12
|
end
|
10
13
|
end
|
11
14
|
end
|
@@ -2,10 +2,13 @@ module Amakanize
|
|
2
2
|
module Filters
|
3
3
|
class SpacesBetweenExclamationsDeletionFilter < BaseFilter
|
4
4
|
# @note Override
|
5
|
-
# @param
|
6
|
-
# @return [
|
7
|
-
def call(
|
8
|
-
|
5
|
+
# @param output [String] e.g. `"ばくおん! !"`
|
6
|
+
# @return [Hash] e.g. `"ばくおん!!"`
|
7
|
+
def call(context:, output:)
|
8
|
+
{
|
9
|
+
context: context,
|
10
|
+
output: output.gsub(/!\s+!/, "!!"),
|
11
|
+
}
|
9
12
|
end
|
10
13
|
end
|
11
14
|
end
|
@@ -2,10 +2,13 @@ module Amakanize
|
|
2
2
|
module Filters
|
3
3
|
class StripFilter < BaseFilter
|
4
4
|
# @note Override
|
5
|
-
# @param
|
6
|
-
# @return [
|
7
|
-
def call(
|
8
|
-
|
5
|
+
# @param output [String] e.g. `" ハノカゲ "`
|
6
|
+
# @return [Hash] e.g. `"ハノカゲ"`
|
7
|
+
def call(context:, output:)
|
8
|
+
{
|
9
|
+
context: context,
|
10
|
+
output: output.strip,
|
11
|
+
}
|
9
12
|
end
|
10
13
|
end
|
11
14
|
end
|
@@ -11,10 +11,13 @@ module Amakanize
|
|
11
11
|
)
|
12
12
|
|
13
13
|
# @note Override
|
14
|
-
# @param
|
15
|
-
# @return [
|
16
|
-
def call(
|
17
|
-
|
14
|
+
# @param output [String] e.g. `"ハノカゲ ほか"`
|
15
|
+
# @return [Hash] e.g. `"ハノカゲ"`
|
16
|
+
def call(context:, output:)
|
17
|
+
{
|
18
|
+
context: context,
|
19
|
+
output: output.gsub(/\s+#{::Regexp.union(PAYLOADS)}\z/, ""),
|
20
|
+
}
|
18
21
|
end
|
19
22
|
end
|
20
23
|
end
|
@@ -21,10 +21,13 @@ module Amakanize
|
|
21
21
|
)
|
22
22
|
|
23
23
|
# @note Override
|
24
|
-
# @param
|
25
|
-
# @return [
|
26
|
-
def call(
|
27
|
-
|
24
|
+
# @param output [String] e.g. `"アド・アストラ 1 ─スキピオとハンニバル─"`
|
25
|
+
# @return [Hash] e.g. `"アド・アストラ 1"`
|
26
|
+
def call(context:, output:)
|
27
|
+
{
|
28
|
+
context: context,
|
29
|
+
output: output.gsub(/\s*#{::Regexp.union(TOKENS)}.*/, ""),
|
30
|
+
}
|
28
31
|
end
|
29
32
|
end
|
30
33
|
end
|
@@ -2,10 +2,16 @@ module Amakanize
|
|
2
2
|
module Filters
|
3
3
|
class TrailingParenthesesDeletionFilter < BaseFilter
|
4
4
|
# @note Override
|
5
|
-
# @param
|
6
|
-
# @return [
|
7
|
-
def call(
|
8
|
-
|
5
|
+
# @param output [String] e.g. `"魔法使いの嫁 通常版 4 (BLADE COMICS)"`
|
6
|
+
# @return [Hash] e.g. `"魔法使いの嫁 通常版 4"`
|
7
|
+
def call(context:, output:)
|
8
|
+
unless context[:volume_number_removed]
|
9
|
+
output = output.sub(/\s*\([^\(]+\)\z/, "")
|
10
|
+
end
|
11
|
+
{
|
12
|
+
context: context,
|
13
|
+
output: output,
|
14
|
+
}
|
9
15
|
end
|
10
16
|
end
|
11
17
|
end
|
@@ -3,13 +3,17 @@ module Amakanize
|
|
3
3
|
class TrailingSeriesNamePayloadDeletionFilter < BaseFilter
|
4
4
|
PAYLOADS = %w(
|
5
5
|
通常版
|
6
|
+
(未分類)
|
6
7
|
)
|
7
8
|
|
8
9
|
# @note Override
|
9
|
-
# @param
|
10
|
-
# @return [
|
11
|
-
def call(
|
12
|
-
|
10
|
+
# @param output [String] e.g. `"魔法使いの嫁 通常版"`
|
11
|
+
# @return [Hash] e.g. `"魔法使いの嫁"`
|
12
|
+
def call(context:, output:)
|
13
|
+
{
|
14
|
+
context: context,
|
15
|
+
output: output.gsub(/\s+#{::Regexp.union(PAYLOADS)}\z/, ""),
|
16
|
+
}
|
13
17
|
end
|
14
18
|
end
|
15
19
|
end
|
@@ -2,10 +2,16 @@ module Amakanize
|
|
2
2
|
module Filters
|
3
3
|
class TrailingVolumeNumberDeletionFilter < BaseFilter
|
4
4
|
# @note Override
|
5
|
-
# @param
|
6
|
-
# @return [
|
7
|
-
def call(
|
8
|
-
|
5
|
+
# @param output [String] e.g. `"やはり俺の青春ラブコメはまちがっている。4"`, `"ネトゲの嫁は女の子じゃないと思った? Lv.2"`
|
6
|
+
# @return [Hash] e.g. `"やはり俺の青春ラブコメはまちがっている。"`, `"ネトゲの嫁は女の子じゃないと思った?"`
|
7
|
+
def call(context:, output:)
|
8
|
+
if !context[:volume_number_removed] && !output.match(/[^\s]Lv\.?\s*#{Amakanize::PATTERN_OF_NUMERIC_CHARACTERS}\z/i)
|
9
|
+
output = output.sub(/,?\s*#{PATTERN_OF_VOLUME_PREFIX}?#{Amakanize::PATTERN_OF_NUMERIC_CHARACTERS}(?:話|巻|版)?(?:\s*\(.*?\))?\z/, "")
|
10
|
+
end
|
11
|
+
{
|
12
|
+
context: context,
|
13
|
+
output: output,
|
14
|
+
}
|
9
15
|
end
|
10
16
|
end
|
11
17
|
end
|
@@ -1,22 +1,23 @@
|
|
1
1
|
module Amakanize
|
2
2
|
class SeriesName
|
3
3
|
class << self
|
4
|
-
# @return [Array<
|
5
|
-
def
|
6
|
-
@
|
7
|
-
::Amakanize::Filters::HtmlUnescapeFilter
|
8
|
-
::Amakanize::Filters::NormalizationFilter
|
9
|
-
::Amakanize::Filters::
|
10
|
-
::Amakanize::Filters::
|
11
|
-
::Amakanize::Filters::
|
12
|
-
::Amakanize::Filters::
|
13
|
-
::Amakanize::Filters::
|
14
|
-
::Amakanize::Filters::
|
15
|
-
::Amakanize::Filters::
|
16
|
-
::Amakanize::Filters::
|
17
|
-
::Amakanize::Filters::
|
18
|
-
::Amakanize::Filters::
|
19
|
-
::Amakanize::Filters::
|
4
|
+
# @return [Array<Class>]
|
5
|
+
def filter_classes
|
6
|
+
@filter_classes ||= [
|
7
|
+
::Amakanize::Filters::HtmlUnescapeFilter,
|
8
|
+
::Amakanize::Filters::NormalizationFilter,
|
9
|
+
::Amakanize::Filters::ContinuousSpacesNormalizationFilter,
|
10
|
+
::Amakanize::Filters::HyphenMinusNormalizationFilter,
|
11
|
+
::Amakanize::Filters::DashBetweenAlhabetsNormalizationFilter,
|
12
|
+
::Amakanize::Filters::BracketsNormalizationFilter,
|
13
|
+
::Amakanize::Filters::SpacesBetweenExclamationsDeletionFilter,
|
14
|
+
::Amakanize::Filters::SpaceBetweenExclamationAndBracketDeletionFilter,
|
15
|
+
::Amakanize::Filters::ObviousVolumeNumberDeletionFilter,
|
16
|
+
::Amakanize::Filters::TrailingParenthesesDeletionFilter,
|
17
|
+
::Amakanize::Filters::TrailingDashDeletionFilter,
|
18
|
+
::Amakanize::Filters::TrailingSeriesNamePayloadDeletionFilter,
|
19
|
+
::Amakanize::Filters::TrailingVolumeNumberDeletionFilter,
|
20
|
+
::Amakanize::Filters::TrailingSeriesNamePayloadDeletionFilter,
|
20
21
|
]
|
21
22
|
end
|
22
23
|
end
|
@@ -28,9 +29,15 @@ module Amakanize
|
|
28
29
|
|
29
30
|
# @note Override
|
30
31
|
def to_s
|
31
|
-
|
32
|
+
filters.inject(context: {}, output: @raw) do |result, filter|
|
32
33
|
filter.call(result)
|
33
|
-
end
|
34
|
+
end[:output]
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def filters
|
40
|
+
@filters ||= self.class.filter_classes.map(&:new)
|
34
41
|
end
|
35
42
|
end
|
36
43
|
end
|
data/lib/amakanize/version.rb
CHANGED
data/lib/amakanize.rb
CHANGED
@@ -1,26 +1,3 @@
|
|
1
|
-
require "amakanize/author_name"
|
2
|
-
require "amakanize/author_names"
|
3
|
-
require "amakanize/filters/base_filter"
|
4
|
-
require "amakanize/filters/brackets_normalization_filter"
|
5
|
-
require "amakanize/filters/dash_between_alphabets_normalization_filter"
|
6
|
-
require "amakanize/filters/html_unescape_filter"
|
7
|
-
require "amakanize/filters/hyphen_minus_normalization_filter"
|
8
|
-
require "amakanize/filters/normalization_filter"
|
9
|
-
require "amakanize/filters/obvious_volume_number_deletion_filter"
|
10
|
-
require "amakanize/filters/parentheses_deletion_filter"
|
11
|
-
require "amakanize/filters/role_name_deletion_filter"
|
12
|
-
require "amakanize/filters/space_between_exclamation_and_bracket_deletion_filter"
|
13
|
-
require "amakanize/filters/space_deletion_filter"
|
14
|
-
require "amakanize/filters/spaces_between_exclamations_deletion_filter"
|
15
|
-
require "amakanize/filters/strip_filter"
|
16
|
-
require "amakanize/filters/trailing_author_name_payload_deletion_filter"
|
17
|
-
require "amakanize/filters/trailing_dash_deletion_filter"
|
18
|
-
require "amakanize/filters/trailing_parentheses_deletion_filter"
|
19
|
-
require "amakanize/filters/trailing_series_name_payload_deletion_filter"
|
20
|
-
require "amakanize/filters/trailing_volume_number_deletion_filter"
|
21
|
-
require "amakanize/series_name"
|
22
|
-
require "amakanize/version"
|
23
|
-
|
24
1
|
module Amakanize
|
25
2
|
PATTERN_OF_NUMERIC_CHARACTERS = /
|
26
3
|
\d+(?:\.\d+)?
|
@@ -50,10 +27,33 @@ module Amakanize
|
|
50
27
|
|\#
|
51
28
|
|Episode\.?\s*
|
52
29
|
|EPISODE\.?\s*
|
53
|
-
|Lv\.?\s*
|
54
30
|
|vol(?:ume)?\.?\s*
|
55
31
|
|Vol(?:ume)?\.?\s*
|
56
32
|
|VOL(?:UME)?\.?\s*
|
57
33
|
|第
|
58
34
|
/x
|
59
35
|
end
|
36
|
+
|
37
|
+
require "amakanize/author_name"
|
38
|
+
require "amakanize/author_names"
|
39
|
+
require "amakanize/filters/base_filter"
|
40
|
+
require "amakanize/filters/brackets_normalization_filter"
|
41
|
+
require "amakanize/filters/continuous_spaces_normalization_filter"
|
42
|
+
require "amakanize/filters/dash_between_alphabets_normalization_filter"
|
43
|
+
require "amakanize/filters/html_unescape_filter"
|
44
|
+
require "amakanize/filters/hyphen_minus_normalization_filter"
|
45
|
+
require "amakanize/filters/normalization_filter"
|
46
|
+
require "amakanize/filters/obvious_volume_number_deletion_filter"
|
47
|
+
require "amakanize/filters/parentheses_deletion_filter"
|
48
|
+
require "amakanize/filters/role_name_deletion_filter"
|
49
|
+
require "amakanize/filters/space_between_exclamation_and_bracket_deletion_filter"
|
50
|
+
require "amakanize/filters/space_deletion_filter"
|
51
|
+
require "amakanize/filters/spaces_between_exclamations_deletion_filter"
|
52
|
+
require "amakanize/filters/strip_filter"
|
53
|
+
require "amakanize/filters/trailing_author_name_payload_deletion_filter"
|
54
|
+
require "amakanize/filters/trailing_dash_deletion_filter"
|
55
|
+
require "amakanize/filters/trailing_parentheses_deletion_filter"
|
56
|
+
require "amakanize/filters/trailing_series_name_payload_deletion_filter"
|
57
|
+
require "amakanize/filters/trailing_volume_number_deletion_filter"
|
58
|
+
require "amakanize/series_name"
|
59
|
+
require "amakanize/version"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: amakanize
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- r7kamura
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -89,6 +89,7 @@ files:
|
|
89
89
|
- lib/amakanize/author_names.rb
|
90
90
|
- lib/amakanize/filters/base_filter.rb
|
91
91
|
- lib/amakanize/filters/brackets_normalization_filter.rb
|
92
|
+
- lib/amakanize/filters/continuous_spaces_normalization_filter.rb
|
92
93
|
- lib/amakanize/filters/dash_between_alphabets_normalization_filter.rb
|
93
94
|
- lib/amakanize/filters/html_unescape_filter.rb
|
94
95
|
- lib/amakanize/filters/hyphen_minus_normalization_filter.rb
|