module TarkaMatchers::Commands

Constants

FILE_NAME

Public Class Methods

calibrate() click to toggle source
# File lib/tarka_matchers/commands/calibrate.rb, line 3
                def self.calibrate
                        lib = File.expand_path('../../../..', __FILE__)
                        $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
                        require 'tarka_matchers.config.rb'
                        require 'io/console'
                        require 'terminfo'
                        include TarkaMatchers::Config
                        puts "Beginning SGR calibration test..."
                        all_sgr =  [['aaa',0],['aab',0]]  #SGR_CODES.map{ |v| [v,0] }
                        SGR_CODES.each_with_index do |v,i|
                                pangram = "The quick brown fox jumps over the lazy dog"
                                spaces = '' 
                                (i.to_s.length - 1).times{ spaces << ' ' }
                                puts "Currently testing SGR code: #{i}\n          Escaped sequence: \\e[#{i}m\n\nDefault Text, reset with \\e[0m#{spaces}: #{pangram}\nStyled Text, styled with \\e[#{i}m: \e[#{i}m#{pangram}\e[0m\n\nThe styled text should look #{v}."
                        array = ['2222','333221','3322']
                        inputs = []
                        closest = [-1, 0]
                        puts 100
                        while input = STDIN.raw(&:getch)
                                if input == "\r"
                                        break
                                else
                                        if input == "\u007F"
                                                inputs.pop
                                        else
                                                inputs << input
                                        end
#                                       puts inputs.inspect
#                                       all_sgr.map! do |v|
#                                               [v[0], (v[0].split('') & inputs).length]
#                                       end
#                                       all_sgr.sort_by!{ |v| !v[1] }
                                        print "\r                                                                                                                                                                                       \r"
                                        STDOUT.flush
                                        print "\r#{inputs.join}\r\n\rHello\r"
                                        i -= 1
                                end
                        end
                        break
                        SGR_CODES

=begin
require 'time'

loop do
  time = Time.now.to_s + "\r"
  print time
  $stdout.flush
  sleep 1
end
=end
                        end
                end
install(flags) click to toggle source
# File lib/tarka_matchers/commands/install.rb, line 7
def self.install flags
        puts 'Installing tarka_matchers...'
        path = 'lib/tarka_matchers/helpers/string/sgr/sgr_sequences'
        detected_terminal = ENV['TERM']
        specified_terminal = flags.index('-i')
        specified_terminal ? terminal = flags[specified_terminal+1] : terminal = detected_terminal
        
        begin
                sequence = ''
                sequence_array = IO.read("#{path}/#{terminal}.txt").split("\n")
                sequence_array_length = sequence_array.length
                sequence_array.each_with_index do |v,i| 
                        string = "\n\t\t\t'#{v}', #\\e[#{i}m"
                        case i
                        when 0
                                sequence << "[#{string}"
                        when sequence_array_length - 1
                                sequence << "#{string}\n\t\t]"
                        else
                                sequence << string
                        end
                end
        rescue Errno::ENOENT
                puts "#{RED_F}TarkaMatchers doesn't currently contain a configuration file for a #{YELLOW_F}#{terminal}#{RED_F} interface. Here are the currently available interface configurations:#{YELLOW_F}"
                Dir["#{path}/*.txt"].each_with_index{ |v,i| puts FILE_NAME.match(v).to_s.prepend("#{i+1}) ") }
                puts "#{RED_F}This should only be a concern if you plan on using our SGR matchers, (e.g. 'be_red' or 'be_bold'), and even then, most modern interfaces are configured very similarly to #{YELLOW_F}xterm#{RED_F}. Consider adding a confguration file for your terminal, #{YELLOW_F}#{terminal}#{RED_F}, to the TarkaMatchers github repository.#{RESET}"
                terminal = 'xterm'                                  
        end
        puts sequence        
        config = File.new 'tarka_matchers.config.rb', 'w'
        config.write "module TarkaMatchers\n\tmodule Config\n\t\tSGR_CODES = #{sequence}\n\t\tend\n\tend"
        config.close
                puts "Created config file in gem root: #{GREEN_F}#{Dir.pwd}/#{L_GREEN_F}tarka_matchers_config.rb#{RESET} with #{YELLOW_F}#{terminal}#{RESET} SGR settings applied.\nIf when using our SGR matchers, (e.g. 'be_red' or 'be_bold'), you find your SGR expectations are behaving strangely, edit the #{YELLOW_F}TarkaMatchers::Config::SGR_CODES#{RESET} array, found in #{L_GREEN_F}tarka_matchers_config.rb#{RESET}. For more information into SGR codes visit: 'https://en.wikipedia.org/wiki/ANSI_escape_code'."
end

Private Class Methods

create_config() click to toggle source
# File lib/tarka_matchers/commands/install.rb, line 47
def self.create_config
end
sequence_file() click to toggle source
# File lib/tarka_matchers/commands/install.rb, line 43
def self.sequence_file

end