relaton-core 0.0.7 → 0.0.9

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
2
  SHA256:
3
- metadata.gz: f5e577ce6b7bd03695e1d1b0a30206582dcfbd95577280e10fd30dfc182788cf
4
- data.tar.gz: 76f118cf584b6b490beca90edc36be8f042e7f873a755fc33f4d9d502b2957ef
3
+ metadata.gz: 39064c5e21a02c43717a4e7b8f03e004345475b6275afd413e4257cd37087fca
4
+ data.tar.gz: b64391894b5b7e0a3fe1063d3eedf0f17aad367a944a7e730919853d6ada40cc
5
5
  SHA512:
6
- metadata.gz: 44a0a810b3cbbf1132e870ae9a771c83430453b66fa9bc7d82b4afe24dbd47b812a8e928c3ced3a619b09de82d21c77d7a20ca9c1c659469639af38fdb248516
7
- data.tar.gz: f79cb7c702bd5c3e9d25fae67cadd7c7ec22d016aef9eefef480278330bcaa789c41be1530998cec235b0deffaeddb2c5a6c8d48fb66117e7662f4de83b232f3
6
+ metadata.gz: b667ede850a5087257f1619b0c1006c0d61d50f7688aa934ce03c0627b62c75d01e9f3dc638e18eb8d684c41029504b92dbb5f1c87d3b0f0e03f2fecc3dca505
7
+ data.tar.gz: f374544f6984db5149d874635434f66d6a561f7b021471929f5db2665996f281c3e3149dcd086237f1500644b25bf5ee045dcf862d309fefa573f28722dffa53
@@ -1,3 +1,5 @@
1
+ require "fileutils"
2
+
1
3
  module Relaton::Core
2
4
  class DataFetcher
3
5
  # attr_accessor :docs
@@ -39,20 +39,11 @@ module Relaton
39
39
  end
40
40
 
41
41
  # @param opts [Hash]
42
- # @option opts [Nokogiri::XML::Builder] :builder XML builder
43
42
  # @option opts [Boolean] :bibdata
44
- # @option opts [String, Symbol] :lang language
45
43
  # @return [String] XML
46
- # def to_xml(**opts)
47
- # if opts[:builder]
48
- # fetch.to_xml(**opts)
49
- # else
50
- # builder = Nokogiri::XML::Builder.new(encoding: "UTF-8") do |xml|
51
- # fetch.to_xml(**opts.merge(builder: xml))
52
- # end
53
- # builder.doc.root.to_xml
54
- # end
55
- # end
44
+ def to_xml(**opts)
45
+ item.to_xml(**opts)
46
+ end
56
47
  end
57
48
  end
58
49
  end
@@ -1,4 +1,6 @@
1
1
  require "forwardable"
2
+ require "nokogiri"
3
+ require "weakref"
2
4
  require_relative "hit"
3
5
 
4
6
  module Relaton
@@ -55,17 +57,16 @@ module Relaton
55
57
  #
56
58
  # @return [String] XML representation of the collection
57
59
  #
58
- # def to_xml(**opts)
59
- # builder = Nokogiri::XML::Builder.new(encoding: "UTF-8") do |xml|
60
- # xml.documents do
61
- # @array.each do |hit|
62
- # hit.fetch
63
- # hit.to_xml(**opts.merge(builder: xml))
64
- # end
65
- # end
66
- # end
67
- # builder.to_xml
68
- # end
60
+ def to_xml(**opts)
61
+ builder = Nokogiri::XML::Builder.new(encoding: "UTF-8") do |xml|
62
+ xml.documents do
63
+ @array.each do |hit|
64
+ xml << hit.to_xml(**opts)
65
+ end
66
+ end
67
+ end
68
+ builder.to_xml
69
+ end
69
70
 
70
71
  #
71
72
  # Selects matching hits and returns a new collection
@@ -79,6 +80,17 @@ module Relaton
79
80
  self
80
81
  end
81
82
 
83
+ def select(&block)
84
+ array = @array.select(&block)
85
+ self.class.new(@ref, @year).tap do |hc|
86
+ new_array = array.map do |hit|
87
+ hit.dup.tap { |h| h.hit_collection = WeakRef.new(hc) }
88
+ end
89
+ hc.instance_variable_set(:@array, new_array)
90
+ hc.instance_variable_set(:@fetched, @fetched)
91
+ end
92
+ end
93
+
82
94
  def reduce!(sum, &block)
83
95
  @array = @array.reduce sum, &block
84
96
  self
@@ -1,5 +1,5 @@
1
1
  module Relaton
2
2
  module Core
3
- VERSION = "0.0.7".freeze
3
+ VERSION = "0.0.9".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,57 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-01-20 00:00:00.000000000 Z
11
+ date: 2026-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rake
14
+ name: nokogiri
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '13.0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '13.0'
27
- - !ruby/object:Gem::Dependency
28
- name: rspec
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
17
+ - - ">="
32
18
  - !ruby/object:Gem::Version
33
- version: '3.0'
34
- type: :development
19
+ version: '1.16'
20
+ type: :runtime
35
21
  prerelease: false
36
22
  version_requirements: !ruby/object:Gem::Requirement
37
23
  requirements:
38
- - - "~>"
24
+ - - ">="
39
25
  - !ruby/object:Gem::Version
40
- version: '3.0'
26
+ version: '1.16'
41
27
  - !ruby/object:Gem::Dependency
42
- name: simplecov
28
+ name: psych
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
31
  - - "~>"
46
32
  - !ruby/object:Gem::Version
47
- version: 0.21.2
48
- type: :development
33
+ version: 5.2.0
34
+ type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
38
  - - "~>"
53
39
  - !ruby/object:Gem::Version
54
- version: 0.21.2
40
+ version: 5.2.0
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: relaton-logger
57
43
  requirement: !ruby/object:Gem::Requirement