relaton-iec 1.5.0 → 1.6.pre1

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: 585ff20a58cd576335e184b6e8e420222d03e51dcfd9299f3625755ffe2316cf
4
- data.tar.gz: 7c3a6eb9a9ff6594186680e96d8b12bcec51019d27b349239c4a085f8c0d032b
3
+ metadata.gz: 99612dcda07b9d860e087ecc3990a275b165539e2eefc83d4e5486feeb94ca4b
4
+ data.tar.gz: b15b0d2aa3860580697eb9ec009e68e96715be3e0debd9dc286b5527a250af02
5
5
  SHA512:
6
- metadata.gz: 262028dca7496435b233c1ec77b4b8fcbde6e93eca0276f9469835a063b0e3d0f8823cbe118af042516d90ab347560a4e2a963b6a0d6ad1a21333fb4b821dc8d
7
- data.tar.gz: 99e68fa99988635c239ed7ecd07a458dbb1a8007f1d8e912a0a2576f1cf0f36af3e873e7eadaa0a27c30d4d4c7e765cebfa8d14e21b8c078d345e3575192baf1
6
+ metadata.gz: 15403a2fac73cfede74532468718a1c3a704d26b14cc54f2eabb7ea9f3451079003f62d4d22498809480c4ff64d84f6ab3e82689617dac3a082f348323abb0b7
7
+ data.tar.gz: 8ea1575201a593e580b39bcfe6205dd81f832116c967b88ec6608537b18e94410fab417eb9d1d2def971e996e7f35d16c43f53fe4641f7be2b0fb9b722a02fa2
@@ -26,6 +26,8 @@ jobs:
26
26
  - name: Update gems
27
27
  run: |
28
28
  sudo gem install bundler --force
29
+ ruby -v | grep 2.5 && bundle config set build.debase --with-cflags="-Wno-error=implicit-function-declaration"
30
+ ruby -v | grep 2.5 && bundle config set build.ruby-debug-ide --with-cflags="-Wno-error=implicit-function-declaration"
29
31
  bundle install --jobs 4 --retry 3
30
32
  - name: Run specs
31
33
  run: |
@@ -18,7 +18,7 @@ Add this line to your application's Gemfile:
18
18
 
19
19
  [source,ruby]
20
20
  ----
21
- gem 'relaton_iec'
21
+ gem 'relaton-iec'
22
22
  ----
23
23
 
24
24
  And then execute:
@@ -27,7 +27,7 @@ And then execute:
27
27
 
28
28
  Or install it yourself as:
29
29
 
30
- $ gem install relaton_iec
30
+ $ gem install relaton-iec
31
31
 
32
32
  == Usage
33
33
 
@@ -10,22 +10,42 @@ module RelatonIec
10
10
 
11
11
  # @param ref_nbr [String]
12
12
  # @param year [String]
13
- def initialize(ref_nbr, year = nil) #(text, hit_pages = nil)
13
+ def initialize(ref_nbr, year = nil)
14
14
  super
15
+ @array = hits ref_nbr, year
16
+ end
17
+
18
+ private
19
+
20
+ def hits(ref, year)
15
21
  from, to = nil
16
22
  if year
17
23
  from = Date.strptime year, "%Y"
18
24
  to = from.next_year.prev_day
19
25
  end
20
- url = "#{DOMAIN}/searchkey&RefNbr=#{ref_nbr}&From=#{from}&To=#{to}&start=1"
21
- doc = Nokogiri::HTML OpenURI.open_uri(::Addressable::URI.parse(url).normalize)
22
- @array = doc.css("ul.search-results > li").map do |h|
23
- link = h.at('a[@href!="#"]')
24
- code = link.text.tr [194, 160].pack("c*").force_encoding("UTF-8"), ""
25
- title = h.xpath("text()").text.gsub(/[\r\n]/, "")
26
- url = DOMAIN + link[:href]
27
- Hit.new({ code: code, title: title, url: url }, self)
26
+ get_results ref, from, to
27
+ end
28
+
29
+ def get_results(ref, from,to)
30
+ [nil, "trf", "wr"].reduce([]) do |m, t|
31
+ url = "#{DOMAIN}/searchkey"
32
+ url += "&type=#{t}" if t
33
+ url += "&RefNbr=#{ref}&From=#{from}&To=#{to}&start=1"
34
+ m + results(Addressable::URI.parse(url).normalize)
28
35
  end
29
36
  end
37
+
38
+ def results(uri)
39
+ Nokogiri::HTML(OpenURI.open_uri(uri)).css(
40
+ "//body/li", "ul.search-results > li", "ul.morethesame > li"
41
+ ).map { |h| make_hit h }
42
+ end
43
+
44
+ def make_hit(hit)
45
+ link = hit.at('a[@href!="#"]')
46
+ code = link.text.tr [194, 160].pack("c*").force_encoding("UTF-8"), ""
47
+ title = hit.xpath("text()").text.gsub(/[\r\n]/, "")
48
+ Hit.new({ code: code, title: title, url: DOMAIN + link[:href] }, self)
49
+ end
30
50
  end
31
51
  end
@@ -136,9 +136,9 @@ module RelatonIec
136
136
  return { ret: r } if !year
137
137
 
138
138
  r.date.select { |d| d.type == "published" }.each do |d|
139
- return { ret: r } if year.to_i == d.on.year
139
+ return { ret: r } if year.to_i == d.on(:year)
140
140
 
141
- missed_years << d.on.year
141
+ missed_years << d.on(:year)
142
142
  end
143
143
  end
144
144
  end
@@ -223,8 +223,7 @@ module RelatonIec
223
223
  def fetch_status_relations(url)
224
224
  pubid = url.match(/\d+$/).to_s
225
225
  uri = URI DOMAIN + "/webstore/webstore.nsf/AjaxRequestXML?"\
226
- "Openagent&url=http://www.iec.ch/dyn/www/f?"\
227
- "p=103:390:::::P390_PUBLICATION_ID:" + pubid
226
+ "Openagent&url=" + pubid
228
227
  resp = Net::HTTP.get_response uri
229
228
  doc = Nokogiri::XML resp.body
230
229
  status = fetch_status doc
@@ -1,3 +1,3 @@
1
1
  module RelatonIec
2
- VERSION = "1.5.0".freeze
2
+ VERSION = "1.6.pre1".freeze
3
3
  end
@@ -35,5 +35,5 @@ Gem::Specification.new do |spec|
35
35
  spec.add_development_dependency "webmock"
36
36
 
37
37
  spec.add_dependency "addressable"
38
- spec.add_dependency "relaton-iso-bib", "~> 1.5.0"
38
+ spec.add_dependency "relaton-iso-bib", "~> 1.6.pre"
39
39
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-iec
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-09 00:00:00.000000000 Z
11
+ date: 2020-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: debase
@@ -170,14 +170,14 @@ dependencies:
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: 1.5.0
173
+ version: 1.6.pre
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: 1.5.0
180
+ version: 1.6.pre
181
181
  description: 'RelatonIec: retrieve IEC Standards for bibliographic use using the IecBibliographicItem
182
182
  model'
183
183
  email:
@@ -231,9 +231,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
231
231
  version: 2.4.0
232
232
  required_rubygems_version: !ruby/object:Gem::Requirement
233
233
  requirements:
234
- - - ">="
234
+ - - ">"
235
235
  - !ruby/object:Gem::Version
236
- version: '0'
236
+ version: 1.3.1
237
237
  requirements: []
238
238
  rubygems_version: 3.0.6
239
239
  signing_key: