lit-cli 0.1.0 → 0.2.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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/bin/lit +1 -3
  3. data/lib/config.rb +81 -0
  4. data/lib/lit_cli.rb +44 -11
  5. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a459079c92763142e2a67ca0edfadecfc1ed5e0755ad5c89bba8f6806c923541
4
- data.tar.gz: 6cbaca173d279eb5d60b361cf03a075f760045913d2c8f756913db37a1b2b9fc
3
+ metadata.gz: 642edf5650f6fbfd2b92ed421ee1b7a205c6fbe7fa14a4e9c24fe06d07d443c8
4
+ data.tar.gz: 9b090b0c6a37d47d2257eb5e1723df8ea5793e18d9eddb224a06817e111501ad
5
5
  SHA512:
6
- metadata.gz: eef119aa4d3711abddea64974001c946135eba964d06886c8b2a49344b90868aef87079b1c4b293a6af2df8b1f83997ab80596655272c7e581a5d5a59b88d3ac
7
- data.tar.gz: 2a8a974813a2c013b16f8830a3bd3670d5bbbf1a03d881bd69587b7ae8f4692681f248e2971aeec45581c35439a1f9b6d95f96472a7989ed19cbaa313e2a103c
6
+ metadata.gz: 122442d065db2aaf73e01d4629940a57e12b5ae88bdd2bf57bcdaddaab2548950b9ee522ca1080ad5577bb9ab7e3db5aea61db0d7ca319f1c3a1415225bf76af
7
+ data.tar.gz: 3c438491edf8cd0b0c7854321486f37c0a443ccac2ed6d1de32776b1aa05822152030d73fed0a315e832ebea4d688a82484fa1ce6c3aaef5d26ddc7782e258d7
data/bin/lit CHANGED
@@ -8,13 +8,11 @@
8
8
  # lit rails server
9
9
  ################################################################################
10
10
 
11
- # Enable Lit API.
12
11
  ENV['LIT_ENABLED'] = 'true'
13
12
 
13
+ # Get flags from arguments.
14
14
  args = []
15
15
  flags = []
16
-
17
- # Get flags from arguments.
18
16
  ARGV.each do |arg|
19
17
  if arg.start_with? '@'
20
18
  flags << arg.delete_prefix('@')
data/lib/config.rb CHANGED
@@ -1,9 +1,29 @@
1
1
  module LitCLI
2
+
3
+ ##############################################################################
4
+ # Default config that can be overridden from the command line or application.
5
+ #
6
+ # @usage:
7
+ # LitCLI.configure do |config|
8
+ # config.<property> = <value>
9
+ # end
10
+ #
11
+ # @precedence:
12
+ # 3. Defaults - initialize()
13
+ # 2. Application - LitCLI.configure()
14
+ # 1. Command line flags - cli_configure()
15
+ ##############################################################################
16
+
2
17
  class Config
3
18
 
19
+ attr_accessor :enabled
4
20
  attr_accessor :types
21
+ attr_accessor :type
22
+ attr_accessor :step
23
+ attr_accessor :delay
5
24
 
6
25
  def initialize()
26
+
7
27
  @types = {
8
28
  :info => { icon: "ℹ", color: :blue },
9
29
  :pass => { icon: "✔", color: :green },
@@ -12,6 +32,67 @@ module LitCLI
12
32
  :error => { icon: "!", color: :red },
13
33
  :debug => { icon: "?", color: :purple },
14
34
  }
35
+
36
+ # Lit is disabled by default, then enabled via the `lit` command.
37
+ # Or it can be permanently enabled, without the use of the `lit` command.
38
+ @enabled = false
39
+
40
+ ##
41
+ # FLAGS.
42
+ #
43
+ # Flag defaults when not supplied via command line.
44
+ ##
45
+
46
+ # Array of types to filter by, for example... [:warn, :error, :fail]
47
+ @type = nil
48
+
49
+ # Boolean on whether or not to step through each lit() breakpoint.
50
+ @step = false
51
+
52
+ # Integer or float representing amount of seconds to delay each lit() by.
53
+ @delay = 0
54
+
55
+ cli_configure()
56
+ end
57
+
58
+ # Override config from command line.
59
+ def cli_configure()
60
+ @enabled = true if ENV['LIT_ENABLED'] == 'true'
61
+
62
+ # Convert flag string to hash.
63
+ flags = {}
64
+ if ENV['LIT_FLAGS'] && !ENV['LIT_FLAGS'].empty?
65
+ ENV['LIT_FLAGS'].split().each do |flag|
66
+ values = flag.split('=')
67
+
68
+ key = values.shift.to_sym
69
+
70
+ # No arguments.
71
+ if values.empty?
72
+ flags[key] = nil
73
+ else
74
+ args = values.pop.split(',')
75
+ # Single argument.
76
+ if args.count == 1
77
+ flags[key] = args.first
78
+ # Multiple arguments.
79
+ else
80
+ flags[key] = args
81
+ end
82
+ end
83
+ end
84
+ end
85
+
86
+ @type = flags[:type] if flags.has_key? :type
87
+ @step = true if flags.has_key? :step
88
+
89
+ if flags.has_key? :delay
90
+ unless flags[:delay].nil?
91
+ @delay = flags[:delay].to_f
92
+ else
93
+ puts "🔥 ERROR: Invalid argument."
94
+ end
95
+ end
15
96
  end
16
97
 
17
98
  end
data/lib/lit_cli.rb CHANGED
@@ -2,23 +2,48 @@ require 'pastel'
2
2
  require 'config'
3
3
 
4
4
  module LitCLI
5
-
6
5
  @@pastel = Pastel.new
7
- @@config = Config.new()
6
+ @@config = Config.new
8
7
 
9
8
  def lit(message, type = :info)
10
- if ENV['LIT_ENABLED'] == 'true'
11
- type_config = @@config.types[type]
9
+ if @@config.enabled
10
+ filter(type)
11
+ render(type)
12
+ step()
13
+ delay()
14
+ end
15
+ end
16
+ alias 🔥 lit
17
+
18
+ def render(type)
19
+ type_config = @@config.types[type]
12
20
 
13
- time_text = LitCLI.colorize(Time.now().strftime("%k:%M"), :cyan)
14
- type_text = type_config[:icon] + " " + type.to_s
15
- type_text_color = LitCLI.colorize(type_text, type_config[:color])
21
+ time_text = LitCLI.colorize(Time.now().strftime("%k:%M"), :cyan)
22
+ type_text = type_config[:icon] + " " + type.to_s
23
+ type_text_color = LitCLI.colorize(type_text, type_config[:color])
24
+
25
+ message = "🔥 #{time_text} #{type_text_color} #{message}"
26
+
27
+ puts message
28
+ end
29
+
30
+ def filter(type)
31
+ if @@config.type
16
32
 
17
- message = "🔥 #{time_text} #{type_text_color} #{message}"
18
- puts message
19
33
  end
20
34
  end
21
- alias 🔥 lit
35
+
36
+ def step()
37
+ if @@config.step
38
+
39
+ end
40
+ end
41
+
42
+ def delay()
43
+ if @@config.delay > 0
44
+ sleep(@@config.delay)
45
+ end
46
+ end
22
47
 
23
48
  def self.colorize(text, color)
24
49
  case color
@@ -39,8 +64,16 @@ module LitCLI
39
64
  end
40
65
  end
41
66
 
42
- def self.configure
67
+ # Override config from application.
68
+ def self.configure()
43
69
  yield(@@config)
70
+
71
+ # Override config from command line.
72
+ @@config.cli_configure()
73
+ end
74
+
75
+ def self.error(message)
76
+ puts "🔥 ERROR: #{message}"
44
77
  end
45
78
 
46
79
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lit-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maedi Prichard
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-03 00:00:00.000000000 Z
11
+ date: 2021-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pastel