cli_miami 0.0.3 → 0.0.4

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
  SHA1:
3
- metadata.gz: 4c60266764b9175f842fe6919b0e05cee6d408e4
4
- data.tar.gz: d8901f932ec476f1b87cd82280ee2875b3fab47a
3
+ metadata.gz: f27ada6d252c35a283bccb8ad5fed5dfb7bf50a1
4
+ data.tar.gz: 521ac8de8dc309bd31637e778b45fa3ba06adc2e
5
5
  SHA512:
6
- metadata.gz: 75c76e892900ed53308ba79d261f970713661dff2a93df1804ecb09596451fa5314404f7bbfa20433e5cf93d8752077085df5e5878fb2f0721cd1a5ad6eb5333
7
- data.tar.gz: 22d86d892b4b62c29d856399efe4aab73fc8fb163b3cf26c4ca233910256b5ae58ca72820182d2b6a3f7fd701abd698f12c5f9134d746a7979f5df4780dc3c3d
6
+ metadata.gz: f6add69a2ff9a694dd4e35b6b2c71a0cdfe349956402e5b486bb7b905b8b1779238193fa08eaf92b1c1de12bbb3fd829d2384c906788cbba21442f7aaaabf4a7
7
+ data.tar.gz: 4b68335b9b95a96a06a5fcb72a45c44a85087dcc68d4069628f6751ff871266d47dc3abe9600e3118e0e2fdc47d9ecccd1e2c9eaeac912b1bee9f7d45e22f1cd
data/.gitignore CHANGED
@@ -0,0 +1 @@
1
+ *.gem
@@ -0,0 +1,34 @@
1
+ #
2
+ # class CliMiami::Ask
3
+ #
4
+
5
+ require 'readline'
6
+
7
+ class CliMiami::A
8
+ @@prompt = '>>> '
9
+
10
+ # See documentation for CliMiami::S.ay
11
+ # The same options are accepted
12
+ #
13
+ def self.sk question, options = {}, &block
14
+ options = {
15
+ :readline => false,
16
+ }.merge(options)
17
+
18
+ CliMiami::S.ay question, options
19
+
20
+ output = if options[:readline]
21
+ Readline.readline(@@prompt).chomp('/')
22
+ else
23
+ CliMiami::S.ay @@prompt, :newline => false
24
+ $stdin.gets
25
+ end.rstrip
26
+
27
+ yield output if block
28
+ end
29
+
30
+ def self.prompt; @@prompt; end
31
+ def self.prompt= prompt
32
+ @@prompt = prompt
33
+ end
34
+ end
@@ -0,0 +1,111 @@
1
+ #
2
+ # class CliMiami::Say
3
+ #
4
+ require 'term/ansicolor'
5
+
6
+ class String
7
+ include Term::ANSIColor
8
+ end
9
+
10
+ class CliMiami::S
11
+
12
+ # default presets
13
+ @@presets = {
14
+ :fail => {
15
+ :color => :red,
16
+ :style => :bold
17
+ },
18
+ :warn => {
19
+ :color => :yellow,
20
+ :style => :bold
21
+ },
22
+ :success => {
23
+ :color => :green,
24
+ :style => :bold
25
+ }
26
+ }
27
+
28
+ # By preset...
29
+ # [symbol] Uses defined preset
30
+
31
+ # By options...
32
+ # color: => [symbol] See README for ansi color codes
33
+ # bgcolor: => [symbol] See README for ansi color codes
34
+ # style: => [symbol] See README for ansi style codes
35
+ # justify: => [center|ljust|rjust] The type of justification to use
36
+ # padding: => [integer] The maximum string size to justify text in
37
+ # indent: => [integer] The number of characters to indent
38
+ # newline: => [boolean] True if you want a newline after the output
39
+ # overwrite: => [boolean] True if you want the next line to overwrite the current line
40
+ #
41
+ def self.ay text = '', options = {}
42
+ # get preset if symbol is passed
43
+ if options.is_a? Symbol
44
+ options = @@presets[options]
45
+ end
46
+
47
+ # set default options
48
+ options = {
49
+ :style => [],
50
+ :newline => true
51
+ }.merge options
52
+
53
+ # convert single style into an array for processing
54
+ if !options[:style].is_a? Array
55
+ options[:style] = [options[:style]]
56
+ end
57
+
58
+ # Justify/Padding options
59
+ if options[:justify] && options[:padding]
60
+ text = text.send options[:justify], options[:padding]
61
+ end
62
+
63
+ # Set foreground color
64
+ if options[:color]
65
+ # if bright style is passed, use the bright color variation
66
+ text = if options[:style].delete :bright
67
+ text.send("bright_#{options[:color]}")
68
+ else
69
+ text.send(options[:color])
70
+ end
71
+ end
72
+
73
+ # Set background color
74
+ if options[:bgcolor]
75
+ text = text.send("on_#{options[:bgcolor]}")
76
+ end
77
+
78
+ # Apply all styles
79
+ options[:style].each do |style|
80
+ text = text.send(style)
81
+ end
82
+
83
+ # Indent
84
+ if options[:indent]
85
+ text = (' ' * options[:indent]) + text
86
+ end
87
+
88
+ # Flag text to be overwritten by next text written
89
+ if options[:overwrite]
90
+ text = "#{text}\r"
91
+ end
92
+
93
+ # Determine if a newline should be used
94
+ if !options[:newline] || options[:overwrite]
95
+ $stdout.print text
96
+ else
97
+ $stdout.puts text
98
+ end
99
+ end
100
+
101
+ # Returns all presets
102
+ def self.presets
103
+ @@presets
104
+ end
105
+
106
+ # Create a new custom preset
107
+ def self.set_preset type, options
108
+ raise 'Preset must be a hash of options' unless options.is_a? Hash
109
+ @@presets[type] = options
110
+ end
111
+ end
data/lib/namespaced.rb ADDED
@@ -0,0 +1,6 @@
1
+ # This is the primary initializer
2
+
3
+ class CliMiami
4
+ require 'cli_miami/ask'
5
+ require 'cli_miami/say'
6
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cli_miami
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Brewster
@@ -94,6 +94,9 @@ files:
94
94
  - Guardfile
95
95
  - README.md
96
96
  - lib/cli_miami.rb
97
+ - lib/cli_miami/ask.rb
98
+ - lib/cli_miami/say.rb
99
+ - lib/namespaced.rb
97
100
  - yuyi_menu
98
101
  homepage: https://github.com/brewster1134/cli_miami
99
102
  licenses: