Module: Serrano
- Extended by:
- Configuration
- Defined in:
- lib/serrano.rb,
lib/serrano/cn.rb,
lib/serrano/error.rb,
lib/serrano/filters.rb,
lib/serrano/request.rb,
lib/serrano/version.rb,
lib/serrano/cnrequest.rb,
lib/serrano/filterhandler.rb,
lib/serrano/request_cursor.rb
Overview
Serrano::RequestCursor
Class to perform HTTP requests to the Crossref API
Defined Under Namespace
Modules: Filters Classes: BadGateway, BadRequest, CNRequest, ContentNegotiation, Error, GatewayTimeout, InternalServerError, NotFound, Request, RequestCursor, ServiceUnavailable
Constant Summary collapse
- VERSION =
"0.3.0"
Class Method Summary collapse
-
.citation_count(doi:, url: "http://www.crossref.org/openurl/", key: "[email protected]", options: nil) ⇒ Object
Get a citation count with a DOI.
-
.content_negotiation(ids:, format: "bibtex", style: 'apa', locale: "en-US") ⇒ Hash
Get citations in various formats from CrossRef.
-
.csl_styles ⇒ Object
Get csl styles.
-
.funders(ids: nil, query: nil, filter: nil, offset: nil, limit: nil, sample: nil, sort: nil, order: nil, facet: nil, works: false, options: nil, verbose: false, cursor: nil, cursor_max: 5000, **args) ⇒ Array
Search the funders route.
-
.journals(ids: nil, query: nil, filter: nil, offset: nil, limit: nil, sample: nil, sort: nil, order: nil, facet: nil, works: false, options: nil, verbose: false, cursor: nil, cursor_max: 5000, **args) ⇒ Array
Search the journals route.
-
.licenses(query: nil, offset: nil, limit: nil, sample: nil, sort: nil, order: nil, facet: nil, options: nil, verbose: false) ⇒ Array
Search the licenses route.
-
.members(ids: nil, query: nil, filter: nil, offset: nil, limit: nil, sample: nil, sort: nil, order: nil, facet: nil, works: false, options: nil, verbose: false, cursor: nil, cursor_max: 5000, **args) ⇒ Array
Search the members route.
-
.prefixes(ids:, filter: nil, offset: nil, limit: nil, sample: nil, sort: nil, order: nil, facet: nil, works: false, options: nil, verbose: false, cursor: nil, cursor_max: 5000, **args) ⇒ Array
Search the prefixes route.
-
.random_dois(sample: 10, options: nil, verbose: false) ⇒ Array
Get a random set of DOI’s.
-
.registration_agency(ids:, options: nil, verbose: false) ⇒ Array
Determine registration agency for DOIs.
-
.types(ids: nil, offset: nil, limit: nil, works: false, options: nil, verbose: false, cursor: nil, cursor_max: 5000, **args) ⇒ Array
Search the types route.
-
.works(ids: nil, query: nil, filter: nil, offset: nil, limit: nil, sample: nil, sort: nil, order: nil, facet: nil, options: nil, verbose: false, cursor: nil, cursor_max: 5000, **args) ⇒ Array
Search the works route.
Methods included from Configuration
Class Method Details
.citation_count(doi:, url: "http://www.crossref.org/openurl/", key: "[email protected]", options: nil) ⇒ Object
Get a citation count with a DOI
546 547 548 549 550 551 552 553 554 555 556 557 |
# File 'lib/serrano.rb', line 546 def self.citation_count(doi:, url: "http://www.crossref.org/openurl/", key: "[email protected]", options: nil) args = { id: "doi:" + doi, pid: key, noredirect: true } opts = args.delete_if { |k, v| v.nil? } conn = Faraday.new(:url => url, :request => ) res = conn.get '', opts x = res.body oc = REXML::Document.new("<doc>#{x}</doc>") value = REXML::XPath.first(oc, '//query').attributes['fl_count'].to_i return value end |
.content_negotiation(ids:, format: "bibtex", style: 'apa', locale: "en-US") ⇒ Hash
Get citations in various formats from CrossRef
527 528 529 |
# File 'lib/serrano.rb', line 527 def self.content_negotiation(ids:, format: "bibtex", style: 'apa', locale: "en-US") CNRequest.new(ids, format, style, locale).perform end |
.csl_styles ⇒ Object
Get csl styles
565 566 567 |
# File 'lib/serrano.rb', line 565 def self.csl_styles get_styles() end |
.funders(ids: nil, query: nil, filter: nil, offset: nil, limit: nil, sample: nil, sort: nil, order: nil, facet: nil, works: false, options: nil, verbose: false, cursor: nil, cursor_max: 5000, **args) ⇒ Array
Funders without IDs don’t show up on the /funders route
Search the funders route
312 313 314 315 316 317 318 319 320 |
# File 'lib/serrano.rb', line 312 def self.funders(ids: nil, query: nil, filter: nil, offset: nil, limit: nil, sample: nil, sort: nil, order: nil, facet: nil, works: false, options: nil, verbose: false, cursor: nil, cursor_max: 5000, **args) RequestCursor.new('funders', ids, query, filter, offset, limit, sample, sort, order, facet, works, nil, , verbose, cursor, cursor_max, args).perform end |
.journals(ids: nil, query: nil, filter: nil, offset: nil, limit: nil, sample: nil, sort: nil, order: nil, facet: nil, works: false, options: nil, verbose: false, cursor: nil, cursor_max: 5000, **args) ⇒ Array
Search the journals route
361 362 363 364 365 366 367 368 369 |
# File 'lib/serrano.rb', line 361 def self.journals(ids: nil, query: nil, filter: nil, offset: nil, limit: nil, sample: nil, sort: nil, order: nil, facet: nil, works: false, options: nil, verbose: false, cursor: nil, cursor_max: 5000, **args) RequestCursor.new('journals', ids, query, filter, offset, limit, sample, sort, order, facet, works, nil, , verbose, cursor, cursor_max, args).perform end |
.licenses(query: nil, offset: nil, limit: nil, sample: nil, sort: nil, order: nil, facet: nil, options: nil, verbose: false) ⇒ Array
Search the licenses route
419 420 421 422 423 424 425 |
# File 'lib/serrano.rb', line 419 def self.licenses(query: nil, offset: nil, limit: nil, sample: nil, sort: nil, order: nil, facet: nil, options: nil, verbose: false) Request.new('licenses', nil, query, nil, offset, limit, sample, sort, order, facet, nil, nil, , verbose).perform end |
.members(ids: nil, query: nil, filter: nil, offset: nil, limit: nil, sample: nil, sort: nil, order: nil, facet: nil, works: false, options: nil, verbose: false, cursor: nil, cursor_max: 5000, **args) ⇒ Array
Search the members route
219 220 221 222 223 224 225 226 227 |
# File 'lib/serrano.rb', line 219 def self.members(ids: nil, query: nil, filter: nil, offset: nil, limit: nil, sample: nil, sort: nil, order: nil, facet: nil, works: false, options: nil, verbose: false, cursor: nil, cursor_max: 5000, **args) RequestCursor.new('members', ids, query, filter, offset, limit, sample, sort, order, facet, works, nil, , verbose, cursor, cursor_max, args).perform end |
.prefixes(ids:, filter: nil, offset: nil, limit: nil, sample: nil, sort: nil, order: nil, facet: nil, works: false, options: nil, verbose: false, cursor: nil, cursor_max: 5000, **args) ⇒ Array
Search the prefixes route
263 264 265 266 267 268 269 270 271 |
# File 'lib/serrano.rb', line 263 def self.prefixes(ids:, filter: nil, offset: nil, limit: nil, sample: nil, sort: nil, order: nil, facet: nil, works: false, options: nil, verbose: false, cursor: nil, cursor_max: 5000, **args) RequestCursor.new('prefixes', ids, nil, filter, offset, limit, sample, sort, order, facet, works, nil, , verbose, cursor, cursor_max, args).perform end |
.random_dois(sample: 10, options: nil, verbose: false) ⇒ Array
This method uses works internally, but doesn’t allow you to pass on
Get a random set of DOI’s
arguments to that method.
461 462 463 464 465 466 |
# File 'lib/serrano.rb', line 461 def self.random_dois(sample: 10, options: nil, verbose: false) tmp = Request.new('works', nil, nil, nil, nil, nil, sample, nil, nil, nil, false, nil, , verbose).perform tmp['message']['items'].collect { |x| x['DOI'] } end |
.registration_agency(ids:, options: nil, verbose: false) ⇒ Array
Determine registration agency for DOIs
438 439 440 441 442 |
# File 'lib/serrano.rb', line 438 def self.registration_agency(ids:, options: nil, verbose: false) Request.new('works', ids, nil, nil, nil, nil, nil, nil, nil, nil, false, true, , verbose).perform end |
.types(ids: nil, offset: nil, limit: nil, works: false, options: nil, verbose: false, cursor: nil, cursor_max: 5000, **args) ⇒ Array
Search the types route
398 399 400 401 402 403 404 |
# File 'lib/serrano.rb', line 398 def self.types(ids: nil, offset: nil, limit: nil, works: false, options: nil, verbose: false, cursor: nil, cursor_max: 5000, **args) RequestCursor.new('types', ids, nil, nil, offset, limit, nil, nil, nil, nil, works, nil, , verbose, cursor, cursor_max, args).perform end |
.works(ids: nil, query: nil, filter: nil, offset: nil, limit: nil, sample: nil, sort: nil, order: nil, facet: nil, options: nil, verbose: false, cursor: nil, cursor_max: 5000, **args) ⇒ Array
Search the works route
167 168 169 170 171 172 173 174 |
# File 'lib/serrano.rb', line 167 def self.works(ids: nil, query: nil, filter: nil, offset: nil, limit: nil, sample: nil, sort: nil, order: nil, facet: nil, options: nil, verbose: false, cursor: nil, cursor_max: 5000, **args) RequestCursor.new('works', ids, query, filter, offset, limit, sample, sort, order, facet, nil, nil, , verbose, cursor, cursor_max, args).perform end |