traject_plus 0.1.0 → 1.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 531ac9e2b209eb0206963fa1807c700df3b161a6
4
- data.tar.gz: 0bc34504ec992107ec04777e01d3d91f06e88c12
2
+ SHA256:
3
+ metadata.gz: 586e90e7cb12df2dce7019884f218d1438a0493f4a982da874b0a566f163fb15
4
+ data.tar.gz: 1a54f1a1f29fba7669f746266861687836678d376348f796d8442799ec2f8e0f
5
5
  SHA512:
6
- metadata.gz: 7696256342e7ceb99d3b1afb595b8aed58e52cc87e65cd3380400b848bd4443cd66aad85afdecce7830b9bd897217d8093194370d9a6145b11f8ab8f442072e0
7
- data.tar.gz: b922f870fd7db6569e1a04c037e48eff8a77e75150b34e02afcb82880da0d879ffaf2670a0a9d59ce19fdf3754f6c5ea90561b6bc6c3dd4a1838889f3b130d39
6
+ metadata.gz: a72f9d3fab511ca29b2f01995bfca990953c2b28ba3bc9d33a09bc56c2c769c7f665c95776720c51c38278fc781d1beefeba00f21e35009ca442fb7f3e79e44e
7
+ data.tar.gz: ca6c5f9ab9e060c9883c66f75d061877279cc13288b4832faed6779cf36b107e96e537a36c6a7bafd2f57a605ce3395af49087102487cde446ad56cc2d95e22d
data/.travis.yml CHANGED
@@ -1,5 +1,4 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.4.1
5
- before_install: gem install bundler -v 1.15.4
4
+ - 2.6.1
data/README.md CHANGED
@@ -1,4 +1,5 @@
1
1
  # TrajectPlus
2
+ [![Gem Version](https://badge.fury.io/rb/traject_plus.png)](http://badge.fury.io/rb/traject_plus)
2
3
 
3
4
  TrajectPlus is a number of useful additions to [Traject](https://github.com/traject/traject)
4
5
 
@@ -1,6 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'active_support/core_ext/object/blank'
4
+ require 'deprecation'
5
+
4
6
  module TrajectPlus
5
7
  module Extraction
6
8
  def self.apply_extraction_options(result, options = {})
@@ -9,6 +11,8 @@ module TrajectPlus
9
11
 
10
12
  # Pipeline for transforming extracted values into normalized values
11
13
  class TransformPipeline
14
+ extend Deprecation
15
+
12
16
  attr_reader :options
13
17
 
14
18
  def initialize(options)
@@ -53,6 +57,13 @@ module TrajectPlus
53
57
  end
54
58
  end
55
59
 
60
+ # to_field 'x', append: '321' # 'abc' to 'abc321'
61
+ def append(values, append_string)
62
+ values.flat_map do |v|
63
+ "#{v}#{append_string}"
64
+ end
65
+ end
66
+
56
67
  # to_field 'x', match: [/([aeiou])/, 1] # 'abc' => 'a'
57
68
  def match(values, match, index)
58
69
  values.flat_map do |v|
@@ -112,6 +123,11 @@ module TrajectPlus
112
123
  default_value
113
124
  end
114
125
  end
126
+
127
+ alias replace gsub
128
+ deprecation_deprecate replace: "use gsub instead"
129
+ alias trim strip
130
+ deprecation_deprecate trim: "use strip instead"
115
131
  end
116
132
  end
117
133
  end
@@ -1,6 +1,8 @@
1
1
  module TrajectPlus
2
2
  module Indexer
3
3
  class ToFieldStep < Traject::Indexer::ToFieldStep
4
+ # @param single [Bool] if true, this outputs a scalar value (rather than an Array)
5
+ # by default Traject only outputs arrays.
4
6
  def initialize(fieldname, procs, block, source_location, single: false)
5
7
  super(fieldname, procs, block, source_location)
6
8
 
@@ -4,6 +4,7 @@ module TrajectPlus
4
4
  module Macros
5
5
  # Macros for extracting values from CSV rows
6
6
  module Csv
7
+ # Retrieve the value of the column with the given header or index.
7
8
  # @param header_or_index [String] the field header or index to accumulate
8
9
  def column(header_or_index, options = {})
9
10
  lambda do |row, accumulator, _context|
@@ -62,8 +62,9 @@ module TrajectPlus
62
62
  fields.each { |field| to_field field, mapping_method }
63
63
  end
64
64
 
65
- def to_field(field_name, aLambda = nil, extract: nil, transform: nil, **namedArgs, &block)
66
- @index_steps << TrajectPlus::Indexer::ToFieldStep.new(field_name, extract || aLambda, transform || block, Traject::Util.extract_caller_location(caller.first), **namedArgs)
65
+ def to_field(field_name, *procs, extract: nil, transform: nil, **namedArgs, &block)
66
+ procs = [extract, transform] if procs.empty?
67
+ @index_steps << TrajectPlus::Indexer::ToFieldStep.new(field_name, procs, block, Traject::Util.extract_caller_location(caller.first), **namedArgs)
67
68
  end
68
69
 
69
70
  def compose(fieldname = nil, aLambda = nil, extract: nil, transform: nil, &block)
@@ -1,3 +1,3 @@
1
1
  module TrajectPlus
2
- VERSION = "0.1.0"
2
+ VERSION = "1.0.0"
3
3
  end
data/traject_plus.gemspec CHANGED
@@ -23,8 +23,10 @@ Gem::Specification.new do |spec|
23
23
  spec.add_dependency 'activesupport'
24
24
  spec.add_dependency 'jsonpath'
25
25
  spec.add_dependency 'traject', '~> 3.0'
26
+ spec.add_dependency 'deprecation'
26
27
 
27
- spec.add_development_dependency "bundler", "~> 1.15"
28
+ spec.add_development_dependency "bundler", '>= 1.15'
28
29
  spec.add_development_dependency "rake", "~> 10.0"
29
30
  spec.add_development_dependency "rspec", "~> 3.0"
31
+ spec.add_development_dependency 'byebug'
30
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: traject_plus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Beer
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2018-10-17 00:00:00.000000000 Z
14
+ date: 2019-02-26 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activesupport
@@ -55,18 +55,32 @@ dependencies:
55
55
  - - "~>"
56
56
  - !ruby/object:Gem::Version
57
57
  version: '3.0'
58
+ - !ruby/object:Gem::Dependency
59
+ name: deprecation
60
+ requirement: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ type: :runtime
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
58
72
  - !ruby/object:Gem::Dependency
59
73
  name: bundler
60
74
  requirement: !ruby/object:Gem::Requirement
61
75
  requirements:
62
- - - "~>"
76
+ - - ">="
63
77
  - !ruby/object:Gem::Version
64
78
  version: '1.15'
65
79
  type: :development
66
80
  prerelease: false
67
81
  version_requirements: !ruby/object:Gem::Requirement
68
82
  requirements:
69
- - - "~>"
83
+ - - ">="
70
84
  - !ruby/object:Gem::Version
71
85
  version: '1.15'
72
86
  - !ruby/object:Gem::Dependency
@@ -97,6 +111,20 @@ dependencies:
97
111
  - - "~>"
98
112
  - !ruby/object:Gem::Version
99
113
  version: '3.0'
114
+ - !ruby/object:Gem::Dependency
115
+ name: byebug
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
100
128
  description: Extensions to Traject for non-MARC formats
101
129
  email:
102
130
  - cabeer@stanford.edu
@@ -151,7 +179,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
179
  version: '0'
152
180
  requirements: []
153
181
  rubyforge_project:
154
- rubygems_version: 2.6.11
182
+ rubygems_version: 2.7.6
155
183
  signing_key:
156
184
  specification_version: 4
157
185
  summary: Extensions to Traject for non-MARC formats