apple_core 1.5.0 → 1.7.1

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: ec8382b41b1db19d702cdec4cf4cb8f9ce2ede593353d38badee3ac398b0964c
4
- data.tar.gz: c5112a2ae300974165e0c26628cd6b110063af45ac7f402c6e54c3933cfba5ac
3
+ metadata.gz: c2f9645f13dd43182dbdc97a334f05d325fb80fbbe5d210d0615790af0c38f8b
4
+ data.tar.gz: 50b7e9a836b121be956eab97e5f6e8b55a5704b737dae15d33a7e01e64f5c5a7
5
5
  SHA512:
6
- metadata.gz: 2504c1d0f191c10dc8f4e2ca44b8f79c48afcaaf6051f76e3e94319dbdd1777cd4e9eac95fbb00a4150406cbf9df01d6d2bc723147b9bef95acbf5ed1d84f09b
7
- data.tar.gz: 8916366a83a20f470fdd5ab6f28b5c02bb228f6bb2db024b38bc3ac6251785b6ff61d9784f184f315d38eb0c7f1f83148ab6beef3e612fe88cd3b9e5d986ece6
6
+ metadata.gz: 81b778175c3a4f98d8632d267c365f7b00b52672dc561d89dc8d1ebea8840b81d108fd458f30bc81299f27f3a60ea4556815e6bec628f7960221c390e021d59a
7
+ data.tar.gz: d68771735ff7babd5b5aac4b798c2417f293e569a852985c2b612ae359383bf4f9175373ff9774d1244dfa437732ab6846e7be94ff285d87659eb5b19e9ff0f4
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
@@ -7,38 +7,48 @@ module ActionController
7
7
  module ResourceNaming
8
8
  using ::AppleCore::Refinements::String
9
9
 
10
+ # rubocop:disable Lint/MixedRegexpCaptureTypes
10
11
  CONTROLLER_RESOURCE_NAME_PATTERN = /
11
12
  \A # Beginning of String
12
13
  (?:
13
14
  (?<modules> # Full Modules
14
15
  (?: # Match Root Module (Optional)
15
16
  (?<root_module>
16
- [^\:]+ # The Module Name
17
- (?=\:\:) # Which Must Be Followed By '::'
17
+ [^:]+ # The Module Name
18
+ (?=::) # Which Must Be Followed By '::'
18
19
  )
19
- (?:\:\:)? # Up Through the '::' But Don't
20
+ (?:::)? # Up Through the '::' But Don't
20
21
  # Capture If It's The Sole Module
21
22
  )?
23
+ ( # There Can Be A Version
24
+ V # A Literal V
25
+ (?<version>
26
+ \d+ # The Version Number
27
+ )
28
+ (?:::)? # Up Through the '::' But Don't
29
+ # Capture If It's The Sole Module
30
+ )?
22
31
  (?<submodules> # Match Submodule List (Optional)
23
32
  ( # There May Be Zero or More of These
24
- [^\:]+ # The Module Name
25
- \:\: # Up Through the '::'
33
+ [^:]+ # The Module Name
34
+ :: # Up Through the '::'
26
35
  )*?
27
36
  (?<last_submodule> # The Final Submodule (Optional)
28
- [^\:]+ # The Module Name
29
- (?=\:\:) # Which Must Be Followed By '::'
37
+ [^:]+ # The Module Name
38
+ (?=::) # Which Must Be Followed By '::'
30
39
  )?
31
40
  )?
32
41
  )
33
- \:\: # Required Final Separator
42
+ :: # Required Final Separator
34
43
  )?
35
44
  (?<controller_name>
36
- (?<resource_name>\w+?) # Base Resource Name
45
+ (?<base_resource_name>\w+?) # Base Resource Name
37
46
  (?:Index|Indicies)? # Optional Index Suffix
38
47
  )
39
48
  Controller # Literal 'Controller'
40
49
  \z # End of String
41
50
  /x
51
+ # rubocop:enable Lint/MixedRegexpCaptureTypes
42
52
 
43
53
  def self.included(base)
44
54
  base.extend(self)
@@ -62,14 +72,14 @@ module ResourceNaming
62
72
  end
63
73
 
64
74
  def plural_resource_base_class_name
65
- @plural_resource_base_class_name ||= resource_name
75
+ @plural_resource_base_class_name ||= base_resource_name
66
76
  .pluralize
67
77
  end
68
78
 
69
79
  def singular_resource_class_name
70
80
  @singular_resource_class_name ||= [
71
- name_components['root_module'],
72
- resource_name,
81
+ name_components['modules'],
82
+ base_resource_name,
73
83
  ]
74
84
  .compact
75
85
  .join('::')
@@ -84,9 +94,9 @@ module ResourceNaming
84
94
  @name_components ||= name.match(CONTROLLER_RESOURCE_NAME_PATTERN).named_captures
85
95
  end
86
96
 
87
- def resource_name
88
- @resource_name ||= name_components['resource_name']
89
- .singularize
97
+ def base_resource_name
98
+ @base_resource_name ||= name_components['base_resource_name']
99
+ .singularize
90
100
  end
91
101
  end
92
102
  end
@@ -9,7 +9,7 @@ module Helpers
9
9
  module WebClientUrl
10
10
  using ::AppleCore::Refinements::QueryString
11
11
 
12
- # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
12
+ # rubocop:disable Metrics/AbcSize
13
13
  def web_client_url(**options)
14
14
  route_name = options.delete(:name)
15
15
 
@@ -48,7 +48,7 @@ module WebClientUrl
48
48
 
49
49
  URI::HTTPS.new(*arguments).to_s
50
50
  end
51
- # rubocop:enable Metrics/AbcSize, Metrics/MethodLength
51
+ # rubocop:enable Metrics/AbcSize
52
52
  end
53
53
  end
54
54
  end
@@ -17,7 +17,7 @@ class InclusionValidator
17
17
 
18
18
  record.errors.add(attribute,
19
19
  :inclusion,
20
- options.except(:in).merge!(value: value))
20
+ **options.except(:in).merge!(value: value))
21
21
  end
22
22
  end
23
23
  end
@@ -14,9 +14,9 @@ module Class
14
14
  module ClassMethods
15
15
  def class_attribute(method_name, options = {})
16
16
  instance_reader = options.fetch(:instance_accessor, true) &&
17
- options.fetch(:instance_reader, true)
17
+ options.fetch(:instance_reader, true)
18
18
  instance_writer = options.fetch(:instance_accessor, true) &&
19
- options.fetch(:instance_writer, true)
19
+ options.fetch(:instance_writer, true)
20
20
 
21
21
  remove_possible_singleton_method(method_name)
22
22
  define_singleton_method(method_name) { options[:default] }
@@ -5,7 +5,7 @@ require 'apple_core/action_view/helpers/web_client_url'
5
5
  module AppleCore
6
6
  class Railtie < Rails::Railtie
7
7
  initializer 'web_client_url.helper' do |_app|
8
- ::ActionView::Base.public_send(:include, AppleCore::ActionView::Helpers::WebClientUrl)
8
+ ::ActionView::Base.include AppleCore::ActionView::Helpers::WebClientUrl
9
9
  end
10
10
  end
11
11
  end
@@ -28,6 +28,26 @@ refine ::Hash do
28
28
  Transforms::Enumerable.deep_transform_values(nil, self, &block)
29
29
  end
30
30
 
31
+ unless method_defined?(:deep_merge)
32
+ def deep_merge(other, &block)
33
+ dup.deep_merge!(other, &block)
34
+ end
35
+ end
36
+
37
+ unless method_defined?(:deep_merge!)
38
+ def deep_merge!(other, &block)
39
+ merge!(other) do |key, value_1, value_2|
40
+ if value_1.is_a?(::Hash) && value_2.is_a?(::Hash)
41
+ value_1.deep_merge(value_2, &block)
42
+ elsif block
43
+ yield(key, value_1, value_2)
44
+ else
45
+ value_2
46
+ end
47
+ end
48
+ end
49
+ end
50
+
31
51
  unless method_defined?(:slice)
32
52
  def slice(*keys)
33
53
  keys.each_with_object({}) do |k, hash|
@@ -29,12 +29,11 @@ end
29
29
  refine ::Hash do
30
30
  unless method_defined?(:to_param)
31
31
  def to_param(namespace = nil)
32
- map { |key, value|
33
- unless (value.is_a?(Hash) || value.is_a?(Array)) && value.empty?
32
+ filter_map { |key, value|
33
+ if (!value.is_a?(Hash) && !value.is_a?(Array)) || !value.empty?
34
34
  value.to_query(namespace ? "#{namespace}[#{key}]" : key)
35
35
  end
36
36
  }
37
- .compact
38
37
  .sort!
39
38
  .join('&')
40
39
  end
@@ -12,6 +12,16 @@ refine ::String do
12
12
  only_digits? ? to_i(base) : nil
13
13
  end
14
14
 
15
+ def indent(*args)
16
+ dup.tap { |v| v.indent!(*args) }
17
+ end
18
+
19
+ def indent!(amount, indent_string = nil, indent_empty_lines = false) # rubocop:disable Style/OptionalBooleanParameter
20
+ indent_string = indent_string || self[/^[ \t]/] || ' '
21
+ regex = indent_empty_lines ? /^/ : /^(?!$)/
22
+ gsub!(regex, indent_string * amount)
23
+ end
24
+
15
25
  unless defined?(ActiveSupport::Inflector)
16
26
  # rubocop:disable Style/PerlBackrefs
17
27
  def camelize(first_letter_casing = :upper)
@@ -50,7 +60,6 @@ refine ::String do
50
60
  constant
51
61
  end
52
62
 
53
- # rubocop:disable Metrics/MethodLength
54
63
  def pluralize
55
64
  result = to_s.dup
56
65
 
@@ -90,9 +99,8 @@ refine ::String do
90
99
 
91
100
  result
92
101
  end
93
- # rubocop:enable Metrics/MethodLength
94
102
 
95
- # rubocop:disable Metrics/MethodLength, Layout/AlignHash
103
+ # rubocop:disable Layout/HashAlignment
96
104
  def singularize
97
105
  result = to_s.dup
98
106
 
@@ -144,7 +152,7 @@ refine ::String do
144
152
 
145
153
  result
146
154
  end
147
- # rubocop:enable Metrics/MethodLength, Layout/AlignHash
155
+ # rubocop:enable Layout/HashAlignment
148
156
 
149
157
  def underscore
150
158
  word = gsub('::', '/')
@@ -25,11 +25,12 @@ class Enumerable
25
25
  end
26
26
 
27
27
  def self.deep_transform_values(key, value, &block)
28
- if value.is_a?(::Hash)
28
+ case value
29
+ when ::Hash
29
30
  value.each_with_object({}) do |(k, v), memo|
30
31
  memo[k] = deep_transform_values(k, v, &block)
31
32
  end
32
- elsif value.is_a?(::Array)
33
+ when ::Array
33
34
  yield(
34
35
  key,
35
36
  value.map { |v| deep_transform_values(nil, v, &block) }
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AppleCore
4
- VERSION = '1.5.0'
4
+ VERSION = '1.7.1'
5
5
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apple_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - thegranddesign
@@ -10,101 +10,91 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIEcjCCAtqgAwIBAgIBATANBgkqhkiG9w0BAQsFADAxMS8wLQYDVQQDDCZydWJ5
14
- Z2Vtcy9EQz1saXZpbmdoaWdob250aGVibG9nL0RDPWNvbTAeFw0xODA4MDMyMTQ1
15
- MjBaFw0xOTA4MDMyMTQ1MjBaMDExLzAtBgNVBAMMJnJ1YnlnZW1zL0RDPWxpdmlu
16
- Z2hpZ2hvbnRoZWJsb2cvREM9Y29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIB
17
- igKCAYEAvFj8ecqDt5dzEJzd+kTn2uMKXRRgJdhnXZ78C2+IHyxW1SAkWJ3Z5IYG
18
- CDSisIdomG1GwJOuuXITMI11UIlEkCsjyMeUpEiO/PvuuealXsg3leTOHkLYCmvm
19
- 1yscVv5NpTX7Q0gLZUxGERDK3k62AjZB0eMwfbHAcL9ZOaru+pZriepqS+xAghXO
20
- W+Iqqspg93XDKntbY5MHszNqW65Jyo1M53pOEmwXFttFJlOjDSz6WD2/uuuKWU7y
21
- b1MFDfVjjclhJwF26acaJGUr+yS6YJNAXLWPaEhPABMGNlz86+R0IrIy4IZOIVdH
22
- TBze7OtD5c6o1iFeLc8NyTIGo2o2nAhTMW/l9rz7hb16dCRNMmIzJNnKLuh6NzSx
23
- 8nHGpehSEqaVB+sdav/bng6zv6YJUII0pVCfa2NWZZXZGj+S20BzNgoK6SXrO9wt
24
- ygKYnjP4X6ySdcuAPYyPoi/MZdZgOS+8r1VCxvLLld+Jqste8ooXrY+B1Fdxy5vQ
25
- Br5WXCgjAgMBAAGjgZQwgZEwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0O
26
- BBYEFN5ncvipiAOElX1scE7OOMsMPQgjMCsGA1UdEQQkMCKBIHJ1YnlnZW1zQGxp
27
- dmluZ2hpZ2hvbnRoZWJsb2cuY29tMCsGA1UdEgQkMCKBIHJ1YnlnZW1zQGxpdmlu
28
- Z2hpZ2hvbnRoZWJsb2cuY29tMA0GCSqGSIb3DQEBCwUAA4IBgQCWFC+AfDVJ8HD/
29
- OZ6kB1knRdi9/OxnOmtdzZ0c6JRnmQl2MDMVICHsJ3+TRobSC+/7bCGu+Q2/smo6
30
- oruQmFTxiJ6aJ0Tzo/7T3qrlfqr2ApnJfcNPQ3r6u3N0x38l7ncqA85cy3T2bV09
31
- 1GmsuX0P117b5eHYhXzNowFK16bavxb1LBMz85f1pILKrWOB853E/eCftr5r3EX7
32
- d+RPbPIqss99EcQtcqI1e8t/LTX4pFs+SGInFhfl1kiOhks7/Et3rYWLuSe8+/Pf
33
- Z3/k8xnmRTv9Tx71tmcalnOPP45hePx7JE1jJr6An8XWpV7b18Mb9Y3s6a4VXvB0
34
- Sm1kq49mzDrFMIqVF68NYWuxzGgc7BZnqKf1s4XEvxdHiipEsS5Bxj/hHr+FT4oe
35
- eUgMp+qKjyM1NGj/222soSUpWqOE16L23vv8sWIbMIADdR8dephQ6jMovYylUmE5
36
- KHp+JJQviSN0i4z8gVL2zloo+xZf791LiJH8Kcjpx43jhg0WdR4=
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
37
39
  -----END CERTIFICATE-----
38
- date: 2019-01-16 00:00:00.000000000 Z
40
+ date: 2022-08-01 00:00:00.000000000 Z
39
41
  dependencies:
40
42
  - !ruby/object:Gem::Dependency
41
43
  name: activemodel
42
44
  requirement: !ruby/object:Gem::Requirement
43
45
  requirements:
44
- - - "<"
45
- - !ruby/object:Gem::Version
46
- version: '6.0'
47
- - - ">="
46
+ - - "~>"
48
47
  - !ruby/object:Gem::Version
49
- version: '4.2'
48
+ version: '7.0'
50
49
  type: :development
51
50
  prerelease: false
52
51
  version_requirements: !ruby/object:Gem::Requirement
53
52
  requirements:
54
- - - "<"
55
- - !ruby/object:Gem::Version
56
- version: '6.0'
57
- - - ">="
53
+ - - "~>"
58
54
  - !ruby/object:Gem::Version
59
- version: '4.2'
55
+ version: '7.0'
60
56
  - !ruby/object:Gem::Dependency
61
57
  name: activerecord
62
58
  requirement: !ruby/object:Gem::Requirement
63
59
  requirements:
64
- - - "<"
65
- - !ruby/object:Gem::Version
66
- version: '6.0'
67
- - - ">="
60
+ - - "~>"
68
61
  - !ruby/object:Gem::Version
69
- version: '4.2'
62
+ version: '7.0'
70
63
  type: :development
71
64
  prerelease: false
72
65
  version_requirements: !ruby/object:Gem::Requirement
73
66
  requirements:
74
- - - "<"
75
- - !ruby/object:Gem::Version
76
- version: '6.0'
77
- - - ">="
67
+ - - "~>"
78
68
  - !ruby/object:Gem::Version
79
- version: '4.2'
69
+ version: '7.0'
80
70
  - !ruby/object:Gem::Dependency
81
71
  name: rspec
82
72
  requirement: !ruby/object:Gem::Requirement
83
73
  requirements:
84
74
  - - "~>"
85
75
  - !ruby/object:Gem::Version
86
- version: '3.7'
76
+ version: '3.11'
87
77
  type: :development
88
78
  prerelease: false
89
79
  version_requirements: !ruby/object:Gem::Requirement
90
80
  requirements:
91
81
  - - "~>"
92
82
  - !ruby/object:Gem::Version
93
- version: '3.7'
83
+ version: '3.11'
94
84
  - !ruby/object:Gem::Dependency
95
85
  name: rspeckled
96
86
  requirement: !ruby/object:Gem::Requirement
97
87
  requirements:
98
88
  - - "~>"
99
89
  - !ruby/object:Gem::Version
100
- version: 0.0.53
90
+ version: '2.1'
101
91
  type: :development
102
92
  prerelease: false
103
93
  version_requirements: !ruby/object:Gem::Requirement
104
94
  requirements:
105
95
  - - "~>"
106
96
  - !ruby/object:Gem::Version
107
- version: 0.0.53
97
+ version: '2.1'
108
98
  description: To the CORE!
109
99
  email:
110
100
  - rubygems@livinghighontheblog.com
@@ -131,11 +121,18 @@ files:
131
121
  - lib/apple_core/refinements/string.rb
132
122
  - lib/apple_core/transforms/enumerable.rb
133
123
  - lib/apple_core/version.rb
134
- homepage: https://example.com
124
+ homepage: https://github.com/thekompanee/apple_core
135
125
  licenses:
136
126
  - MIT
137
127
  metadata:
138
128
  allowed_push_host: https://rubygems.org
129
+ bug_tracker_uri: https://github.com/thekompanee/apple_core/issues
130
+ changelog_uri: https://github.com/thekompanee/apple_core/blob/master/CHANGELOG.md
131
+ documentation_uri: https://github.com/thekompanee/apple_core/tree/releases/v1.5.0
132
+ homepage_uri: https://github.com/thekompanee/apple_core
133
+ source_code_uri: https://github.com/thekompanee/apple_core
134
+ wiki_uri: https://github.com/thekompanee/apple_core/wiki
135
+ rubygems_mfa_required: 'true'
139
136
  post_install_message:
140
137
  rdoc_options: []
141
138
  require_paths:
@@ -151,8 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
148
  - !ruby/object:Gem::Version
152
149
  version: '0'
153
150
  requirements: []
154
- rubyforge_project:
155
- rubygems_version: 2.7.6
151
+ rubygems_version: 3.3.7
156
152
  signing_key:
157
153
  specification_version: 4
158
154
  summary: Non-Active Support
metadata.gz.sig CHANGED
Binary file