module Nazar
Constants
- VERSION
Public Class Methods
disable!()
click to toggle source
# File lib/nazar.rb, line 88 def disable! disable_shorthand_method! if @defined_shorthand_method return unless @enabled disable_for_irb! if defined?(IRB) disable_for_pry! if defined?(Pry) @enabled = false end
enable!(extensions: [:active_record, :csv])
click to toggle source
# File lib/nazar.rb, line 35 def enable!(extensions: [:active_record, :csv]) return if @enabled load_extensions!(extensions) enable_repl! enable_shorthand_method! if Nazar.config.enable_shorthand_method @enabled = true end
formatters()
click to toggle source
# File lib/nazar.rb, line 31 def formatters @formatters ||= Set.new end
load!(extensions: [:active_record, :csv])
click to toggle source
# File lib/nazar.rb, line 46 def load!(extensions: [:active_record, :csv]) load_extensions!(extensions) enable_shorthand_method! if Nazar.config.enable_shorthand_method true end
load_active_record!()
click to toggle source
# File lib/nazar.rb, line 59 def load_active_record! require 'active_record' register_formatter!('ActiveRecordCollection', 'nazar/formatter/active_record_collection') register_formatter!('ActiveRecordItem', 'nazar/formatter/active_record_item') end
load_csv!()
click to toggle source
# File lib/nazar.rb, line 53 def load_csv! require 'csv' register_formatter!('CSVTable', 'nazar/formatter/csv_table') end
load_sequel!()
click to toggle source
# File lib/nazar.rb, line 66 def load_sequel! require 'sequel' register_formatter!('SequelCollection', 'nazar/formatter/sequel_collection') register_formatter!('SequelItem', 'nazar/formatter/sequel_item') end
pry_proc()
click to toggle source
# File lib/nazar.rb, line 79 def pry_proc return unless defined?(Pry) proc do |output, value, instance| renderer = Nazar::Renderer.new(value) renderer.valid? ? renderer.render : @__original_pry_print.call(output, value, instance) end end
register_formatter!(klass_name, path)
click to toggle source
# File lib/nazar.rb, line 73 def register_formatter!(klass_name, path) require path formatters << Nazar::Formatter.const_get(klass_name) end
Private Class Methods
__(item)
click to toggle source
# File lib/nazar.rb, line 140 def __(item) Nazar::Renderer.new(item, use_generic_formatter: true).render end
disable_for_irb!()
click to toggle source
# File lib/nazar.rb, line 154 def disable_for_irb! ::IRB::Irb.send(:alias_method, :output_value, :__original_output_value__) end
disable_for_pry!()
click to toggle source
# File lib/nazar.rb, line 158 def disable_for_pry! Pry.toplevel_binding.eval( 'pry_instance.config.print = Nazar.instance_variable_get(:@__original_pry_print)', __FILE__, __LINE__ ) end
disable_shorthand_method!()
click to toggle source
# File lib/nazar.rb, line 146 def disable_shorthand_method! @defined_shorthand_method = nil Object.class_eval do undef_method :__ end end
enable_for_irb!()
click to toggle source
# File lib/nazar.rb, line 112 def enable_for_irb! ::IRB::Irb.class_eval do alias_method :__original_output_value__, :output_value def output_value(omit = false) # rubocop:disable Style/OptionalBooleanParameter renderer = Nazar::Renderer.new(@context.last_value) renderer.valid? ? renderer.render : __original_output_value__(omit) end end end
enable_for_pry!()
click to toggle source
# File lib/nazar.rb, line 122 def enable_for_pry! @__original_pry_print ||= Pry.config.print if Pry.toplevel_binding.local_variable_defined?(:pry_instance) Pry.toplevel_binding.eval('pry_instance.config.print = Nazar.pry_proc', __FILE__, __LINE__) else Pry.config.print = Nazar.pry_proc end end
enable_repl!()
click to toggle source
# File lib/nazar.rb, line 107 def enable_repl! enable_for_irb! if defined?(IRB) enable_for_pry! if defined?(Pry) end
enable_shorthand_method!()
click to toggle source
# File lib/nazar.rb, line 132 def enable_shorthand_method! if Object.respond_to?(:__) return warn Pastel.new.red("Already defined Object#__() method, Nazar won't redefine it.") end @defined_shorthand_method = true Object.class_eval do def __(item) Nazar::Renderer.new(item, use_generic_formatter: true).render end end end
load_extensions!(extensions)
click to toggle source
# File lib/nazar.rb, line 101 def load_extensions!(extensions) load_active_record! if extensions.include?(:active_record) load_csv! if extensions.include?(:csv) load_sequel! if extensions.include?(:sequel) end
output_value(omit = false)
click to toggle source
# File lib/nazar.rb, line 115 def output_value(omit = false) # rubocop:disable Style/OptionalBooleanParameter renderer = Nazar::Renderer.new(@context.last_value) renderer.valid? ? renderer.render : __original_output_value__(omit) end