attribute_struct 0.4.4 → 0.5.1
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 +4 -4
- data/CHANGELOG.md +6 -0
- data/CONTRIBUTING.md +10 -14
- data/LICENSE +2 -2
- data/attribute_struct.gemspec +1 -2
- data/lib/attribute_struct/attribute_hash.rb +1 -1
- data/lib/attribute_struct/attribute_struct.rb +10 -6
- data/lib/attribute_struct/augmented.rb +1 -1
- data/lib/attribute_struct/base.rb +2 -0
- data/lib/attribute_struct/irb_compat.rb +12 -8
- data/lib/attribute_struct/monkey_camels.rb +20 -9
- data/lib/attribute_struct/version.rb +4 -2
- data/lib/attribute_struct.rb +1 -5
- metadata +6 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c352a11063ef870f66e2fcf7ff1ac41e744b1c2ca3ebc624c90cef397d7fc07
|
4
|
+
data.tar.gz: bdc14c8037516cf494410fe84945f44582c4f0af3beb18c329a71e22376749aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a4a791483032581a0cc065d879bfad8e8aa97c7f09413c01a890a3504ecca4d22860d50b9674976d8e1a6b0c56b06ff3bfa59d7273f89bf9734ac2db47b8947
|
7
|
+
data.tar.gz: 889192d36b3f8714eaf36ebd9a00ac7c2eea71f1daf10f11a28ba8ac89825063cfd961bd47761d244eb529575d78f9ebf746910d3a430f026496cb9dc04c0dce
|
data/CHANGELOG.md
CHANGED
data/CONTRIBUTING.md
CHANGED
@@ -1,22 +1,18 @@
|
|
1
1
|
# Contributing
|
2
2
|
|
3
|
-
##
|
3
|
+
## Fixes
|
4
4
|
|
5
|
-
|
5
|
+
Have a fix to some bug you want to submit? Well you're
|
6
|
+
awesome. Please just include a description of the bug
|
7
|
+
(or link to originating issue) and test coverage on the
|
8
|
+
modifications.
|
6
9
|
|
7
|
-
|
10
|
+
## New Features
|
8
11
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
## Pull requests
|
14
|
-
|
15
|
-
* https://github.com/chrisroberts/attribute_struct/pulls
|
16
|
-
|
17
|
-
Please base all pull requests off the `develop` branch. Merges to
|
18
|
-
`master` only occur through the `develop` branch. Pull requests
|
19
|
-
based on `master` will likely be cherry picked.
|
12
|
+
Have a new feature you want to add? Well you're awesome
|
13
|
+
too! It may be a good idea to submit an issue first to
|
14
|
+
describe the desired feature and get any feedback. Please
|
15
|
+
be sure to include tests.
|
20
16
|
|
21
17
|
## Issues
|
22
18
|
|
data/LICENSE
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Copyright
|
1
|
+
Copyright 2022 Chris Roberts
|
2
2
|
|
3
3
|
Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
you may not use this file except in compliance with the License.
|
@@ -10,4 +10,4 @@
|
|
10
10
|
distributed under the License is distributed on an "AS IS" BASIS,
|
11
11
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
12
|
See the License for the specific language governing permissions and
|
13
|
-
limitations under the License.
|
13
|
+
limitations under the License.
|
data/attribute_struct.gemspec
CHANGED
@@ -12,8 +12,7 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.require_path = "lib"
|
13
13
|
s.add_runtime_dependency "bogo", ">= 0.1.31", "< 0.3.0"
|
14
14
|
s.add_development_dependency "rspec", "~> 3.5"
|
15
|
-
s.add_development_dependency "rake", "~>
|
16
|
-
s.add_development_dependency "rufo", "~> 0.3.0"
|
15
|
+
s.add_development_dependency "rake", "~> 13"
|
17
16
|
s.add_development_dependency "minitest"
|
18
17
|
s.files = Dir["lib/**/*"] + %w(attribute_struct.gemspec README.md CHANGELOG.md CONTRIBUTING.md LICENSE)
|
19
18
|
end
|
@@ -1,9 +1,10 @@
|
|
1
|
-
require "attribute_struct"
|
1
|
+
require "attribute_struct/base"
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
require "attribute_struct/attribute_hash"
|
4
|
+
require "attribute_struct/augmented"
|
5
|
+
require "attribute_struct/monkey_camels"
|
6
6
|
|
7
|
+
class AttributeStruct
|
7
8
|
class << self
|
8
9
|
|
9
10
|
# @return [Hash] valid styles and mapped value
|
@@ -56,7 +57,7 @@ class AttributeStruct < BasicObject
|
|
56
57
|
|
57
58
|
# Loads helpers for camel casing
|
58
59
|
def load_the_camels
|
59
|
-
unless (@camels_loaded)
|
60
|
+
unless defined?(@camels_loaded)
|
60
61
|
require "attribute_struct/monkey_camels"
|
61
62
|
@camels_loaded = true
|
62
63
|
end
|
@@ -105,7 +106,10 @@ class AttributeStruct < BasicObject
|
|
105
106
|
# @yield block to execute within struct context
|
106
107
|
def initialize(init_hash = nil, &block)
|
107
108
|
@_camel_keys = _klass.camel_keys
|
109
|
+
@_camel_keys_set = nil
|
110
|
+
@_parent = nil
|
108
111
|
@_arg_state = __hashish.new
|
112
|
+
@_kernelified = false
|
109
113
|
@_objectified = false
|
110
114
|
@table = __hashish.new
|
111
115
|
if (init_hash)
|
@@ -516,7 +520,7 @@ class AttributeStruct < BasicObject
|
|
516
520
|
# @return [String, Symbol]
|
517
521
|
def _process_key(key, *args)
|
518
522
|
if (key.is_a?(::String) || key.is_a?(::Symbol))
|
519
|
-
key =
|
523
|
+
key = CamelString.new(key.to_s)
|
520
524
|
if (_camel_keys && _camel_keys_action && !key._hump_format_requested?)
|
521
525
|
case _camel_keys_action
|
522
526
|
when :auto_disable
|
@@ -1,13 +1,17 @@
|
|
1
|
+
require "attribute_struct/base"
|
2
|
+
|
1
3
|
# Helper methods for IRB interactions
|
2
|
-
|
4
|
+
class AttributeStruct
|
5
|
+
module IrbCompat
|
3
6
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
7
|
+
# @return [String] object inspection
|
8
|
+
def inspect
|
9
|
+
"<[#{self._klass}:#{@table.object_id}] - table: #{@table.inspect}>"
|
10
|
+
end
|
8
11
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
+
# @return [String] string of instance
|
13
|
+
def to_s
|
14
|
+
"<#{self._klass}:#{@table.object_id}>"
|
15
|
+
end
|
12
16
|
end
|
13
17
|
end
|
@@ -1,6 +1,6 @@
|
|
1
|
-
require "attribute_struct"
|
1
|
+
require "attribute_struct/base"
|
2
2
|
|
3
|
-
|
3
|
+
class AttributeStruct
|
4
4
|
module MonkeyCamels
|
5
5
|
class << self
|
6
6
|
def included(klass)
|
@@ -36,15 +36,22 @@ unless (defined?(MonkeyCamels))
|
|
36
36
|
end
|
37
37
|
|
38
38
|
module Humps
|
39
|
-
|
40
39
|
# @return [TrueClass, FalseClass] specific style requested
|
41
40
|
def _hump_format_requested?
|
42
|
-
@__not_camel
|
41
|
+
if defined?(@__not_camel)
|
42
|
+
@__not_camel != nil
|
43
|
+
else
|
44
|
+
false
|
45
|
+
end
|
43
46
|
end
|
44
47
|
|
45
48
|
# @return [TrueClass, FalseClass] camelized
|
46
49
|
def _camel?
|
47
|
-
|
50
|
+
if defined?(@__not_camel)
|
51
|
+
!@__not_camel
|
52
|
+
else
|
53
|
+
true
|
54
|
+
end
|
48
55
|
end
|
49
56
|
|
50
57
|
# @return [self] disable camelizing
|
@@ -65,7 +72,9 @@ unless (defined?(MonkeyCamels))
|
|
65
72
|
|
66
73
|
# @return [Symbol, NilClass] style of hump
|
67
74
|
def _hump_style
|
68
|
-
@__hump_style
|
75
|
+
if defined?(@__hump_style)
|
76
|
+
@__hump_style
|
77
|
+
end
|
69
78
|
end
|
70
79
|
|
71
80
|
alias_method :hump_style!, :_hump_style
|
@@ -97,16 +106,18 @@ unless (defined?(MonkeyCamels))
|
|
97
106
|
end
|
98
107
|
|
99
108
|
# Force some monkeys around
|
100
|
-
String.send(:include, MonkeyCamels)
|
101
|
-
Symbol.send(:include, MonkeyCamels)
|
109
|
+
::String.send(:include, MonkeyCamels)
|
110
|
+
::Symbol.send(:include, MonkeyCamels)
|
102
111
|
|
103
112
|
# Specialized String type
|
104
|
-
class CamelString < String
|
113
|
+
class CamelString < ::String
|
105
114
|
def initialize(val = nil)
|
106
115
|
super
|
107
116
|
if (val.respond_to?(:_camel?))
|
108
117
|
_no_hump unless val._camel?
|
109
118
|
@__hump_style = val._hump_style
|
119
|
+
else
|
120
|
+
@__hump_style = nil
|
110
121
|
end
|
111
122
|
end
|
112
123
|
end
|
data/lib/attribute_struct.rb
CHANGED
@@ -1,8 +1,4 @@
|
|
1
1
|
require "bogo"
|
2
|
-
require "attribute_struct/attribute_struct"
|
3
|
-
|
4
|
-
autoload :MonkeyCamels, "attribute_struct/monkey_camels"
|
5
|
-
autoload :CamelString, "attribute_struct/monkey_camels"
|
6
|
-
autoload :IrbCompat, "attribute_struct/irb_compat"
|
7
2
|
|
3
|
+
require "attribute_struct/attribute_struct"
|
8
4
|
require "attribute_struct/version"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: attribute_struct
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Roberts
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-11-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bogo
|
@@ -50,28 +50,14 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
53
|
+
version: '13'
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: '
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: rufo
|
63
|
-
requirement: !ruby/object:Gem::Requirement
|
64
|
-
requirements:
|
65
|
-
- - "~>"
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: 0.3.0
|
68
|
-
type: :development
|
69
|
-
prerelease: false
|
70
|
-
version_requirements: !ruby/object:Gem::Requirement
|
71
|
-
requirements:
|
72
|
-
- - "~>"
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: 0.3.0
|
60
|
+
version: '13'
|
75
61
|
- !ruby/object:Gem::Dependency
|
76
62
|
name: minitest
|
77
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,6 +87,7 @@ files:
|
|
101
87
|
- lib/attribute_struct/attribute_hash.rb
|
102
88
|
- lib/attribute_struct/attribute_struct.rb
|
103
89
|
- lib/attribute_struct/augmented.rb
|
90
|
+
- lib/attribute_struct/base.rb
|
104
91
|
- lib/attribute_struct/irb_compat.rb
|
105
92
|
- lib/attribute_struct/monkey_camels.rb
|
106
93
|
- lib/attribute_struct/version.rb
|
@@ -123,8 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
123
110
|
- !ruby/object:Gem::Version
|
124
111
|
version: '0'
|
125
112
|
requirements: []
|
126
|
-
|
127
|
-
rubygems_version: 2.7.6
|
113
|
+
rubygems_version: 3.4.0.dev
|
128
114
|
signing_key:
|
129
115
|
specification_version: 4
|
130
116
|
summary: Attribute structures
|