clit 0.0.1
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.
- data/README.md +10 -0
- data/bin/clit-theme +8 -0
- data/clit.gemspec +16 -0
- data/lib/clit.rb +69 -0
- data/lib/clit/theme.rb +36 -0
- data/lib/clit/themes/compatible.rb +23 -0
- data/lib/clit/themes/default.rb +12 -0
- data/lib/clit/themes/fancy.rb +24 -0
- metadata +69 -0
data/README.md
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
clit - CLI output
|
2
|
+
=================
|
3
|
+
clit is a simple library to have nice looking output in Ruby, it's themeable
|
4
|
+
and comes with few simple themes.
|
5
|
+
|
6
|
+
Adding themes
|
7
|
+
-------------
|
8
|
+
If you want to add new themes just fork and open a pull request adding the
|
9
|
+
themes to lib/clit/themes, they are automatically loaded so make sure to name
|
10
|
+
the file the same as the name of theme.
|
data/bin/clit-theme
ADDED
data/clit.gemspec
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
Gem::Specification.new {|s|
|
2
|
+
s.name = 'clit'
|
3
|
+
s.version = '0.0.1'
|
4
|
+
s.author = 'meh.'
|
5
|
+
s.email = 'meh@schizofreni.co'
|
6
|
+
s.homepage = 'http://github.com/meh/ruby-clit'
|
7
|
+
s.platform = Gem::Platform::RUBY
|
8
|
+
s.summary = 'Library for nice looking CLI output.'
|
9
|
+
|
10
|
+
s.files = `git ls-files`.split("\n")
|
11
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
12
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
13
|
+
s.require_paths = ['lib']
|
14
|
+
|
15
|
+
s.add_runtime_dependency 'colorb'
|
16
|
+
}
|
data/lib/clit.rb
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
#--
|
2
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
3
|
+
# Version 2, December 2004
|
4
|
+
#
|
5
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
6
|
+
# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
7
|
+
#
|
8
|
+
# 0. You just DO WHAT THE FUCK YOU WANT TO.
|
9
|
+
#++
|
10
|
+
|
11
|
+
class Clit < BasicObject
|
12
|
+
autoload :Theme, 'clit/theme'
|
13
|
+
|
14
|
+
def self.themes
|
15
|
+
@themes ||= {}
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.define_theme (name, &block)
|
19
|
+
if @themes[name]
|
20
|
+
raise ArgumentError, "#{name} already exists"
|
21
|
+
end
|
22
|
+
|
23
|
+
@themes[name] = ::Class.new(::Clit::Theme, &block).instance
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.theme (name)
|
27
|
+
unless themes[name]
|
28
|
+
require "clit/themes/#{name}"
|
29
|
+
end
|
30
|
+
|
31
|
+
unless themes[name]
|
32
|
+
raise ::ArgumentError, "#{name} theme not found"
|
33
|
+
end
|
34
|
+
|
35
|
+
themes[name]
|
36
|
+
end
|
37
|
+
|
38
|
+
def initialize (name = :default)
|
39
|
+
theme(name)
|
40
|
+
end
|
41
|
+
|
42
|
+
def theme (name = nil)
|
43
|
+
name ? @theme = ::Clit.theme(name) : @theme
|
44
|
+
end
|
45
|
+
|
46
|
+
def respond_to_missing? (*args)
|
47
|
+
@theme.respond_to?(*args)
|
48
|
+
end
|
49
|
+
|
50
|
+
def method_missing (id, *args, &block)
|
51
|
+
if @theme.respond_to? id
|
52
|
+
return @theme.__send__ id, *args, &block
|
53
|
+
end
|
54
|
+
|
55
|
+
super
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
module Kernel
|
60
|
+
def cli
|
61
|
+
@clit ||= Clit.new
|
62
|
+
end
|
63
|
+
|
64
|
+
alias console cli
|
65
|
+
end
|
66
|
+
|
67
|
+
unless STDOUT.tty?
|
68
|
+
ENV['NO_COLORS'] = 'true'
|
69
|
+
end
|
data/lib/clit/theme.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
#--
|
2
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
3
|
+
# Version 2, December 2004
|
4
|
+
#
|
5
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
6
|
+
# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
7
|
+
#
|
8
|
+
# 0. You just DO WHAT THE FUCK YOU WANT TO.
|
9
|
+
#++
|
10
|
+
|
11
|
+
require 'singleton'
|
12
|
+
require 'colorb'
|
13
|
+
|
14
|
+
class Clit::Theme
|
15
|
+
include Singleton
|
16
|
+
|
17
|
+
def functions
|
18
|
+
methods - Object.instance_methods - [:functions]
|
19
|
+
end
|
20
|
+
|
21
|
+
def log (text)
|
22
|
+
puts text
|
23
|
+
end
|
24
|
+
|
25
|
+
def info (text)
|
26
|
+
puts text
|
27
|
+
end
|
28
|
+
|
29
|
+
def warn (text)
|
30
|
+
puts text
|
31
|
+
end
|
32
|
+
|
33
|
+
def error (text)
|
34
|
+
$stderr.puts text
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
#--
|
2
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
3
|
+
# Version 2, December 2004
|
4
|
+
#
|
5
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
6
|
+
# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
7
|
+
#
|
8
|
+
# 0. You just DO WHAT THE FUCK YOU WANT TO.
|
9
|
+
#++
|
10
|
+
|
11
|
+
Clit.define_theme :compatible do
|
12
|
+
def info (text)
|
13
|
+
super "#{?i.blue} #{text}"
|
14
|
+
end
|
15
|
+
|
16
|
+
def warn (text)
|
17
|
+
super "#{?!.yellow} #{text}"
|
18
|
+
end
|
19
|
+
|
20
|
+
def error (text)
|
21
|
+
super "#{?x.red} #{text}"
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#--
|
2
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
3
|
+
# Version 2, December 2004
|
4
|
+
#
|
5
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
6
|
+
# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
7
|
+
#
|
8
|
+
# 0. You just DO WHAT THE FUCK YOU WANT TO.
|
9
|
+
#++
|
10
|
+
|
11
|
+
Clit.define_theme :default do
|
12
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#--
|
3
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
4
|
+
# Version 2, December 2004
|
5
|
+
#
|
6
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
7
|
+
# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
8
|
+
#
|
9
|
+
# 0. You just DO WHAT THE FUCK YOU WANT TO.
|
10
|
+
#++
|
11
|
+
|
12
|
+
Clit.define_theme :fancy do
|
13
|
+
def info (text)
|
14
|
+
super "#{?ℹ.blue} #{text}"
|
15
|
+
end
|
16
|
+
|
17
|
+
def warn (text)
|
18
|
+
super "#{?⚠.yellow} #{text}"
|
19
|
+
end
|
20
|
+
|
21
|
+
def error (text)
|
22
|
+
super "#{?✖.red} #{text}"
|
23
|
+
end
|
24
|
+
end
|
metadata
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: clit
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- meh.
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-08-18 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: colorb
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
description:
|
31
|
+
email: meh@schizofreni.co
|
32
|
+
executables:
|
33
|
+
- clit-theme
|
34
|
+
extensions: []
|
35
|
+
extra_rdoc_files: []
|
36
|
+
files:
|
37
|
+
- README.md
|
38
|
+
- bin/clit-theme
|
39
|
+
- clit.gemspec
|
40
|
+
- lib/clit.rb
|
41
|
+
- lib/clit/theme.rb
|
42
|
+
- lib/clit/themes/compatible.rb
|
43
|
+
- lib/clit/themes/default.rb
|
44
|
+
- lib/clit/themes/fancy.rb
|
45
|
+
homepage: http://github.com/meh/ruby-clit
|
46
|
+
licenses: []
|
47
|
+
post_install_message:
|
48
|
+
rdoc_options: []
|
49
|
+
require_paths:
|
50
|
+
- lib
|
51
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ! '>='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
57
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
requirements: []
|
64
|
+
rubyforge_project:
|
65
|
+
rubygems_version: 1.8.24
|
66
|
+
signing_key:
|
67
|
+
specification_version: 3
|
68
|
+
summary: Library for nice looking CLI output.
|
69
|
+
test_files: []
|