cmdlet 0.0.5 → 0.1.2
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/.builders/.templates/FUNCTIONS.MD +19 -0
- data/.builders/.templates/cmdlet.rb +26 -0
- data/.builders/.templates/cmdlet_spec.rb +22 -0
- data/.builders/.templates/require_all_cmdlets.rb +5 -0
- data/.builders/_.rb +11 -1
- data/.builders/boot.rb +6 -3
- data/.builders/data/categories.json +28 -0
- data/.builders/data/cmdlets/array.json +121 -0
- data/.builders/data/cmdlets/comparison.json +245 -0
- data/.builders/director/category_builder.rb +26 -0
- data/.builders/director/category_dao.rb +38 -0
- data/.builders/director/category_director.rb +39 -0
- data/.builders/director/cmdlet_builder.rb +67 -0
- data/.builders/director/cmdlet_child.rb +39 -0
- data/.builders/director/cmdlet_dao.rb +29 -0
- data/.builders/director/cmdlet_director.rb +60 -0
- data/.builders/director/dao.rb +16 -0
- data/.builders/documents/commands.rb +222 -28
- data/.builders/documents/use_cases.rb +32 -34
- data/.builders/documents/x_functions.rb +7 -10
- data/.builders/generators/01-bootstrap.rb +112 -112
- data/.builders/generators/20-categories.rb +16 -0
- data/.builders/generators/30-commands-bak.rb +53 -0
- data/.builders/generators/cmdlets/array.rb +109 -0
- data/.builders/generators/cmdlets/comparison.rb +164 -0
- data/CHANGELOG.md +36 -0
- data/Guardfile +1 -1
- data/lib/cmdlet/_.rb +14 -0
- data/lib/cmdlet/all_commands.rb +3 -0
- data/lib/cmdlet/array/join.rb +22 -0
- data/lib/cmdlet/array/join_post.rb +22 -0
- data/lib/cmdlet/array/join_pre.rb +22 -0
- data/lib/cmdlet/base_cmdlet.rb +17 -0
- data/lib/cmdlet/comparison/and.rb +16 -0
- data/lib/cmdlet/comparison/default.rb +20 -0
- data/lib/cmdlet/comparison/eq.rb +20 -0
- data/lib/cmdlet/comparison/gt.rb +17 -0
- data/lib/cmdlet/comparison/gte.rb +17 -0
- data/lib/cmdlet/comparison/lt.rb +17 -0
- data/lib/cmdlet/comparison/lte.rb +17 -0
- data/lib/cmdlet/comparison/ne.rb +20 -0
- data/lib/cmdlet/comparison/or.rb +16 -0
- data/lib/cmdlet/configuration.rb +1 -1
- data/lib/cmdlet/version.rb +1 -1
- data/lib/cmdlet.rb +3 -0
- data/package-lock.json +2 -2
- data/package.json +1 -1
- metadata +39 -5
- data/.builders/documents/_.rb +0 -4
- data/.builders/documents/categories.rb +0 -24
- data/.builders/documents/functions.rb +0 -226
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cmdlet
|
4
|
+
# Array handling routines, eg. join, join_prefix, join_post
|
5
|
+
module Array
|
6
|
+
# Join: join an array of values with separator as a string
|
7
|
+
class Join < Cmdlet::BaseCmdlet
|
8
|
+
#
|
9
|
+
# @param [String|Int] values - array of values to join
|
10
|
+
# @param [String] separator - separator between values, defaults to comma
|
11
|
+
# @return [String] new String formed by joining the array elements with seperator
|
12
|
+
def call(values, separator = ',')
|
13
|
+
return false if values.nil? || values.length.zero?
|
14
|
+
|
15
|
+
values = values.reject(&:blank?)
|
16
|
+
return '' if values.length.zero?
|
17
|
+
|
18
|
+
values.join(separator)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cmdlet
|
4
|
+
# Array handling routines, eg. join, join_prefix, join_post
|
5
|
+
module Array
|
6
|
+
# JoinPost: join an array of values with separator as a string and using the separator at the end of string
|
7
|
+
class JoinPost < Cmdlet::BaseCmdlet
|
8
|
+
#
|
9
|
+
# @param [String|Int] values - array of values to join
|
10
|
+
# @param [String] separator - separator between values, defaults to comma
|
11
|
+
# @return [String]
|
12
|
+
def call(values, separator = ',')
|
13
|
+
return '' if values.nil? || !values.is_a?(::Array)
|
14
|
+
|
15
|
+
values = values.reject(&:blank?)
|
16
|
+
return '' if values.length.zero?
|
17
|
+
|
18
|
+
"#{values.join(separator)}#{separator}"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cmdlet
|
4
|
+
# Array handling routines, eg. join, join_prefix, join_post
|
5
|
+
module Array
|
6
|
+
# JoinPre: join an array of values with separator as a string and using the separator at the beginning of string
|
7
|
+
class JoinPre < Cmdlet::BaseCmdlet
|
8
|
+
#
|
9
|
+
# @param [String|Int] values - array of values to join
|
10
|
+
# @param [String] separator - separator between values, defaults to comma
|
11
|
+
# @return [String]
|
12
|
+
def call(values, separator = ',')
|
13
|
+
return '' if values.nil? || !values.is_a?(::Array)
|
14
|
+
|
15
|
+
values = values.reject(&:blank?)
|
16
|
+
return '' if values.length.zero?
|
17
|
+
|
18
|
+
"#{separator}#{values.join(separator)}"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cmdlet
|
4
|
+
# base cmdlet provides an interface for cmdlets
|
5
|
+
class BaseCmdlet
|
6
|
+
def call(value)
|
7
|
+
value
|
8
|
+
end
|
9
|
+
|
10
|
+
# String tokenizer will clean up a string so that
|
11
|
+
# all sorts of case formatted strings can be
|
12
|
+
# represented in a consistent fashion
|
13
|
+
def tokenizer
|
14
|
+
@_tokenizer ||= Funcky.configuration.tokenizer
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cmdlet
|
4
|
+
# Comparison helpers, eg. or, and, equal, not equal, less than, greater than etc.
|
5
|
+
module Comparison
|
6
|
+
# And: Return true if **all of** the given values are truthy.
|
7
|
+
class And < Cmdlet::BaseCmdlet
|
8
|
+
#
|
9
|
+
# @param [Object] values - list of values (via *splat) to be checked via AND condition
|
10
|
+
# @return [String] return true when every value is truthy
|
11
|
+
def call(*values)
|
12
|
+
values.all? { |value| value }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cmdlet
|
4
|
+
# Comparison helpers, eg. or, and, equal, not equal, less than, greater than etc.
|
5
|
+
module Comparison
|
6
|
+
# Default: Return true if **all of** the given values are truthy.
|
7
|
+
class Default < Cmdlet::BaseCmdlet
|
8
|
+
#
|
9
|
+
# @param [Object] values - one or more paramaters that may or may not contain nil
|
10
|
+
# @return [String] return true when every value is truthy
|
11
|
+
def call(*values)
|
12
|
+
default_value = values[-1]
|
13
|
+
|
14
|
+
find_value = values[0..-2].find { |value| !value.nil? }
|
15
|
+
|
16
|
+
find_value || default_value
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cmdlet
|
4
|
+
# Comparison helpers, eg. or, and, equal, not equal, less than, greater than etc.
|
5
|
+
module Comparison
|
6
|
+
# Eq: Return true if two values are equal
|
7
|
+
class Eq < Cmdlet::BaseCmdlet
|
8
|
+
#
|
9
|
+
# @param [Object] lhs - lhs - left hand side value
|
10
|
+
# @param [Object] rhs - rhs - right hand side value
|
11
|
+
# @return [String] return truthy value if left hand side equals right hand side
|
12
|
+
def call(lhs, rhs)
|
13
|
+
lhs = lhs.to_s if lhs.is_a?(Symbol)
|
14
|
+
rhs = rhs.to_s if rhs.is_a?(Symbol)
|
15
|
+
|
16
|
+
lhs == rhs
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cmdlet
|
4
|
+
# Comparison helpers, eg. or, and, equal, not equal, less than, greater than etc.
|
5
|
+
module Comparison
|
6
|
+
# Gt: Return true if left hand side GREATER THAN right hand side
|
7
|
+
class Gt < Cmdlet::BaseCmdlet
|
8
|
+
#
|
9
|
+
# @param [Object] lhs - lhs - left hand side value
|
10
|
+
# @param [Object] rhs - rhs - right hand side value
|
11
|
+
# @return [String] truthy value if left hand side GREATER THAN right hand side
|
12
|
+
def call(lhs, rhs)
|
13
|
+
lhs > rhs
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cmdlet
|
4
|
+
# Comparison helpers, eg. or, and, equal, not equal, less than, greater than etc.
|
5
|
+
module Comparison
|
6
|
+
# Gte: Return true if left hand side GREATER THAN or EQUAL TO right hand side
|
7
|
+
class Gte < Cmdlet::BaseCmdlet
|
8
|
+
#
|
9
|
+
# @param [Object] lhs - lhs - left hand side value
|
10
|
+
# @param [Object] rhs - rhs - right hand side value
|
11
|
+
# @return [String] truthy value if left hand side GREATER THAN or EQUAL TO right hand side
|
12
|
+
def call(lhs, rhs)
|
13
|
+
lhs >= rhs
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cmdlet
|
4
|
+
# Comparison helpers, eg. or, and, equal, not equal, less than, greater than etc.
|
5
|
+
module Comparison
|
6
|
+
# Lt: Return true if left hand side LESS THAN right hand side
|
7
|
+
class Lt < Cmdlet::BaseCmdlet
|
8
|
+
#
|
9
|
+
# @param [Object] lhs - lhs - left hand side value
|
10
|
+
# @param [Object] rhs - rhs - right hand side value
|
11
|
+
# @return [String] truthy value if left hand side LESS THAN right hand side
|
12
|
+
def call(lhs, rhs)
|
13
|
+
lhs < rhs
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cmdlet
|
4
|
+
# Comparison helpers, eg. or, and, equal, not equal, less than, greater than etc.
|
5
|
+
module Comparison
|
6
|
+
# Lte: Return true if left hand side LESS THAN or EQUAL TO right hand side
|
7
|
+
class Lte < Cmdlet::BaseCmdlet
|
8
|
+
#
|
9
|
+
# @param [Object] lhs - lhs - left hand side value
|
10
|
+
# @param [Object] rhs - rhs - right hand side value
|
11
|
+
# @return [String] truthy value if left hand side LESS THAN or EQUAL TO right hand side
|
12
|
+
def call(lhs, rhs)
|
13
|
+
lhs <= rhs
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cmdlet
|
4
|
+
# Comparison helpers, eg. or, and, equal, not equal, less than, greater than etc.
|
5
|
+
module Comparison
|
6
|
+
# Ne: Return true if left hand side is NOT equal to right hand side
|
7
|
+
class Ne < Cmdlet::BaseCmdlet
|
8
|
+
#
|
9
|
+
# @param [Object] lhs - lhs - left hand side value
|
10
|
+
# @param [Object] rhs - rhs - right hand side value
|
11
|
+
# @return [String] truthy value if left hand side is NOT equal to right hand side
|
12
|
+
def call(lhs, rhs)
|
13
|
+
lhs = lhs.to_s if lhs.is_a?(Symbol)
|
14
|
+
rhs = rhs.to_s if rhs.is_a?(Symbol)
|
15
|
+
|
16
|
+
lhs != rhs
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cmdlet
|
4
|
+
# Comparison helpers, eg. or, and, equal, not equal, less than, greater than etc.
|
5
|
+
module Comparison
|
6
|
+
# Or: Return true if any value is truthy.
|
7
|
+
class Or < Cmdlet::BaseCmdlet
|
8
|
+
#
|
9
|
+
# @param [Object] values - list of values (via *splat) to be checked via AND condition
|
10
|
+
# @return [String] return true when first value is truthy
|
11
|
+
def call(*values)
|
12
|
+
values.any? { |value| value }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/cmdlet/configuration.rb
CHANGED
data/lib/cmdlet/version.rb
CHANGED
data/lib/cmdlet.rb
CHANGED
@@ -4,8 +4,11 @@
|
|
4
4
|
require 'k_config'
|
5
5
|
require_relative 'cmdlet/version'
|
6
6
|
require_relative 'cmdlet/configuration'
|
7
|
+
require_relative 'cmdlet/base_cmdlet'
|
7
8
|
require_relative 'cmdlet/string_tokenizer'
|
8
9
|
|
10
|
+
require_relative 'cmdlet/_'
|
11
|
+
|
9
12
|
module Cmdlet
|
10
13
|
# raise Cmdlet::Error, 'Sample message'
|
11
14
|
Error = Class.new(StandardError)
|
data/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "cmdlet",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.1.2",
|
4
4
|
"lockfileVersion": 2,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "cmdlet",
|
9
|
-
"version": "0.
|
9
|
+
"version": "0.1.2",
|
10
10
|
"devDependencies": {
|
11
11
|
"@klueless-js/semantic-release-rubygem": "github:klueless-js/semantic-release-rubygem",
|
12
12
|
"@semantic-release/changelog": "^6.0.1",
|
data/package.json
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cmdlet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-07-
|
11
|
+
date: 2022-07-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -46,15 +46,31 @@ executables: []
|
|
46
46
|
extensions: []
|
47
47
|
extra_rdoc_files: []
|
48
48
|
files:
|
49
|
+
- ".builders/.templates/FUNCTIONS.MD"
|
50
|
+
- ".builders/.templates/cmdlet.rb"
|
51
|
+
- ".builders/.templates/cmdlet_spec.rb"
|
52
|
+
- ".builders/.templates/require_all_cmdlets.rb"
|
49
53
|
- ".builders/_.rb"
|
50
54
|
- ".builders/boot.rb"
|
51
|
-
- ".builders/
|
52
|
-
- ".builders/
|
55
|
+
- ".builders/data/categories.json"
|
56
|
+
- ".builders/data/cmdlets/array.json"
|
57
|
+
- ".builders/data/cmdlets/comparison.json"
|
58
|
+
- ".builders/director/category_builder.rb"
|
59
|
+
- ".builders/director/category_dao.rb"
|
60
|
+
- ".builders/director/category_director.rb"
|
61
|
+
- ".builders/director/cmdlet_builder.rb"
|
62
|
+
- ".builders/director/cmdlet_child.rb"
|
63
|
+
- ".builders/director/cmdlet_dao.rb"
|
64
|
+
- ".builders/director/cmdlet_director.rb"
|
65
|
+
- ".builders/director/dao.rb"
|
53
66
|
- ".builders/documents/commands.rb"
|
54
|
-
- ".builders/documents/functions.rb"
|
55
67
|
- ".builders/documents/use_cases.rb"
|
56
68
|
- ".builders/documents/x_functions.rb"
|
57
69
|
- ".builders/generators/01-bootstrap.rb"
|
70
|
+
- ".builders/generators/20-categories.rb"
|
71
|
+
- ".builders/generators/30-commands-bak.rb"
|
72
|
+
- ".builders/generators/cmdlets/array.rb"
|
73
|
+
- ".builders/generators/cmdlets/comparison.rb"
|
58
74
|
- ".releaserc.json"
|
59
75
|
- ".rspec"
|
60
76
|
- ".rubocop.yml"
|
@@ -68,6 +84,21 @@ files:
|
|
68
84
|
- bin/console
|
69
85
|
- bin/setup
|
70
86
|
- lib/cmdlet.rb
|
87
|
+
- lib/cmdlet/_.rb
|
88
|
+
- lib/cmdlet/all_commands.rb
|
89
|
+
- lib/cmdlet/array/join.rb
|
90
|
+
- lib/cmdlet/array/join_post.rb
|
91
|
+
- lib/cmdlet/array/join_pre.rb
|
92
|
+
- lib/cmdlet/base_cmdlet.rb
|
93
|
+
- lib/cmdlet/comparison/and.rb
|
94
|
+
- lib/cmdlet/comparison/default.rb
|
95
|
+
- lib/cmdlet/comparison/eq.rb
|
96
|
+
- lib/cmdlet/comparison/gt.rb
|
97
|
+
- lib/cmdlet/comparison/gte.rb
|
98
|
+
- lib/cmdlet/comparison/lt.rb
|
99
|
+
- lib/cmdlet/comparison/lte.rb
|
100
|
+
- lib/cmdlet/comparison/ne.rb
|
101
|
+
- lib/cmdlet/comparison/or.rb
|
71
102
|
- lib/cmdlet/configuration.rb
|
72
103
|
- lib/cmdlet/string_tokenizer.rb
|
73
104
|
- lib/cmdlet/version.rb
|
@@ -78,6 +109,9 @@ homepage: http://appydave.com/gems/cmdlet
|
|
78
109
|
licenses:
|
79
110
|
- MIT
|
80
111
|
metadata:
|
112
|
+
homepage_uri: http://appydave.com/gems/cmdlet
|
113
|
+
source_code_uri: https://github.com/klueless-io/cmdlet
|
114
|
+
changelog_uri: https://github.com/klueless-io/cmdlet/blob/main/CHANGELOG.md
|
81
115
|
rubygems_mfa_required: 'true'
|
82
116
|
post_install_message:
|
83
117
|
rdoc_options: []
|
data/.builders/documents/_.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
def categories
|
2
|
-
return @categories unless @categories.nil?
|
3
|
-
|
4
|
-
|
5
|
-
result = KDoc.model :document do
|
6
|
-
table :rows do
|
7
|
-
fields :name, :description
|
8
|
-
|
9
|
-
row :case , "Tokenize and apply case and/or separator"
|
10
|
-
row :comparison , "Comparison helpers, eg. or, and, equal, not equal, less than, greater than etc."
|
11
|
-
row :inflection , "Inflection handling routines, eg. pluralize, singular, ordinalize"
|
12
|
-
row :string , "String handling helpers"
|
13
|
-
|
14
|
-
row :a_array , "Array handling routines, eg. join, join_prefix, join_post"
|
15
|
-
row :a_transform , "Tokenize and apply case and/or separator"
|
16
|
-
row :a_comparison , "Comparison helpers, eg. or, and, equal, not equal, less than, greater than etc."
|
17
|
-
row :a_inflection , "Inflection handling routines, eg. pluralize, singular, ordinalize"
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
@categories = result.raw_data_struct.rows
|
22
|
-
end
|
23
|
-
@categories = nil
|
24
|
-
|
@@ -1,226 +0,0 @@
|
|
1
|
-
def functions
|
2
|
-
return @functions unless @functions.nil?
|
3
|
-
|
4
|
-
result = KDoc.model :document do
|
5
|
-
table :rows do
|
6
|
-
fields :category, :name, :alias, :description, :ruby # , f(name: :params, default: [:value])
|
7
|
-
|
8
|
-
# context 'when array of string' do
|
9
|
-
# let(:value) { %w[the quick fox] }
|
10
|
-
|
11
|
-
# it { is_expected.to eq('the,quick,fox') }
|
12
|
-
# end
|
13
|
-
|
14
|
-
# context 'when array of numbers' do
|
15
|
-
# let(:value) { [1, 2, 3] }
|
16
|
-
|
17
|
-
# it { is_expected.to eq('1,2,3') }
|
18
|
-
# end
|
19
|
-
|
20
|
-
# context 'when array of symbol' do
|
21
|
-
# let(:value) { %i[the quick fox] }
|
22
|
-
|
23
|
-
# it { is_expected.to eq('the,quick,fox') }
|
24
|
-
# end
|
25
|
-
|
26
|
-
row :a_array , :join , [] , "join an array of values with separator as a string", <<-'RUBY'
|
27
|
-
return '' if value.nil? || !value.is_a?(Array)
|
28
|
-
values = value.reject(&:blank?)
|
29
|
-
return '' if value.length.zero?
|
30
|
-
|
31
|
-
separator = ','
|
32
|
-
value.join(separator)
|
33
|
-
RUBY
|
34
|
-
|
35
|
-
row :a_array , :join_pre , [] , "join an array of values with separator as a string and using the separator at the beginning of string", <<-'RUBY'
|
36
|
-
return '' if value.nil? || !value.is_a?(Array)
|
37
|
-
values = value.reject(&:blank?)
|
38
|
-
return '' if value.length.zero?
|
39
|
-
|
40
|
-
separator = ','
|
41
|
-
"#{separator}#{value.join(separator)}"
|
42
|
-
RUBY
|
43
|
-
|
44
|
-
row :a_array , :join_post , [] , "join an array of values with separator as a string and using the separator at the end of string", <<-'RUBY'
|
45
|
-
return '' if value.nil? || !value.is_a?(Array)
|
46
|
-
values = value.reject(&:blank?)
|
47
|
-
return '' if value.length.zero?
|
48
|
-
|
49
|
-
separator = ','
|
50
|
-
"#{value.join(separator)}#{separator}"
|
51
|
-
RUBY
|
52
|
-
|
53
|
-
row :a_transform , :backslash , [:back_slash] , "convert to back slash notation", <<-'RUBY'
|
54
|
-
tokenizer.parse(value, preserve_case: true, separator: '\\')
|
55
|
-
RUBY
|
56
|
-
|
57
|
-
row :a_transform , :camel , [:upper_camel, :pascal] , "convert to camel notation", <<-'RUBY'
|
58
|
-
tokenizer.parse(value).underscore.camelize
|
59
|
-
RUBY
|
60
|
-
|
61
|
-
row :a_transform , :constant , [:constantize] , "", <<-'RUBY'
|
62
|
-
tokenizer.parse(value, separator: '_').upcase
|
63
|
-
RUBY
|
64
|
-
|
65
|
-
row :a_transform , :dash , [:dasherize] , "convert to dash notation", <<-'RUBY'
|
66
|
-
tokenizer.parse(value)
|
67
|
-
RUBY
|
68
|
-
|
69
|
-
row :a_transform , :dot , [:dotirize] , "", <<-'RUBY'
|
70
|
-
tokenizer.parse(value, separator: '.')
|
71
|
-
RUBY
|
72
|
-
|
73
|
-
row :a_transform , :double_colon , [] , "", <<-'RUBY'
|
74
|
-
tokenizer.parse(value, preserve_case: true, separator: '::')
|
75
|
-
RUBY
|
76
|
-
|
77
|
-
row :a_transform , :lower , [:lowercase, :downcase] , "", <<-'RUBY'
|
78
|
-
return '' if value.nil?
|
79
|
-
|
80
|
-
value.downcase
|
81
|
-
RUBY
|
82
|
-
|
83
|
-
# row :a_transform , :format_as , [] , "", <<-'RUBY'
|
84
|
-
|
85
|
-
# RUBY
|
86
|
-
|
87
|
-
row :a_transform , :proper , [] , "Proper case capitalizes the first letter of ALL words in a string", <<-'RUBY'
|
88
|
-
tokenizer.parse(value,
|
89
|
-
separator: ' ',
|
90
|
-
preserve_case: true,
|
91
|
-
compress_prefix_numerals: false,
|
92
|
-
compress_suffix_numerals: false)
|
93
|
-
.titleize
|
94
|
-
RUBY
|
95
|
-
|
96
|
-
row :a_transform , :sentence , [:human, :humanize] , "Upper case for first letter only. Numbers will maintain their spacing", <<-'RUBY'
|
97
|
-
tokenizer.parse(value,
|
98
|
-
separator: ' ',
|
99
|
-
preserve_case: true,
|
100
|
-
compress_prefix_numerals: false,
|
101
|
-
compress_suffix_numerals: false)
|
102
|
-
.humanize
|
103
|
-
RUBY
|
104
|
-
|
105
|
-
row :a_transform , :lamel , [:lower_camel] , "", <<-'RUBY'
|
106
|
-
tokenizer.parse(value, separator: '_').camelize(:lower)
|
107
|
-
RUBY
|
108
|
-
|
109
|
-
row :a_transform , :slash , [:forwardslash, :forward_slash] , "", <<-'RUBY'
|
110
|
-
tokenizer.parse(value, preserve_case: true, separator: '/')
|
111
|
-
RUBY
|
112
|
-
|
113
|
-
row :a_transform , :snake , [:snake] , "", <<-'RUBY'
|
114
|
-
tokenizer.parse(value, separator: '_', forced_separator: true)
|
115
|
-
RUBY
|
116
|
-
|
117
|
-
row :a_transform , :title , [:titleize] , "", <<-'RUBY'
|
118
|
-
tokenizer.parse(value,
|
119
|
-
separator: ' ',
|
120
|
-
preserve_case: true,
|
121
|
-
compress_prefix_numerals: false,
|
122
|
-
compress_suffix_numerals: false)
|
123
|
-
.titleize
|
124
|
-
RUBY
|
125
|
-
|
126
|
-
row :a_transform , :upper , [:upper_case, :upcase] , "", <<-'RUBY'
|
127
|
-
return '' if value.nil?
|
128
|
-
|
129
|
-
value.upcase
|
130
|
-
RUBY
|
131
|
-
|
132
|
-
|
133
|
-
row :a_comparison , :and , [:all] , "", <<-'RUBY'
|
134
|
-
values.all? { |value| value }
|
135
|
-
RUBY
|
136
|
-
|
137
|
-
# DEFAULT does not make sense in comparison
|
138
|
-
row :a_comparison , :default , [:fallback] , "", <<-'RUBY'
|
139
|
-
default_value = values[-1]
|
140
|
-
|
141
|
-
find_value = values[0..-2].find { |value| !value.nil? }
|
142
|
-
|
143
|
-
find_value || default_value
|
144
|
-
RUBY
|
145
|
-
|
146
|
-
row :a_comparison , :eq , [:equal] , "", <<-'RUBY'
|
147
|
-
lhs = lhs.to_s if lhs.is_a?(Symbol)
|
148
|
-
rhs = rhs.to_s if rhs.is_a?(Symbol)
|
149
|
-
|
150
|
-
lhs == rhs
|
151
|
-
RUBY
|
152
|
-
|
153
|
-
row :a_comparison , :gt , [] , "", <<-'RUBY'
|
154
|
-
lhs > rhs
|
155
|
-
RUBY
|
156
|
-
|
157
|
-
row :a_comparison , :gte , [] , "", <<-'RUBY'
|
158
|
-
lhs >= rhs
|
159
|
-
RUBY
|
160
|
-
|
161
|
-
row :a_comparison , :lt , [:less_than] , "# Lt: (less than) Block helper that renders a block if `a` is **less than** `b`. If an inverse block is specified it will be rendered when falsy.", <<-'RUBY'
|
162
|
-
lhs < rhs
|
163
|
-
RUBY
|
164
|
-
|
165
|
-
row :a_comparison , :lte , [:less_than_or_equal_to] , "# Lte: (less than or equal to) Block helper that renders a block if `a` is **less than or equal to** `b`. If an inverse block is specified it will be rendered when falsy.", <<-'RUBY'
|
166
|
-
lhs <= rhs
|
167
|
-
RUBY
|
168
|
-
|
169
|
-
row :a_comparison , :ne , [:not_equal] , "# Ne: (not equal) Block helper that renders a block if `a` is **not equal to** `b`. If an inverse block is specified it will be rendered when falsy.", <<-'RUBY'
|
170
|
-
lhs = lhs.to_s if lhs.is_a?(Symbol)
|
171
|
-
rhs = rhs.to_s if rhs.is_a?(Symbol)
|
172
|
-
|
173
|
-
lhs != rhs
|
174
|
-
RUBY
|
175
|
-
|
176
|
-
row :a_comparison , :or , [:any] , "", <<-'RUBY'
|
177
|
-
values.any? { |value| value }
|
178
|
-
RUBY
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
row :a_inflection , :ordinal , [] , "The suffix that should be added to a number to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th", <<-RUBY
|
183
|
-
return '' if value.nil?
|
184
|
-
|
185
|
-
value = value.to_i if value.is_a? String
|
186
|
-
|
187
|
-
value.ordinal
|
188
|
-
RUBY
|
189
|
-
|
190
|
-
row :a_inflection , :ordinalize , [] , "Turns a number into an ordinal string used to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th.", <<-RUBY
|
191
|
-
return '' if value.nil?
|
192
|
-
|
193
|
-
value = value.to_i if value.is_a? String
|
194
|
-
|
195
|
-
value.ordinalize
|
196
|
-
RUBY
|
197
|
-
|
198
|
-
row :a_inflection , :pluralize , [] , "Returns the plural form of the word in the string", <<-RUBY
|
199
|
-
return '' if value.nil?
|
200
|
-
|
201
|
-
value = value.to_s if value.is_a?(Symbol)
|
202
|
-
|
203
|
-
value.pluralize
|
204
|
-
RUBY
|
205
|
-
|
206
|
-
row :a_inflection , :pluralize_by_number , [] , "Uses both a word and number to decide if the plural or singular form should be used.", <<-'RUBY'
|
207
|
-
return '' if value.nil?
|
208
|
-
|
209
|
-
count = count.to_i if count.is_a? String
|
210
|
-
format = :word if format.nil?
|
211
|
-
|
212
|
-
case format.to_sym
|
213
|
-
when :number_word, :number_and_word
|
214
|
-
"#{count} #{value.pluralize(count)}"
|
215
|
-
else # aka :word
|
216
|
-
value.pluralize(count)
|
217
|
-
end
|
218
|
-
RUBY
|
219
|
-
|
220
|
-
# row :a_inflection , :singularize , [] , ""
|
221
|
-
end
|
222
|
-
end
|
223
|
-
|
224
|
-
@functions = result.raw_data_struct.rows
|
225
|
-
end
|
226
|
-
@functions = nil
|