relaton-core 0.0.5 → 0.0.7
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/lib/relaton/core/array_wrapper.rb +20 -0
- data/lib/relaton/core/data_fetcher.rb +1 -1
- data/lib/relaton/core/date_parser.rb +42 -0
- data/lib/relaton/core/hash_keys_sybolizer.rb +19 -0
- data/lib/relaton/core/hit.rb +7 -4
- data/lib/relaton/core/version.rb +1 -1
- data/lib/relaton/core.rb +3 -0
- metadata +5 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f5e577ce6b7bd03695e1d1b0a30206582dcfbd95577280e10fd30dfc182788cf
|
|
4
|
+
data.tar.gz: 76f118cf584b6b490beca90edc36be8f042e7f873a755fc33f4d9d502b2957ef
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 44a0a810b3cbbf1132e870ae9a771c83430453b66fa9bc7d82b4afe24dbd47b812a8e928c3ced3a619b09de82d21c77d7a20ca9c1c659469639af38fdb248516
|
|
7
|
+
data.tar.gz: f79cb7c702bd5c3e9d25fae67cadd7c7ec22d016aef9eefef480278330bcaa789c41be1530998cec235b0deffaeddb2c5a6c8d48fb66117e7662f4de83b232f3
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module Relaton
|
|
2
|
+
module Core
|
|
3
|
+
module ArrayWrapper
|
|
4
|
+
#
|
|
5
|
+
# Wrap into Array if not Array
|
|
6
|
+
#
|
|
7
|
+
# @param [Object] content
|
|
8
|
+
#
|
|
9
|
+
# @return [Array<Object>]
|
|
10
|
+
#
|
|
11
|
+
def array(content)
|
|
12
|
+
case content
|
|
13
|
+
when Array then content
|
|
14
|
+
when nil then []
|
|
15
|
+
else [content]
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -55,7 +55,7 @@ module Relaton::Core
|
|
|
55
55
|
# @param [String] document ID
|
|
56
56
|
# @return [String] filename based on PubID identifier
|
|
57
57
|
def output_file(docid)
|
|
58
|
-
File.join @output, "#{docid.downcase.gsub(/[.\s
|
|
58
|
+
File.join @output, "#{docid.downcase.gsub(/[.\s\/:-]+/, '-')}.#{@ext}"
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
#
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
module Relaton
|
|
2
|
+
module Core
|
|
3
|
+
module DateParser
|
|
4
|
+
# @param date [String, Integer, Date] date
|
|
5
|
+
# @param str [Boolean] return string or Date
|
|
6
|
+
# @return [Date, String, nil] date
|
|
7
|
+
def parse_date(date, str: true) # rubocop:disable Metrics/CyclomaticComplexity,Metrics/MethodLength
|
|
8
|
+
return date if date.is_a?(Date)
|
|
9
|
+
|
|
10
|
+
case date.to_s
|
|
11
|
+
when /(?<date>\w+\s\d{4})/ # February 2012
|
|
12
|
+
format_date $~[:date], "%B %Y", str, "%Y-%m"
|
|
13
|
+
when /(?<date>\w+\s\d{1,2},\s\d{4})/ # February 11, 2012
|
|
14
|
+
format_date $~[:date], "%B %d, %Y", str, "%Y-%m-%d"
|
|
15
|
+
when /(?<date>\d{4}-\d{1,2}-\d{1,2})/ # 2012-02-03 or 2012-2-3
|
|
16
|
+
format_date $~[:date], "%Y-%m-%d", str
|
|
17
|
+
when /(?<date>\d{4}-\d{1,2})/ # 2012-02 or 2012-2
|
|
18
|
+
format_date $~[:date], "%Y-%m", str
|
|
19
|
+
when /(?<date>\d{4})/ # 2012
|
|
20
|
+
format_date $~[:date], "%Y", str
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
private
|
|
25
|
+
|
|
26
|
+
#
|
|
27
|
+
# Parse date string to Date object and format it
|
|
28
|
+
#
|
|
29
|
+
# @param [String] date date string
|
|
30
|
+
# @param [String] format format string
|
|
31
|
+
# @param [Boolean] str return string if true in other case return Date
|
|
32
|
+
# @param [String, nil] outformat output format
|
|
33
|
+
#
|
|
34
|
+
# @return [Date, String] date object or formatted date string
|
|
35
|
+
#
|
|
36
|
+
def format_date(date, format, str, outformat = nil)
|
|
37
|
+
date = Date.strptime(date, format)
|
|
38
|
+
str ? date.strftime(outformat || format) : date
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Relaton
|
|
2
|
+
module Core
|
|
3
|
+
module HashKeysSymbolizer
|
|
4
|
+
def symbolize_hash_keys(obj)
|
|
5
|
+
case obj
|
|
6
|
+
when Array
|
|
7
|
+
obj.map { |e| symbolize_hash_keys(e) }
|
|
8
|
+
when Hash
|
|
9
|
+
obj.each_with_object({}) do |(k, v), h|
|
|
10
|
+
key = k.is_a?(String) ? k.to_sym : k
|
|
11
|
+
h[key] = symbolize_hash_keys(v)
|
|
12
|
+
end
|
|
13
|
+
else
|
|
14
|
+
obj
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
data/lib/relaton/core/hit.rb
CHANGED
|
@@ -24,10 +24,9 @@ module Relaton
|
|
|
24
24
|
# @return [String]
|
|
25
25
|
def inspect
|
|
26
26
|
"<#{self.class}:#{format('%<id>#.14x', id: object_id << 1)} " \
|
|
27
|
-
"@
|
|
28
|
-
"@fetched=\"#{
|
|
29
|
-
"@
|
|
30
|
-
"@title=\"#{@hit[:code]}\">"
|
|
27
|
+
"@reference=\"#{@hit_collection&.ref}\" " \
|
|
28
|
+
"@fetched=\"#{fetched?}\" " \
|
|
29
|
+
"@docidentifier=\"#{@hit[:code]}\">"
|
|
31
30
|
end
|
|
32
31
|
|
|
33
32
|
# @return [RelatonBib::ItemData]
|
|
@@ -35,6 +34,10 @@ module Relaton
|
|
|
35
34
|
raise "Not implemented"
|
|
36
35
|
end
|
|
37
36
|
|
|
37
|
+
def fetched?
|
|
38
|
+
!@item.nil?
|
|
39
|
+
end
|
|
40
|
+
|
|
38
41
|
# @param opts [Hash]
|
|
39
42
|
# @option opts [Nokogiri::XML::Builder] :builder XML builder
|
|
40
43
|
# @option opts [Boolean] :bibdata
|
data/lib/relaton/core/version.rb
CHANGED
data/lib/relaton/core.rb
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
require "relaton/logger"
|
|
2
2
|
require_relative "core/version"
|
|
3
|
+
require_relative "core/array_wrapper"
|
|
4
|
+
require_relative "core/hash_keys_sybolizer"
|
|
5
|
+
require_relative "core/date_parser"
|
|
3
6
|
require_relative "core/processor"
|
|
4
7
|
require_relative "core/data_fetcher"
|
|
5
8
|
require_relative "core/hit_collection"
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: relaton-core
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-01-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|
|
@@ -80,7 +80,10 @@ files:
|
|
|
80
80
|
- README.adoc
|
|
81
81
|
- lib/relaton-core.rb
|
|
82
82
|
- lib/relaton/core.rb
|
|
83
|
+
- lib/relaton/core/array_wrapper.rb
|
|
83
84
|
- lib/relaton/core/data_fetcher.rb
|
|
85
|
+
- lib/relaton/core/date_parser.rb
|
|
86
|
+
- lib/relaton/core/hash_keys_sybolizer.rb
|
|
84
87
|
- lib/relaton/core/hit.rb
|
|
85
88
|
- lib/relaton/core/hit_collection.rb
|
|
86
89
|
- lib/relaton/core/processor.rb
|