skn_utils 3.4.2 → 3.5.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|