skn_utils 3.4.2 → 3.5.0
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/README.md +6 -0
- data/lib/skn_container.rb +12 -0
- data/lib/skn_utils/env_string_handler.rb +36 -0
- data/lib/skn_utils/nested_result.rb +2 -2
- data/lib/skn_utils/result_bean.rb +1 -1
- data/lib/skn_utils/version.rb +3 -3
- data/lib/skn_utils.rb +2 -0
- data/skn_utils.gemspec +1 -0
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 96a858a96b9d0fc401c3327a4f39bfd6dbb97987
|
4
|
+
data.tar.gz: d01e8609e8eb4c4ff819e6d43e40344f95dee7fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 662df1032aec861e9d77c377ebe1fa2cd2c9d05b76959a36df5e372b093a001ca663012002c8e3e52728d1fe6e0cf5b391c55f1652a008f64fdcb8818ffb4812
|
7
|
+
data.tar.gz: f8b96695dea0cc313ea20ee91f20900f8890f4d6890c66be3287aeb2109e924909c6dc0a212afc89cc914cacc45c01770119bfe47cee847ddbe23d1501bef954
|
data/README.md
CHANGED
@@ -16,6 +16,12 @@ Ruby Gem containing a Ruby PORO (Plain Old Ruby Object) that can be instantiated
|
|
16
16
|
|
17
17
|
|
18
18
|
## New Features
|
19
|
+
12/2017 V3.5.0
|
20
|
+
Made Nokogiri's gem install/load Optional for HashToXml class
|
21
|
+
Added SknContainer as a globally namespaced sub-class of NestedResult. SknContainer is a NestedResult which is functional wrapper over a Concurrent::Hash. Hashes can use anyObject or anyValue as their key:value pairs. This makes them perfect for use as a DI Container.
|
22
|
+
Added EnvStringHandler class to augment YAML values in an application settings.yml file. Rails.env.development? becomes SknSettings.env.development? if the following is added to the settings file.
|
23
|
+
./config/settings.yml: `env: !ruby/string:EnvStringHandler <%= ENV['RACK_ENV'] %>`
|
24
|
+
|
19
25
|
09/2017 V3.4.0
|
20
26
|
Added HashToXml class which converts complex/simple hashes into XML. pre-req's Nokogiri 1.8.0 or higher, unless Rails present, then uses version included with rails.
|
21
27
|
|
@@ -0,0 +1,12 @@
|
|
1
|
+
##
|
2
|
+
# Register:
|
3
|
+
# SknContainer.<new.key> = AnyObject
|
4
|
+
#
|
5
|
+
# Resolve:
|
6
|
+
# SknContainer.<new.key> # => AnyObject
|
7
|
+
# SknContainer.<new.key>? # => True | False based on existance #
|
8
|
+
##
|
9
|
+
|
10
|
+
# This creates a global constant (and singleton) wrapping a Hash
|
11
|
+
class << (SknContainer = SknUtils::NestedResult.new())
|
12
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# File: ./lib/skn_utils/env_string_handler.rb
|
2
|
+
#
|
3
|
+
# Wrapping a string in this class gives you a prettier way to test
|
4
|
+
# for equality. The value returned by <tt>Rails.env</tt> is wrapped
|
5
|
+
# in a StringInquirer object so instead of calling this:
|
6
|
+
#
|
7
|
+
# Rails.env == 'production'
|
8
|
+
# SknSettings.env == 'production'
|
9
|
+
#
|
10
|
+
# you can call this:
|
11
|
+
#
|
12
|
+
# Rails.env.production?
|
13
|
+
# SknSettings.env.productcion?
|
14
|
+
#
|
15
|
+
# Create a EnvStringHandler to support: SknSettings.env.development?
|
16
|
+
# Yes, its YAML trick
|
17
|
+
# in config/settings.yml
|
18
|
+
# ...
|
19
|
+
# env: !ruby/string:EnvStringHandler <%= ENV['RACK_ENV'] %>
|
20
|
+
# ...
|
21
|
+
# #
|
22
|
+
class EnvStringHandler < String
|
23
|
+
private
|
24
|
+
|
25
|
+
def respond_to_missing?(method_name, _include_private = false)
|
26
|
+
method_name[-1] == '?'
|
27
|
+
end
|
28
|
+
|
29
|
+
def method_missing(method_name, *arguments)
|
30
|
+
if method_name[-1] == '?'
|
31
|
+
self == method_name[0..-2]
|
32
|
+
else
|
33
|
+
super
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -193,7 +193,7 @@ module SknUtils
|
|
193
193
|
protected
|
194
194
|
|
195
195
|
def reset_from_empty!(params={}, speed=true)
|
196
|
-
@container =
|
196
|
+
@container = Concurrent::Hash.new()
|
197
197
|
speed ? initialize_for_speed(params) :
|
198
198
|
initialize_from_hash(params)
|
199
199
|
end
|
@@ -229,7 +229,7 @@ module SknUtils
|
|
229
229
|
end
|
230
230
|
|
231
231
|
def container
|
232
|
-
@container ||=
|
232
|
+
@container ||= Concurrent::Hash.new()
|
233
233
|
end
|
234
234
|
|
235
235
|
# Feature: enables dot.notation and creates matching getter/setters
|
data/lib/skn_utils/version.rb
CHANGED
data/lib/skn_utils.rb
CHANGED
@@ -4,6 +4,7 @@ require 'json'
|
|
4
4
|
require 'erb'
|
5
5
|
require 'date'
|
6
6
|
require 'time'
|
7
|
+
require 'concurrent'
|
7
8
|
unless defined?(Rails)
|
8
9
|
begin
|
9
10
|
require 'deep_merge'
|
@@ -12,6 +13,7 @@ unless defined?(Rails)
|
|
12
13
|
puts e.message
|
13
14
|
end
|
14
15
|
end
|
16
|
+
require 'skn_utils/env_string_handler'
|
15
17
|
require 'skn_utils/nested_result'
|
16
18
|
require 'skn_utils/result_bean'
|
17
19
|
require 'skn_utils/page_controls'
|
data/skn_utils.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: skn_utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Scott Jr
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-12-
|
11
|
+
date: 2017-12-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: deep_merge
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: concurrent-ruby
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -145,12 +159,14 @@ files:
|
|
145
159
|
- bin/bench_linklists.rb
|
146
160
|
- bin/bench_nested_result.rb
|
147
161
|
- bin/console
|
162
|
+
- lib/skn_container.rb
|
148
163
|
- lib/skn_hash.rb
|
149
164
|
- lib/skn_settings.rb
|
150
165
|
- lib/skn_utils.rb
|
151
166
|
- lib/skn_utils/business_services/year_month.rb
|
152
167
|
- lib/skn_utils/configurable.rb
|
153
168
|
- lib/skn_utils/converters/hash_to_xml.rb
|
169
|
+
- lib/skn_utils/env_string_handler.rb
|
154
170
|
- lib/skn_utils/exploring/action_service.rb
|
155
171
|
- lib/skn_utils/exploring/commander.rb
|
156
172
|
- lib/skn_utils/exploring/configuration.rb
|