Module: Letters::CoreExt

Defined in:
lib/letters/core_ext.rb

Constant Summary collapse

DELIM =
"-" * 20

Instance Method Summary collapse

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.message opts
    if block_given? && !o.instance_eval(&block)
      raise opts[:error_class]
    end
  end
end

#bObject

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.message opts
    Helpers.out caller(4), opts
  end
end

#dObject

Debug



38
39
40
41
42
# File 'lib/letters/core_ext.rb', line 38

def d
  tap do
    Helpers.call_debugger 
  end
end

#d1Object

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.message 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.message 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.message 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.message 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.message opts
    Helpers.out Time.now.to_s(opts[:time_format].to_sym), opts
  end
end