apiphobic-resource 1.1.1 → 1.2.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: 31a78915ec7034d917d846557f5867718feeaa97f3fdbb373b7ea174a4f95c12
4
- data.tar.gz: 31cf54f24c9111e49d0d7cc71e49189e94e17483b12b451ad249a929190b1cf0
3
+ metadata.gz: 5929b13d77c0b3e85f80ac7fcfc71f66cf34249f99970c73436ea1f8496b68d7
4
+ data.tar.gz: bd5411d364a65e31f8751c403b170363ddfea2c273b9c5aeb89b457272f836ca
5
5
  SHA512:
6
- metadata.gz: 9e8ec00ebd24c69bf4859846b86695f672a468315f28dc2e30d567361072d62e818a8d313eae98b080e886c8b452878c5cc31ac17f4e2e462e44842f5182b932
7
- data.tar.gz: 9430cc440e0093fcc8459c45c88e5dfb2d3196cf3dd44017a14ddb674dae4e21c2cfd8566923c5c6d9bcf9f5befa2b226609073fa7b476bfce1ca7d118f64945
6
+ metadata.gz: 77d8cecf97580ef1e8d204540556bb462f66394d8b8547e6d290c21237a980bc66608ed3147a5dbf526ef1d639489ccbce82db76804fdcb26c1efe8c40371a69
7
+ data.tar.gz: ee80b6b44b634d63cd18b0ea59c01a18c78968c99d66f7295ab5842d25b64d80de71d04b374a34f1f2a8f0d347592ab0170e70caba119a00a65809ed256d2bf7
checksums.yaml.gz.sig CHANGED
Binary file
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010-2016 The Kompanee, Ltd
1
+ Copyright (c) 2010-2019 The Kompanee, Ltd
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
@@ -5,7 +5,7 @@ module Parameters
5
5
  class Filter
6
6
  FLOAT = /\A[\-+]?[_\d]+\.[_\d]+\z/
7
7
  INTEGER = /\A[\-+]?[_\d]+\z/
8
- ISO8601 = /\d{4}\-\d{2}\-\d{2}T\d{2}\:\d{2}\:\d{2}(?:[+\-]\d{2}\:\d{2}|Z)/
8
+ ISO8601 = /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:[+\-]\d{2}:\d{2}|Z)/
9
9
  NUMERICAL = /[\-+]?[_\d]+(?:\.\d+)?/
10
10
 
11
11
  DATE_RANGE = /\A(#{ISO8601})\.\.\.?(#{ISO8601})\z/
@@ -39,12 +39,11 @@ class Filter
39
39
  end
40
40
  end
41
41
 
42
- # rubocop:disable Lint/AssignmentInCondition, Metrics/AbcSize,
43
- # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
44
- def format_value(value)
42
+ # rubocop:disable Lint/AssignmentInCondition
43
+ def format_value(value) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
45
44
  return value unless value.is_a?(::String)
46
45
 
47
- if range_points = value.match(DATE_RANGE)
46
+ if range_points = value.match(DATE_RANGE)
48
47
  exclusive = value.include?('...')
49
48
  starting_point = ::Time.iso8601(range_points[1])
50
49
  ending_point = ::Time.iso8601(range_points[2])
@@ -66,17 +65,17 @@ class Filter
66
65
  value
67
66
  end
68
67
  end
69
- # rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
70
- # rubocop:enable Lint/AssignmentInCondition, Metrics/AbcSize,
68
+ # rubocop:enable Lint/AssignmentInCondition
71
69
 
72
70
  def string_to_number(other)
73
71
  other = other.delete('_')
74
72
 
75
- if other == 'Infinity'
73
+ case other
74
+ when 'Infinity'
76
75
  9_999_999
77
- elsif other.match?(FLOAT)
76
+ when FLOAT
78
77
  other.to_f
79
- elsif other.match?(INTEGER)
78
+ when INTEGER
80
79
  other.to_i
81
80
  end
82
81
  end
@@ -23,9 +23,7 @@ class Include
23
23
 
24
24
  private
25
25
 
26
- # rubocop:disable Metrics/PerceivedComplexity,
27
- # rubocop:disable Metrics/BlockNesting
28
- def map_inclusions(array)
26
+ def map_inclusions(array) # rubocop:disable Metrics/AbcSize, Metrics/PerceivedComplexity
29
27
  mapped = array.each_with_object([{}]) do |inclusion, memo|
30
28
  if inclusion.is_a?(::Hash)
31
29
  memo[0] = inclusion
@@ -37,7 +35,7 @@ class Include
37
35
  else
38
36
  memo.delete(first)
39
37
 
40
- memo[0][first] = if memo[0][first].nil?
38
+ memo[0][first] = if memo[0][first].nil? # rubocop:disable Metrics/BlockNesting
41
39
  rest
42
40
  else
43
41
  map_inclusions(Array(memo[0][first]) << rest)
@@ -50,8 +48,6 @@ class Include
50
48
 
51
49
  mapped
52
50
  end
53
- # rubocop:enable Metrics/BlockNesting
54
- # rubocop:enable Metrics/PerceivedComplexity,
55
51
  end
56
52
  end
57
53
  end
@@ -16,13 +16,13 @@ class Sort
16
16
  end
17
17
 
18
18
  def to_h
19
- @to_h ||= Hash[to_a]
19
+ @to_h ||= to_a.to_h
20
20
  end
21
21
 
22
22
  def to_a
23
23
  @to_a ||= raw_parameters.map do |raw_parameter|
24
24
  if raw_parameter.start_with?(DESCENDING_PREFIX)
25
- [raw_parameter[1..-1], 'desc']
25
+ [raw_parameter[1..], 'desc']
26
26
  else
27
27
  [raw_parameter, 'asc']
28
28
  end
@@ -35,15 +35,18 @@ class Model
35
35
  end
36
36
 
37
37
  def processed
38
- @processed ||= begin
39
- processed = processors.inject(resource) do |processed_resource, processor|
40
- processor.processed(processed_resource, parameters)
41
- end
38
+ @processed \
39
+ ||= begin
40
+ processed = processors.inject(resource) do |processed_resource, processor|
41
+ processor.processed(processed_resource, parameters)
42
+ end
42
43
 
43
- return processed if instance_of?(::Apiphobic::Resource::Collection)
44
-
45
- processed.find_by(id: id) || processed.new
46
- end
44
+ if instance_of?(::Apiphobic::Resource::Collection)
45
+ processed
46
+ else
47
+ processed.find_by(id: id) || processed.new
48
+ end
49
+ end
47
50
  end
48
51
 
49
52
  def meta
@@ -30,7 +30,7 @@ class Filtering
30
30
 
31
31
  if !filter_method
32
32
  filtered_resource
33
- elsif filter_method.arity.zero?
33
+ elsif filter_method.arity == 0
34
34
  filtered_resource.public_send(filter_method.name)
35
35
  else
36
36
  filtered_resource.public_send(filter_method.name, value)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Apiphobic
4
4
  module Resource
5
- VERSION = '1.1.1'
5
+ VERSION = '1.2.0'
6
6
  end
7
7
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apiphobic-resource
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - thegranddesign
@@ -10,28 +10,34 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDqjCCApKgAwIBAgIBATANBgkqhkiG9w0BAQUFADBNMREwDwYDVQQDDAhydWJ5
14
- Z2VtczEjMCEGCgmSJomT8ixkARkWE2xpdmluZ2hpZ2hvbnRoZWJsb2cxEzARBgoJ
15
- kiaJk/IsZAEZFgNjb20wHhcNMTcwODAyMjI1OTM1WhcNMTgwODAyMjI1OTM1WjBN
16
- MREwDwYDVQQDDAhydWJ5Z2VtczEjMCEGCgmSJomT8ixkARkWE2xpdmluZ2hpZ2hv
17
- bnRoZWJsb2cxEzARBgoJkiaJk/IsZAEZFgNjb20wggEiMA0GCSqGSIb3DQEBAQUA
18
- A4IBDwAwggEKAoIBAQDtLa7+7p49gW15OgOyRZad/F92iZcMdDjZ2kAxZlviXgVe
19
- PCtjfdURobH+YMdt++6eRkE25utIFqHyN51Shxfdc21T3fPQe/ZEoMyiJK4tYzbh
20
- 7VjNJG4ldvKKpS1p7iVz9imnyTxNwb0JaIOsOFCA04T0u6aCQi2acNvAPLviXk0q
21
- xJ/CKjI4QUTZKVrBt8Q1Egrp2yzmEnSNftDuTbBb8m4vDR+w325CwbKCgycHJ1/g
22
- YZ3FO76TzJuRVbsYS/bU5XKHVEpkeFmWBqEXsk4DuUIWLa6WZEJcoZf+YP+1pycG
23
- 7YqSbydpINtEdopD+EEI+g+zNJ4nSI8/eQcQyEjBAgMBAAGjgZQwgZEwCQYDVR0T
24
- BAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFDWuVrg4ve0vLu71kqiGdyBnzJGV
25
- MCsGA1UdEQQkMCKBIHJ1YnlnZW1zQGxpdmluZ2hpZ2hvbnRoZWJsb2cuY29tMCsG
26
- A1UdEgQkMCKBIHJ1YnlnZW1zQGxpdmluZ2hpZ2hvbnRoZWJsb2cuY29tMA0GCSqG
27
- SIb3DQEBBQUAA4IBAQDJIpHjbBPGiaY4wOHcXlltQ+BMmhWQNh+1fZtyajQd+7Ay
28
- fv23mO7Mf25Q38gopQlpaODkfxq54Jt8FvQbr5RYRS4j+JEKb75NgrAtehd8USUd
29
- CiJJGH+yvGNWug9IGZCGX91HIbTsLQ5IUUWQasC5jGP8nxXufUr9xgAJZZenewny
30
- B2qKu8q1A/kj6cw62RCY7yBmUXxlcJBj8g+JKYAFbYYKUdQSzf50k9IiWLWunJM+
31
- Y2GAoHKstmfIVhc4XHOPpmTd2o/C29O9oaRgjrkfQEhF/KvJ/PhoV5hvokzsCyI5
32
- iUeXPfvrGD/itYIBCgk+fnzyQQ4QtE5hTQaWQ3o2
13
+ MIIEyjCCAzKgAwIBAgIBATANBgkqhkiG9w0BAQsFADBVMSIwIAYDVQQDDBlsb2Nh
14
+ bGV1bmtub3duODEwX3J1YnlnZW1zMRowGAYKCZImiZPyLGQBGRYKcHJvdG9ubWFp
15
+ bDETMBEGCgmSJomT8ixkARkWA2NvbTAeFw0yMjA3MDkwNTMxMjJaFw0yMzA3MDkw
16
+ NTMxMjJaMFUxIjAgBgNVBAMMGWxvY2FsZXVua25vd244MTBfcnVieWdlbXMxGjAY
17
+ BgoJkiaJk/IsZAEZFgpwcm90b25tYWlsMRMwEQYKCZImiZPyLGQBGRYDY29tMIIB
18
+ ojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0otlhSPyU7jLLW1p786Mo/pV
19
+ 5cJ1Ed8D/bJK78PqGFO2h0ZUefupxT5PRMokLYNNGRPopnAAxZ0zVxJ68aOyYCBW
20
+ Wk3/XFcXCrtk/OcFwLTltgeMjyqCBd/zRRx6CCjY4uOfH0E3n1gQ6Fbmewjg83XJ
21
+ nOs7Gu/hzj5+feEQ1Exmg6z1oCM/8BTIBtK+p++HvcDK3AhJ7x3fc6P9WS+22w6j
22
+ 7jpi3p9YtoAjrXIzw3lsobiX+bEt+N+T47e8gOATVgapuZ/QmJzNU6LWepehs4V1
23
+ 8J+FUaIMV7nAMKmpkbYL51uHEiGV+HDx1HUdOsCFx8zD4h49KRT2t6AcumJ5P1Cj
24
+ c7NX2xl85ShHDNNFkozuC2c5cwj6F20EVaVjGwv2OFq0S2tUw9EJXHTN9RpfRUmn
25
+ IHwS9M4gcJO7IzV39a1YL6+9hrabF4+JTSYDehq8oxTdcOPLYyvH54aJWVqCrnLO
26
+ KNa/p6hMmwxTWNS5Vz0uxuEGyE9E0tHbtjIs2XX5AgMBAAGjgaQwgaEwCQYDVR0T
27
+ BAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFAK3RicwO0f6+puFN6lRVMOKMJuu
28
+ MDMGA1UdEQQsMCqBKGxvY2FsZXVua25vd244MTArcnVieWdlbXNAcHJvdG9ubWFp
29
+ bC5jb20wMwYDVR0SBCwwKoEobG9jYWxldW5rbm93bjgxMCtydWJ5Z2Vtc0Bwcm90
30
+ b25tYWlsLmNvbTANBgkqhkiG9w0BAQsFAAOCAYEAQwV6pOp5gm8141pyXeQFI/5E
31
+ rZYO3MvdyZM8O3HMD51LDS8mtMURceaKZM6WTambe2RVX4A++0qUiEnn9K4Fexm/
32
+ SEGaC/Gp+Fg9D1SKfkdq9bgdIhOEUwiGqjczgzNC806AtWZ+awI940oydFYZlpo0
33
+ jMQihPPJEqF1U6JBDMZYV5tX/dJYSGRl9L3s1k2tjoN98q+beNaZQDn21Amml4eK
34
+ KEkMeTTJ2E4GVzR9eKEETLq2LygdUWWZ5NdWOYTxJMdg1GZp3b6X8hJrwfOiizqt
35
+ /ANlIEh11/pOnWa6WPUVpGIMpYdquvmJXnF2LX6zxkKK1hbrebt+vAEAGczgw1Ri
36
+ rkLM6y+BHQdkOTj3VG4MjIU8D4h1Z73Exzxds/VbVKMEz+8JrFjGJ/tYa0PZ8U5p
37
+ 3yXL4G6eW3rdBW/OiLF7GgG2o26d02OMzf4+ubUVS5LQDOcd4vgNPLWzJSBt1YIh
38
+ TgBsED7Me5YdMVXxtTWYsF1VMzaL9hReD3UXGcxe
33
39
  -----END CERTIFICATE-----
34
- date: 2018-07-09 00:00:00.000000000 Z
40
+ date: 2022-07-09 00:00:00.000000000 Z
35
41
  dependencies:
36
42
  - !ruby/object:Gem::Dependency
37
43
  name: rspec
@@ -39,14 +45,14 @@ dependencies:
39
45
  requirements:
40
46
  - - "~>"
41
47
  - !ruby/object:Gem::Version
42
- version: '3.7'
48
+ version: '3.11'
43
49
  type: :development
44
50
  prerelease: false
45
51
  version_requirements: !ruby/object:Gem::Requirement
46
52
  requirements:
47
53
  - - "~>"
48
54
  - !ruby/object:Gem::Version
49
- version: '3.7'
55
+ version: '3.11'
50
56
  - !ruby/object:Gem::Dependency
51
57
  name: rspeckled
52
58
  requirement: !ruby/object:Gem::Requirement
@@ -84,11 +90,18 @@ files:
84
90
  - lib/apiphobic/resource/processors/paging.rb
85
91
  - lib/apiphobic/resource/processors/sorting.rb
86
92
  - lib/apiphobic/resource/version.rb
87
- homepage: ''
93
+ homepage: https://github.com/thekompanee/apiphobic-resource
88
94
  licenses:
89
95
  - MIT
90
96
  metadata:
91
97
  allowed_push_host: https://rubygems.org
98
+ bug_tracker_uri: https://github.com/thekompanee/apiphobic-resource/issues
99
+ changelog_uri: https://github.com/thekompanee/apiphobic-resource/blob/master/CHANGELOG.md
100
+ documentation_uri: https://github.com/thekompanee/apiphobic-resource/tree/releases/v1.2.0
101
+ homepage_uri: https://github.com/thekompanee/apiphobic-resource
102
+ source_code_uri: https://github.com/thekompanee/apiphobic-resource
103
+ wiki_uri: https://github.com/thekompanee/apiphobic-resource/wiki
104
+ rubygems_mfa_required: 'true'
92
105
  post_install_message:
93
106
  rdoc_options: []
94
107
  require_paths:
@@ -104,8 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
117
  - !ruby/object:Gem::Version
105
118
  version: '0'
106
119
  requirements: []
107
- rubyforge_project:
108
- rubygems_version: 2.7.7
120
+ rubygems_version: 3.3.7
109
121
  signing_key:
110
122
  specification_version: 4
111
123
  summary: API Resources
metadata.gz.sig CHANGED
Binary file