marked-conductor 1.0.29 → 1.0.31

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 25fca33d78a755b6ab7b9dc4003d842723ca9b1a5eabb4357f665f91480e08cc
4
- data.tar.gz: b75c35f4db0f8d96a8a62e7636ff3f268918f85aa98fd133d30621c16dc58ce1
3
+ metadata.gz: d0e1ef1b159b7512a91fd58ee494b7536624fea11f575cfe5878351b20509a50
4
+ data.tar.gz: 6c2133011cc6f684e96ce94595cbb997815ead07dd8893a30f6828d3a8aaa079
5
5
  SHA512:
6
- metadata.gz: 4bdd6b152729410fbd5f6752672169a41cdeab264f9b21ae8796eced90dcff3334817dd51038f8732ff6e9d5856776872b3d9cdcaf87898a74c405e8ce99a3a7
7
- data.tar.gz: f26b8b7c39db572313b95b83fce5ac49cbd950171034a1bc99a092c62cc0104b1d28eb78e3dbdfa4c44bd1f54f90a4c0d79e0ea9173020fcc4e7e1ab1131eb0f
6
+ metadata.gz: '0088bada15dde89533decf97c43979e36c899de5736782847fc43ddf6edcaf2fe81ac9e0e94c485d9104b41e3040288cd2302609b7d503fa18ebe95bb3945ae4'
7
+ data.tar.gz: 2ade2bebfdc5db48e06bf3a43eddb102f188a3da21c1bbfe73641d7688133a16214056d30de92b79c4310af9758696d1b3251e40f5f37555a5366c7c696786e0
data/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ### 1.0.31
2
+
3
+ 2024-07-29 15:40
4
+
5
+ #### FIXED
6
+
7
+ - Nil environment variable failure
8
+
9
+ ### 1.0.30
10
+
11
+ 2024-07-29 11:47
12
+
1
13
  ### 1.0.29
2
14
 
3
15
  2024-07-28 09:57
data/README.md CHANGED
@@ -107,6 +107,8 @@ Available conditions are:
107
107
  - `includes` are files included in the document with special syntax (Marked, IA Writer, etc.)
108
108
  - `includes contain file` or `includes not contains file` will test all included files for filename matches
109
109
  - `includes contain path` or `includes not contains path` will test all included files for fragment matches anywhere in the path
110
+ - `env:KEY matches VALUE` will test for matching values in a environment key. All string matching operators are available, and `env[KEY]` syntax will also work.
111
+ - `env contains KEY` tests just for the existence of an environment variable key (can include variables set by Marked).
110
112
  - The following keywords act as a catchall and can be used as the last track in the config to act on any documents that aren't matched by preceding rules:
111
113
  - `any`
112
114
  - `else`
data/bin/conductor CHANGED
@@ -4,9 +4,20 @@
4
4
  require_relative "../lib/conductor"
5
5
  require "optparse"
6
6
 
7
+ options = {
8
+ config_file: nil
9
+ }
10
+
7
11
  optparse = OptionParser.new do |opts|
8
12
  opts.banner = "Called from Marked 2 as a Custom Pre/Processor"
9
13
 
14
+ opts.on("-c", "--config", "Specify alternate config file") do |file|
15
+ config = File.expand_path(file)
16
+ raise "Config file not found" unless File.exist?(config)
17
+
18
+ options[:config_file] = file
19
+ end
20
+
10
21
  opts.on("-v", "--version", "Show version number") do
11
22
  puts "conductor v#{Conductor::VERSION}"
12
23
  Process.exit 0
@@ -21,6 +32,7 @@ end
21
32
  optparse.parse!
22
33
 
23
34
  config = Conductor::Config.new
35
+ config.config_file = options[:config_file] if options[:config_file]
24
36
  res = config.configure
25
37
 
26
38
  Process.exit 0 unless res
@@ -184,6 +184,11 @@ module Conductor
184
184
 
185
185
  val2 = val2.to_s.dup.force_encoding("utf-8")
186
186
 
187
+ if val2.bool?
188
+ res = val2.to_bool == val1.to_bool
189
+ return operator === :not_equal ? !res : res
190
+ end
191
+
187
192
  if val1.date?
188
193
  if val2.time?
189
194
  date1 = val1.to_date
@@ -276,6 +281,26 @@ module Conductor
276
281
  operator == :not_equal ? !res : res
277
282
  end
278
283
 
284
+ ##
285
+ ## Test for environment variable
286
+ ##
287
+ ## @param value [String] The value (test for existence of key if
288
+ ## nil)
289
+ ## @param key [String] The key
290
+ ## @param operator [Symbol] The operator
291
+ ##
292
+ ## @return [Boolean] test result
293
+ ##
294
+ def test_env(value, key, operator)
295
+ env = Env.env.merge(ENV)
296
+ if key.nil?
297
+ res = !env[value].nil?
298
+ return operator == :not_contains ? !res : res
299
+ end
300
+
301
+ return test_string(env[key], value, operator)
302
+ end
303
+
279
304
  ##
280
305
  ## Test for presence of yaml, optionall for
281
306
  ## a key, optionally for a key's value
@@ -391,6 +416,9 @@ module Conductor
391
416
  end
392
417
 
393
418
  case type
419
+ when /^env(?:ironment)?(?:[:\[\()](.*?)[\]\)]?)?$/i
420
+ key = Regexp.last_match(1) || nil
421
+ test_env(value, key, operator)
394
422
  when /^include/i
395
423
  test_includes(@env[:includes], value, operator) ? true : false
396
424
  when /^ext/i
@@ -41,8 +41,12 @@ module Conductor
41
41
  config_file ||= @config_file
42
42
  config_dir = File.dirname(config_file)
43
43
  scripts_dir = File.dirname(File.join(config_dir, "scripts"))
44
+ styles_dir = File.dirname(File.join(config_dir, "css"))
45
+ js_dir = File.dirname(File.join(config_dir, "js"))
44
46
  FileUtils.mkdir_p(config_dir) unless File.directory?(config_dir)
45
47
  FileUtils.mkdir_p(scripts_dir) unless File.directory?(scripts_dir)
48
+ FileUtils.mkdir_p(styles_dir) unless File.directory?(styles_dir)
49
+ FileUtils.mkdir_p(js_dir) unless File.directory?(js_dir)
46
50
  unless File.exist?(config_file)
47
51
  File.open(config_file, "w") { |f| f.puts sample_config }
48
52
  puts "Sample config created at #{config_file}"
data/lib/conductor/env.rb CHANGED
@@ -7,7 +7,7 @@ module Conductor
7
7
  ## Define @env using Marked environment variables
8
8
  ##
9
9
  def self.env
10
- if ENV["CONDUCTOR_TEST"] == "true"
10
+ if ENV["CONDUCTOR_TEST"]&.to_bool
11
11
  load_test_env
12
12
  else
13
13
  @env ||= {
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Conductor
4
- VERSION = '1.0.29'
4
+ VERSION = '1.0.31'
5
5
  end
data/src/_README.md CHANGED
@@ -107,6 +107,8 @@ Available conditions are:
107
107
  - `includes` are files included in the document with special syntax (Marked, IA Writer, etc.)
108
108
  - `includes contain file` or `includes not contains file` will test all included files for filename matches
109
109
  - `includes contain path` or `includes not contains path` will test all included files for fragment matches anywhere in the path
110
+ - `env:KEY matches VALUE` will test for matching values in a environment key. All string matching operators are available, and `env[KEY]` syntax will also work.
111
+ - `env contains KEY` tests just for the existence of an environment variable key (can include variables set by Marked).
110
112
  - The following keywords act as a catchall and can be used as the last track in the config to act on any documents that aren't matched by preceding rules:
111
113
  - `any`
112
114
  - `else`
data/test.sh CHANGED
@@ -23,6 +23,7 @@ fi
23
23
 
24
24
  PHASE="PREPROCESS"
25
25
  STD="BOTH"
26
+ CONFIG=""
26
27
 
27
28
  while getopts "h?p:o:d" opt; do
28
29
  case "$opt" in
@@ -32,6 +33,8 @@ while getopts "h?p:o:d" opt; do
32
33
  ;;
33
34
  p) PHASE=$OPTARG
34
35
  ;;
36
+ c) CMD="$CMD -c \"$OPTARG\""
37
+ ;;
35
38
  o) STD=$OPTARG
36
39
  ;;
37
40
  d)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marked-conductor
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.29
4
+ version: 1.0.31
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Terpstra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-28 00:00:00.000000000 Z
11
+ date: 2024-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: awesome_print