traject_plus 0.1.0 → 1.0.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
- 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