Module: Letters::CoreExt
- Defined in:
- lib/letters/core_ext.rb
Constant Summary collapse
- DELIM =
"-" * 20
Instance Method Summary collapse
-
#a(opts = {}, &block) ⇒ Object
Assert.
-
#b ⇒ Object
Beep.
-
#c(opts = {}) ⇒ Object
Callstack.
-
#d ⇒ Object
Debug.
-
#d1 ⇒ Object
Diff 1.
-
#d2(opts = {}) ⇒ Object
Diff 2.
-
#e(opts = {}) ⇒ Object
Empty check.
-
#f(opts = {}) ⇒ Object
File.
-
#j(&block) ⇒ Object
Jump.
-
#l(opts = {}) ⇒ Object
Log.
-
#m(taint = true) ⇒ Object
Taint and untaint object.
-
#n(opts = {}) ⇒ Object
Nil check.
-
#p(opts = {}, &block) ⇒ Object
Print to STDOUT.
-
#r(method = nil) ⇒ Object
RI.
-
#s(level = nil) ⇒ Object
Change safety level.
-
#t(opts = {}) ⇒ Object
Timestamp.
Instance Method Details
#a(opts = {}, &block) ⇒ Object
Assert
12 13 14 15 16 17 18 19 20 |
# File 'lib/letters/core_ext.rb', line 12 def a(opts={}, &block) opts = { error_class: AssertionError }.merge opts tap do |o| Helpers. opts if block_given? && !o.instance_eval(&block) raise opts[:error_class] end end end |
#b ⇒ Object
Beep
23 24 25 26 27 |
# File 'lib/letters/core_ext.rb', line 23 def b tap do $stdout.print "\a" end end |
#c(opts = {}) ⇒ Object
Callstack
30 31 32 33 34 35 |
# File 'lib/letters/core_ext.rb', line 30 def c(opts={}) tap do Helpers. opts Helpers.out caller(4), opts end end |
#d ⇒ Object
Debug
38 39 40 41 42 |
# File 'lib/letters/core_ext.rb', line 38 def d tap do Helpers.call_debugger end end |
#d1 ⇒ Object
Diff 1
45 46 47 48 49 |
# File 'lib/letters/core_ext.rb', line 45 def d1 tap do |o| Letters.object_for_diff = o end end |
#d2(opts = {}) ⇒ Object
Diff 2
52 53 54 55 56 57 58 59 60 61 |
# File 'lib/letters/core_ext.rb', line 52 def d2(opts={}) require "awesome_print" opts = { format: "ap" }.merge opts tap do |o| diff = Helpers.diff(Letters.object_for_diff, o) Helpers. opts Helpers.out diff, opts Letters.object_for_diff = nil end end |
#e(opts = {}) ⇒ Object
Empty check
64 65 66 67 68 69 70 |
# File 'lib/letters/core_ext.rb', line 64 def e(opts={}) opts.merge! :error_class => EmptyError tap do |o| Helpers. opts o.a(opts) { !empty? } end end |
#f(opts = {}) ⇒ Object
File
73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/letters/core_ext.rb', line 73 def f(opts={}) opts = { format: "yaml", name: "log" }.merge opts tap do |o| File.open(opts[:name], "w+") do |file| # Override :stream opts.merge! :stream => file Helpers. opts Helpers.out o, opts end end end |
#j(&block) ⇒ Object
Jump
86 87 88 89 90 |
# File 'lib/letters/core_ext.rb', line 86 def j(&block) tap do |o| o.instance_eval &block end end |
#l(opts = {}) ⇒ Object
Log
93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/letters/core_ext.rb', line 93 def l(opts={}) opts = { level: "info", format: "yaml" }.merge opts tap do |o| begin logger.send(opts[:level], opts[:message]) if opts[:message] logger.send(opts[:level], Helpers.send(opts[:format], o)) rescue $stdout.puts "[warning] No logger available" end end end |
#m(taint = true) ⇒ Object
Taint and untaint object
106 107 108 109 110 111 112 113 114 |
# File 'lib/letters/core_ext.rb', line 106 def m(taint=true) tap do |o| if taint o.taint else o.untaint end end end |
#n(opts = {}) ⇒ Object
Nil check
117 118 119 120 121 122 |
# File 'lib/letters/core_ext.rb', line 117 def n(opts={}) opts.merge! :error_class => NilError tap do |o| o.a(opts) { !nil? } end end |
#p(opts = {}, &block) ⇒ Object
Print to STDOUT
125 126 127 128 129 130 131 132 |
# File 'lib/letters/core_ext.rb', line 125 def p(opts={}, &block) opts = { format: "ap", stream: $stdout }.merge opts tap do |o| Helpers. opts obj = block_given? ? o.instance_eval(&block) : o Helpers.out obj, opts end end |
#r(method = nil) ⇒ Object
RI
135 136 137 138 139 140 |
# File 'lib/letters/core_ext.rb', line 135 def r(method=nil) tap do |o| method_or_empty = method ? "##{method}" : method system "ri #{o.class}#{method_or_empty}" end end |
#s(level = nil) ⇒ Object
Change safety level
143 144 145 146 147 148 |
# File 'lib/letters/core_ext.rb', line 143 def s(level=nil) tap do level ||= $SAFE + 1 Helpers.change_safety level end end |
#t(opts = {}) ⇒ Object
Timestamp
151 152 153 154 155 156 157 |
# File 'lib/letters/core_ext.rb', line 151 def t(opts={}) opts = { time_format: "millis" }.merge opts tap do Helpers. opts Helpers.out Time.now.to_s(opts[:time_format].to_sym), opts end end |