relaton-iec 1.5.0 → 1.6.pre1

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
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: