ncore 3.5.1 → 3.6.0

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: 16e01242ae632039f017faa4e3c51e6c885b05bb86ba0c53db9e6cf21b5e011b
4
- data.tar.gz: 849bce6e876e202690601839d0b0012a70347aeb25fe0fff0c56006f180e5a61
3
+ metadata.gz: c03f37d348b71840fb1b026e3de31ef6da22ddf18bb74a203c2d8a358c58c5af
4
+ data.tar.gz: ac03fd561267e2e2b9c85aa27055ccf175aab111dc1da27e7e3d17c88c5f67b6
5
5
  SHA512:
6
- metadata.gz: ced939921588d62b7141fb481b1aa8638be6e297f0d355137c4aa155c8efde8d41198e4d76acdb9c574cf9bdefe7026df384dc84a70002153b38ded55cf9e80e
7
- data.tar.gz: 2497400057a0229616f5d9771f141be8966e65ab7d9ab767c3c54c3efaeb13f15017d46d7da6c1f73f23b22032c093d2a3f93246f968fece9ade3372dc981a66
6
+ metadata.gz: f4d425431577a921e17a900b0acd1f7f002708f848b8ced1e5a21b4670d7718c144772ad685ae836cb269a230a4c102ae8cc41a775be4c3ce4af9185d3557d57
7
+ data.tar.gz: e4ced0c42b03d3c39e01dba00b8f59473a20318e3d7c33aa2218f3577675164d4c1a0c34a582e3a3922262295fdfe130a6b537c2d54d811502c9a8f0d096f64f
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ #### 3.6.0
2
+
3
+ - factory() - add :preload option; make available to resource instances
4
+ - Resource.new() - add :preload option
5
+ Hint: the first arg (attribs) must be a hash, not kwarg: `new({id: id})`
6
+
7
+ #### 3.5.2
8
+
9
+ - Fix logger=()
10
+
1
11
  #### 3.5.1
2
12
 
3
13
  - Preserve 'metadata' and 'errors' keys as attributes when inside a standard
@@ -1,6 +1,6 @@
1
1
  require 'ncore/rails/log_subscriber'
2
2
 
3
- module AuthRocket
3
+ module MyApi
4
4
  class LogSubscriber < ActiveSupport::LogSubscriber
5
5
  include NCore::LogSubscriber
6
6
  self.runtime_variable = 'myapi_runtime'
@@ -18,5 +18,9 @@ module MyApi
18
18
  end
19
19
  end
20
20
 
21
+ initializer "my_api.logger" do |app|
22
+ MyApi::Api.logger = Rails.logger
23
+ end
24
+
21
25
  end
22
26
  end
@@ -95,12 +95,17 @@ module NCore
95
95
  attr_accessor :metadata, :errors
96
96
 
97
97
 
98
- def initialize(attribs={}, api_creds=nil)
98
+ def initialize(attribs={}, api_creds=nil, preload: {})
99
99
  @attribs = {}.with_indifferent_access
100
100
  attribs = attribs.dup.with_indifferent_access
101
+ preload = preload.present? ? preload.dup.with_indifferent_access : nil
101
102
  creds_attr = attribs.delete(:credentials)
102
103
  @api_creds = api_creds || creds_attr
103
104
 
105
+ if preload
106
+ load(data: preload.delete(:data) || preload.except(:credentials, :metadata, :errors))
107
+ end
108
+
104
109
  load(
105
110
  metadata: attribs.delete(:metadata),
106
111
  errors: attribs.delete(:errors),
data/lib/ncore/client.rb CHANGED
@@ -314,13 +314,13 @@ module NCore
314
314
 
315
315
  def debug_request(rest_opts)
316
316
  return unless logger.debug?
317
- logger << <<-DBG
318
- #{'-=- '*18}
319
- REQUEST:
320
- #{rest_opts[:method].to_s.upcase} #{rest_opts[:url]}
321
- #{rest_opts[:headers].map{|h,d| "#{h}: #{d}"}.join("\n ")}
322
- #{rest_opts[:body] || 'nil'}
323
- DBG
317
+ logger << <<~DBG
318
+ #{'-=- '*18}
319
+ REQUEST:
320
+ #{rest_opts[:method].to_s.upcase} #{rest_opts[:url]}
321
+ #{rest_opts[:headers].map{|h,d| "#{h}: #{d}"}.join("\n ")}
322
+ #{rest_opts[:body] || 'nil'}
323
+ DBG
324
324
  end
325
325
 
326
326
  def debug_response(response)
@@ -330,13 +330,13 @@ DBG
330
330
  else
331
331
  json = JSON.parse(response.body||'', symbolize_names: false) rescue response.body
332
332
  end
333
- logger << <<-DBG
334
- RESPONSE:
335
- #{response.headers['Status']} | #{response.headers['Content-Type']} | #{response.body.size} bytes
336
- #{response.headers.except('Status', 'Connection', 'Content-Type').map{|h,d| "#{h}: #{d}"}.join("\n ")}
337
- #{json.pretty_inspect.split("\n").join("\n ")}
338
- #{'-=- '*18}
339
- DBG
333
+ logger << <<~DBG
334
+ RESPONSE:
335
+ #{response.headers['Status']} | #{response.headers['Content-Type']} | #{response.body.size} bytes
336
+ #{response.headers.except('Status', 'Connection', 'Content-Type').map{|h,d| "#{h}: #{d}"}.join("\n ")}
337
+ #{json.pretty_inspect.split("\n").join("\n ")}
338
+ #{'-=- '*18}
339
+ DBG
340
340
  end
341
341
 
342
342
  end # ClassMethods
@@ -14,7 +14,7 @@ module NCore
14
14
  # always returns a new object; check .errors? or .valid? to see how it went
15
15
  def delete(id, params={})
16
16
  raise(module_parent::RecordNotFound, "Cannot delete id=nil") if id.blank?
17
- obj = new(id: id)
17
+ obj = new({id: id})
18
18
  obj.delete(params)
19
19
  obj
20
20
  end
@@ -5,7 +5,7 @@ module NCore
5
5
  module ClassMethods
6
6
  def find(id, params={})
7
7
  raise(module_parent::RecordNotFound, "Cannot find id=nil") if id.blank?
8
- o = new(id: id)
8
+ o = new({id: id})
9
9
  o.reload(params)
10
10
  end
11
11
 
@@ -14,7 +14,7 @@ module NCore
14
14
  # always returns a new object; check .errors? or .valid? to see how it went
15
15
  def update(id, attribs)
16
16
  raise(module_parent::RecordNotFound, "Cannot update id=nil") if id.blank?
17
- obj = new(id: id)
17
+ obj = new({id: id})
18
18
  obj.update attribs
19
19
  obj
20
20
  end
@@ -8,11 +8,7 @@ module NCore
8
8
  extend ::ActiveModel::Translation
9
9
  end
10
10
 
11
- if defined?(::Rails)
12
- def logger
13
- ::Rails.logger
14
- end
15
- end
11
+ delegate :logger, to: :class
16
12
 
17
13
  def new_record?
18
14
  !id
data/lib/ncore/util.rb CHANGED
@@ -38,11 +38,11 @@ module NCore
38
38
  end
39
39
  end
40
40
 
41
- def factory(parsed, api_creds)
41
+ def factory(parsed, api_creds, preload: nil)
42
42
  if key = (parsed[:data] || parsed)[:object]
43
- discover_class(key, self).new(parsed, api_creds)
43
+ discover_class(key, self).new(parsed, api_creds, preload: preload)
44
44
  else
45
- new(parsed, api_creds)
45
+ new(parsed, api_creds, preload: preload)
46
46
  end
47
47
  end
48
48
 
@@ -61,6 +61,9 @@ module NCore
61
61
  end
62
62
 
63
63
 
64
+ delegate :factory, to: :class
65
+
66
+
64
67
  def inspect
65
68
  base = "#{self.class}:0x#{'%016x'%self.object_id} id: #{id.inspect}"
66
69
  @@inspect_chain ||= []
data/lib/ncore/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module NCore
2
- VERSION = '3.5.1'
2
+ VERSION = '3.6.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ncore
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.1
4
+ version: 3.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Notioneer Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-20 00:00:00.000000000 Z
11
+ date: 2023-02-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel