crossrefapi 0.1.0 → 0.1.2

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: a0a8e0c79a1640c0924f60c8c583fc178e86911f3a7545f0dd4bfcd178cad9fe
4
- data.tar.gz: e01aa77e9d3260f92d17344a4f9cf0bc5ab7483c6fb37b28f58bbae7416cff55
3
+ metadata.gz: c008b53081f95dfa680ed04dbaf7d9edab1b5692e469b97d091bccb3b82276d9
4
+ data.tar.gz: aae3bc1b02026bc4562677462e2fcec387d3efd4d9bc0ca1707234593ef85598
5
5
  SHA512:
6
- metadata.gz: fc4d62d8155aca0f974339c68018aceb67b89a1b7f49bacd081c94a4d77b6d7f7bec08b4dad3312b2ee53eb063d6bedffa77005b0d50e1e80212974d6d2cfaf8
7
- data.tar.gz: 4ffcef5fff1cf305197f40e228a58d0a2f737e1da4db39eb485c2128b7842d9a94eff533df69ab16c442ca6d0b0c42619b41b289c723ac59bd6e52bf5322bce9
6
+ metadata.gz: b7e93158b1d1dff7bf25bfe8cdd16d1b3672f8357856e5cab3083b6f8044be7b0cb72779cd25f302c380303ee51a2758f8b04e77c8a3d49d403cd6d5db26da98
7
+ data.tar.gz: 2b6f8b9f48c29d45b58b1d5acd6f91bb5b6d23ead696bf27f62e5dc8146171f3e08bf75e4b7a733c04b3012b20e0ba1cdacb0344cef45465cb8eaa19e3739105
@@ -19,17 +19,16 @@ module Crossrefapi
19
19
  class Client
20
20
  API_BASE = "https://api.crossref.org/"
21
21
 
22
- attr_reader :funders, :journals, :licenses, :members, :prefixes, :types, :works
22
+ RESOURCES = %w[funders journals licenses members prefixes types works].freeze
23
23
 
24
24
  def initialize
25
25
  @connection = initialize_connection
26
- @funders = Crossrefapi::Funders.new(self)
27
- @journals = Crossrefapi::Journals.new(self)
28
- @licenses = Crossrefapi::Licenses.new(self)
29
- @members = Crossrefapi::Members.new(self)
30
- @prefixes = Crossrefapi::Prefixes.new(self)
31
- @types = Crossrefapi::Types.new(self)
32
- @works = Crossrefapi::Works.new(self)
26
+ end
27
+
28
+ RESOURCES.each do |resource|
29
+ define_method(resource) do
30
+ setup_resource(resource)
31
+ end
33
32
  end
34
33
 
35
34
  def get(endpoint, query = {})
@@ -44,6 +43,13 @@ module Crossrefapi
44
43
 
45
44
  private
46
45
 
46
+ def setup_resource(resource)
47
+ instance_variable_get("@#{resource}") ||
48
+ instance_variable_set(
49
+ "@#{resource}", Object.const_get("Crossrefapi::#{resource.capitalize}").new(self)
50
+ )
51
+ end
52
+
47
53
  def initialize_connection
48
54
  Faraday.new(url: API_BASE) do |connection|
49
55
  connection.response :json
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Crossrefapi
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.2"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crossrefapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Tarr
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2025-03-21 00:00:00.000000000 Z
13
+ date: 2025-04-09 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: faraday