convert_global_env 1.0.23

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: ac7e018f41eaa7c3885cd5cfd4ba985855b605b9f55b9fcb317b506f1f1455df
4
+ data.tar.gz: da72334315082fc1c08170cd1d54c79084765788f98b53956ed9c4f3dd9268cf
5
+ SHA512:
6
+ metadata.gz: dfe29d3a7d97dfd915aa60d6cf580e08aeb1a1f21a8b44618714503338ec70759bc767729c3de4ccef6fb03ae59205669bd64734d815c104c9ba1275baf860f2
7
+ data.tar.gz: 46ef439da618cc6f5292db01dc3e842eebb65026756985b9d94c96e6ea37865a7fb10a69c72a239495620a7829a58ac9d3ff36bd9c2eb5bfc955aea517611a6e
data/USAGE.md ADDED
@@ -0,0 +1,15 @@
1
+ = Usage of Library
2
+
3
+ == Description
4
+
5
+ This small module converts a $FOO variable into an
6
+ ENV variable.
7
+
8
+ == Requiring it
9
+
10
+ require 'convert_global_env'
11
+
12
+ == Using it in a project
13
+
14
+ ConvertGlobalEnv.convert('$FOO/BAR')
15
+ ConvertGlobalEnv['$FOO/BAR']
@@ -0,0 +1,43 @@
1
+ # =========================================================================== #
2
+ # Gemspec for Project ConvertGlobalEnv.
3
+ # =========================================================================== #
4
+ require 'convert_global_env/version/version.rb'
5
+ require 'roebe'
6
+
7
+ Gem::Specification.new { |s|
8
+
9
+ s.name = 'convert_global_env'
10
+ s.version = ConvertGlobalEnv::VERSION
11
+ s.date = Time.now.strftime('%Y-%m-%d')
12
+
13
+ s.summary = <<-EOF
14
+
15
+ This module translates a string like $FOO/bar into the corresponding
16
+ ENV variable, i.e. ENV['FOO']+'/bar'.
17
+ It has no external dependencies.
18
+
19
+ EOF
20
+
21
+ s.description = <<-EOF
22
+
23
+ This module translates a string like $FOO/bar into the corresponding
24
+ ENV variable, i.e. ENV['FOO']+'/bar'.
25
+ It has no external dependencies.
26
+
27
+ EOF
28
+
29
+ s.extra_rdoc_files = %w(
30
+ USAGE.md
31
+ )
32
+
33
+ s.authors = ['Robert A. Heiler']
34
+ s.email = Roebe.email?
35
+ s.files = Dir['**/*']
36
+ s.licenses = 'GPL-2.0'
37
+ s.homepage = 'https://rubygems.org/gems/convert_global_env'
38
+
39
+ s.required_ruby_version = '>= '+Roebe.third_most_stable_version_of_ruby
40
+ s.required_rubygems_version = '>= '+Gem::VERSION
41
+ s.rubygems_version = '>= '+Gem::VERSION
42
+
43
+ }
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'convert_global_env/convert_global_env.rb'
6
+
7
+ include ConvertGlobalEnv
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ module ConvertGlobalEnv
6
+
7
+ # ========================================================================= #
8
+ # === ENCODING_ISO
9
+ # ========================================================================= #
10
+ ENCODING_ISO = 'ISO-8859-1'
11
+
12
+ # ========================================================================= #
13
+ # === ENCODING_UTF
14
+ # ========================================================================= #
15
+ ENCODING_UTF = 'UTF-8'
16
+
17
+ # ========================================================================= #
18
+ # === ConvertGlobalEnv::USE_THIS_ENCODING
19
+ # ========================================================================= #
20
+ USE_THIS_ENCODING = ENCODING_UTF
21
+
22
+ # ========================================================================= #
23
+ # === REGEX_TO_CHECK_FOR_GLOBAL_ENV
24
+ #
25
+ # The regex to check for the global env.
26
+ #
27
+ # See:
28
+ #
29
+ # https://rubular.com/r/tTX6lVBpSa
30
+ #
31
+ # ========================================================================= #
32
+ REGEX_TO_CHECK_FOR_GLOBAL_ENV =
33
+ /\$([A-Za-z_]+)+/
34
+
35
+ end
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # How would you use this software in your project?
6
+ #
7
+ # Well, first require it:
8
+ #
9
+ # require 'convert_global_env'
10
+ #
11
+ # Then, feed it the string that contains a '$' character, like so:
12
+ #
13
+ # ConvertGlobalEnv.convert '$SRC/RUBY'
14
+ #
15
+ # =========================================================================== #
16
+ module ConvertGlobalEnv
17
+
18
+ require 'convert_global_env/module_methods.rb'
19
+ require 'convert_global_env/constants.rb'
20
+ require 'convert_global_env/version/version.rb'
21
+
22
+ alias e puts
23
+
24
+ # ========================================================================= #
25
+ # === @report_errors
26
+ # ========================================================================= #
27
+ @report_errors = true
28
+
29
+ # ========================================================================= #
30
+ # === @use_this_target_encoding
31
+ #
32
+ # This denotes the encoding in use. If we use the wrong encoding
33
+ # then failures may happen.
34
+ #
35
+ # Since as of 28.08.2020 we will default to UTF as encoding.
36
+ # ========================================================================= #
37
+ @use_this_target_encoding = USE_THIS_ENCODING
38
+
39
+ # ========================================================================= #
40
+ # === ConvertGlobalEnv.encoding?
41
+ # ========================================================================= #
42
+ def self.encoding?
43
+ @use_this_target_encoding
44
+ end
45
+
46
+ end
47
+
48
+ if __FILE__ == $PROGRAM_NAME
49
+ puts ConvertGlobalEnv.convert(ARGV.first)
50
+ end # cgenv
@@ -0,0 +1,99 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ module ConvertGlobalEnv
6
+
7
+ # ========================================================================= #
8
+ # === ConvertGlobalEnv.filename?
9
+ # ========================================================================= #
10
+ def self.filename?
11
+ _ = 'convert_global_env.rb'
12
+ _ = sfancy(_) if Object.const_defined? :Colours
13
+ _ # This is the result.
14
+ end
15
+
16
+ # ========================================================================= #
17
+ # === ConvertGlobalEnv.e
18
+ # ========================================================================= #
19
+ def self.e(i = '')
20
+ puts i
21
+ end
22
+
23
+ # ========================================================================= #
24
+ # === ConvertGlobalEnv.report_errors?
25
+ # ========================================================================= #
26
+ def self.report_errors?
27
+ @report_errors
28
+ end
29
+
30
+ # ========================================================================= #
31
+ # === ConvertGlobalEnv.be_quiet
32
+ # ========================================================================= #
33
+ def self.be_quiet
34
+ @report_errors = false
35
+ end
36
+
37
+ # ========================================================================= #
38
+ # === ConvertGlobalEnv[]
39
+ #
40
+ # Easier conversion variant. Will also honour the @report_errors
41
+ # class-instance variable.
42
+ # ========================================================================= #
43
+ def self.[](i)
44
+ ConvertGlobalEnv.convert(i, ConvertGlobalEnv.report_errors?)
45
+ end
46
+
47
+ # ========================================================================= #
48
+ # === ConvertGlobalEnv.convert(i)
49
+ #
50
+ # Use this method to convert from $FOO to ENV['FOO'], if $FOO exists.
51
+ #
52
+ # Specific usage examples:
53
+ #
54
+ # ConvertGlobalEnv.convert '$SRC/RUBY'
55
+ # ConvertGlobalEnv.convert '$MY_SRC/RUBY'
56
+ #
57
+ # ========================================================================= #
58
+ def self.convert(
59
+ i,
60
+ shall_we_report_errors = ConvertGlobalEnv.report_errors?
61
+ )
62
+ if shall_we_report_errors == :do_not_report_errors
63
+ shall_we_report_errors = false
64
+ end
65
+ if i.is_a? Array
66
+ i.map {|entry|
67
+ ConvertGlobalEnv.convert(entry, shall_we_report_errors)
68
+ } # Call recursively here.
69
+ else # Here come strings only.
70
+ # i.sub!(/\{/, '') # get rid of any { - Not a good idea. Disabled Sep 2012.
71
+ # i.sub!(/\}/, '') # get rid of any }
72
+ # ===================================================================== #
73
+ # We prefer ISO encoding here. No, we no longer do as of August 2020.
74
+ # ===================================================================== #
75
+ # case i.encoding.to_s
76
+ # # =================================================================== #
77
+ # # === ENCODING_UTF
78
+ # # =================================================================== #
79
+ # when ENCODING_UTF
80
+ # i = i.dup if i.frozen?
81
+ # i = i.force_encoding(ENCODING_ISO)
82
+ # end if File.exist?(i.to_s) # But only if the file exists.
83
+ unless i.encoding.to_s == ConvertGlobalEnv.encoding?
84
+ i = i.dup if i.frozen?
85
+ i = i.force_encoding(ConvertGlobalEnv.encoding?)
86
+ end
87
+ i =~ REGEX_TO_CHECK_FOR_GLOBAL_ENV # defined in this file here.
88
+ if $1 and ENV[$1]
89
+ i = i.to_s.dup # We want a clean String here.
90
+ i.gsub!("$#{$1}", ENV[$1]) unless ENV[$1].nil? # + "#{$2}"
91
+ else # Do nothing, except if you wish to debug.
92
+ # puts "The input: #{i} does not match against `#{REGEX_TO_CHECK_FOR_GLOBAL_ENV}`"
93
+ # pp $1; pp ENV[$1]
94
+ end
95
+ return i
96
+ end
97
+ end
98
+
99
+ end
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ module ConvertGlobalEnv
6
+
7
+ # ========================================================================= #
8
+ # === ConvertGlobalEnv::VERSION
9
+ # ========================================================================= #
10
+ VERSION = '1.0.23'
11
+
12
+ end
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'convert_global_env/convert_global_env.rb'
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'colours/colours_e_autoinclude.rb'
6
+ require 'convert_global_env/autoinclude'
7
+
8
+ input = '$BIORUBY/bioshell/bio_shell.rb'
9
+
10
+ e
11
+ e 'Now testing some stuff. (Note that some of the variables will not exist.)'
12
+ e
13
+ e 'First, we test '+sfancy(input)
14
+ e ' -> '+ConvertGlobalEnv.convert(input)
15
+ e ' -> '+ConvertGlobalEnv.convert('test $IMG/rubyconvention2012')
16
+ e ' -> '+ConvertGlobalEnv.convert('$SRC/RUBY')
17
+ e ' -> '+ConvertGlobalEnv.convert('$T ee')
18
+ e ' -> '+ConvertGlobalEnv.convert('$MY_PHP')
19
+ e ' -> '+ConvertGlobalEnv.convert('--enable-bcmath --enable-calendar '\
20
+ '--enable-cli --enable-dba=shared --enable-fastcgi --enable-force-redirect '\
21
+ '--enable-force-cgi-redirect --enable-inline-optimization '\
22
+ '--with-config-file-path=$MY_PHP '\
23
+ '--with-iconv-dir=/Programs/Libiconv/Current/ '\
24
+ '--with-gdbm --with-gmp --without-gd '\
25
+ '--without-iconv --without-sqlite --disable-debug')
26
+ e
27
+ e "Next, we test Array as input, aka: %w( a b c )+['$MY_SRC/RUBY']:"
28
+ e
29
+ this_array = %w( a b c ) + ['$MY_SRC/RUBY']
30
+ this_array = ConvertGlobalEnv.convert(this_array)
31
+ e ' -> '+this_array.join("\n")
32
+ e
metadata ADDED
@@ -0,0 +1,59 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: convert_global_env
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.23
5
+ platform: ruby
6
+ authors:
7
+ - Robert A. Heiler
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-08-15 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: |2+
14
+
15
+ This module translates a string like $FOO/bar into the corresponding
16
+ ENV variable, i.e. ENV['FOO']+'/bar'.
17
+ It has no external dependencies.
18
+
19
+ email: shevy@inbox.lt
20
+ executables: []
21
+ extensions: []
22
+ extra_rdoc_files:
23
+ - USAGE.md
24
+ files:
25
+ - USAGE.md
26
+ - convert_global_env.gemspec
27
+ - lib/convert_global_env.rb
28
+ - lib/convert_global_env/autoinclude.rb
29
+ - lib/convert_global_env/constants.rb
30
+ - lib/convert_global_env/convert_global_env.rb
31
+ - lib/convert_global_env/module_methods.rb
32
+ - lib/convert_global_env/version/version.rb
33
+ - test/testing_convert_global_env.rb
34
+ homepage: https://rubygems.org/gems/convert_global_env
35
+ licenses:
36
+ - GPL-2.0
37
+ metadata: {}
38
+ post_install_message:
39
+ rdoc_options: []
40
+ require_paths:
41
+ - lib
42
+ required_ruby_version: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 2.5.8
47
+ required_rubygems_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: 3.2.24
52
+ requirements: []
53
+ rubygems_version: 3.2.24
54
+ signing_key:
55
+ specification_version: 4
56
+ summary: This module translates a string like $FOO/bar into the corresponding ENV
57
+ variable, i.e. ENV['FOO']+'/bar'. It has no external dependencies.
58
+ test_files: []
59
+ ...