typ-formatter 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/typ/formatter.rb +39 -0
  3. metadata +57 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 9a5439dcb401b6077dc54c879aa4ef4111ab4e95f3b196e471d3913b0064d8b4
4
+ data.tar.gz: f4e0d58a682dd2ea51673b5ceed45a92991b4a1d23c83fc0ce0f0876d7b43bf2
5
+ SHA512:
6
+ metadata.gz: 672e493e75e6764e16fb49673e762bdcb7a2149a6ff554b86dc25ed58aeffe3eea384545e5fbbe62276fd5c96df8136fd528825a0814b07df6957a9821f97231
7
+ data.tar.gz: e9d5afd8122b9321f3faa5208250e440550e9f0a678ee25e22adaa2ef1381a305d8d8ba8dedc72213f1781ae119ef7893d86d75b14fd73db6cfbcdc6200dabe5
@@ -0,0 +1,39 @@
1
+ module Typ
2
+ class Formatter
3
+ require 'rainbow'
4
+
5
+ def initialize typ
6
+ name = typ.class.name
7
+ @string = if typ.ok?
8
+ Rainbow(name).green
9
+ else
10
+ Rainbow(name).red + "\n" + format_gates_of(typ)
11
+ end
12
+ end
13
+
14
+ def to_s
15
+ @string
16
+ end
17
+
18
+ private
19
+ def format_gates_of typ
20
+ typ.gates.map do |gate|
21
+ " #{format_gate gate}"
22
+ end.join "\n"
23
+ end
24
+
25
+ def format_gate gate
26
+ case gate
27
+ when Typ
28
+ self.class.new(gate).to_s
29
+ when Typ::Is::Array
30
+ format_is_array gate
31
+ end
32
+ end
33
+
34
+ def format_is_array gate
35
+ string = "is #{gate.to_a}"
36
+ gate.ok? ? Rainbow(string).green : Rainbow(string).red
37
+ end
38
+ end
39
+ end
metadata ADDED
@@ -0,0 +1,57 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: typ-formatter
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Anatoly Chernow
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-04-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rainbow
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description:
28
+ email:
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - lib/typ/formatter.rb
34
+ homepage:
35
+ licenses: []
36
+ metadata: {}
37
+ post_install_message:
38
+ rdoc_options: []
39
+ require_paths:
40
+ - lib
41
+ required_ruby_version: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ required_rubygems_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
51
+ requirements: []
52
+ rubyforge_project:
53
+ rubygems_version: 2.7.6
54
+ signing_key:
55
+ specification_version: 4
56
+ summary: A formatter to create nice-looking strings from Typs.
57
+ test_files: []