change_the_subject 0.1.0 → 0.3.0

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: 3640fe5de11bf3140e0cc2dd5000e46c871b915091fc7cae37eef93261adde20
4
- data.tar.gz: 7ad884518e4ad331f5432f231adc7975b3951e4dd97351fe1482c7cdedaf311b
3
+ metadata.gz: e31b7ca05a148620fadf5080c29622314291b4ab3dc002ae76bf0385d56df57b
4
+ data.tar.gz: 8fc444360e01543dfda734714b76190847067e4897106a90c81bfb20b0cb7206
5
5
  SHA512:
6
- metadata.gz: 856d78cf1026e52d63b06c5cd786495a6c097e4f73ccb92948089537759ed5426d325b0a534afd2554df46ac531cc9344d460f8b1c6811efc850a3d28e575d08
7
- data.tar.gz: 4d756fffc1b334b7e943fe01aa9ce6500c192d795344ce659efaedd257c0e69d9c4cce54b691dd647d05bf97cfc69375aa13661ea64120f4bd412230c0df122a
6
+ metadata.gz: bc0d1ae40e9a89d7124dfdd7ffbe264a09b6a1548b8faa5af0c234f203cf7700e7812f8c437cde7d703fdc87f415faa68b358dae4c2b6e1f4523b56483945094
7
+ data.tar.gz: d01d1bb8684a7adb0d364e12f424edf0655c88d7a29bb6831154a713576e71d584fc4297dce151c611688eff019092848afc2e2af474798f39c288d63c4ffaa9
data/.gitignore CHANGED
@@ -6,6 +6,7 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ *.gem
9
10
 
10
11
  # rspec failure tracking
11
12
  .rspec_status
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- change_the_subject (0.1.0)
4
+ change_the_subject (0.2.0)
5
5
  yaml
6
6
 
7
7
  GEM
@@ -79,4 +79,4 @@ DEPENDENCIES
79
79
  simplecov
80
80
 
81
81
  BUNDLED WITH
82
- 2.3.18
82
+ 2.3.22
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class ChangeTheSubject
4
- VERSION = "0.1.0"
4
+ VERSION = "0.3.0"
5
5
  end
@@ -1,24 +1,23 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "yaml"
4
- require "pry-byebug"
5
4
 
6
5
  # The creation and management of metadata are not neutral activities.
7
6
  class ChangeTheSubject
8
7
  class Error < StandardError; end
9
8
 
10
- def self.fix(subject_terms:, separator: nil)
11
- new(separator: separator).fix(subject_terms: subject_terms)
9
+ def self.fix(subject_terms:, separators: nil)
10
+ new(separators: separators).fix(subject_terms: subject_terms)
12
11
  end
13
12
 
14
- def self.check_for_replacement(term:, separator: nil)
15
- new(separator: separator).check_for_replacement(term: term)
13
+ def self.check_for_replacement(term:, separators: nil)
14
+ new(separators: separators).check_for_replacement(term: term)
16
15
  end
17
16
 
18
- attr_reader :separator
17
+ attr_reader :separators
19
18
 
20
- def initialize(separator: nil)
21
- @separator = separator || "—"
19
+ def initialize(separators: nil)
20
+ @separators = separators || ["—"]
22
21
  end
23
22
 
24
23
  def terms_mapping
@@ -45,14 +44,18 @@ class ChangeTheSubject
45
44
  # @param [String] term
46
45
  # @return [String]
47
46
  def check_for_replacement(term:)
48
- subterms = term.split(separator)
49
- subfield_a = subterms.first
50
- replacement = terms_mapping[subfield_a]
51
- return term unless replacement
52
-
53
- subterms.delete(subfield_a)
54
- subterms.prepend(replacement["replacement"])
55
- subterms.join(separator)
47
+ separators.each do |separator|
48
+ subterms = term.split(separator)
49
+ subfield_a = subterms.first
50
+ replacement = terms_mapping[subfield_a]
51
+ next unless replacement
52
+
53
+ subterms.delete(subfield_a)
54
+ subterms.prepend(replacement["replacement"])
55
+ return subterms.join(separator)
56
+ end
57
+
58
+ term
56
59
  end
57
60
 
58
61
  private
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: change_the_subject
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Max Kadel
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2022-09-15 00:00:00.000000000 Z
14
+ date: 2022-09-19 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: yaml