سؤال

هناك جوهرة مثل 'مصطلح::ANSIColor الذي يعمل مع 256 لون المحطات ؟ Perl 256colors2.pl يعمل كبيرة في محطة بلدي, وأود أن استخدام بعض هذه الألوان في روبي النصوص دون يدويا إدخال رموز ANSI.

هل كانت مفيدة؟

المحلول

وهنا التكيف من 256colors2.pl سكربت روبي مع بعض المساعدة من هذا دليل.وتعرف print_color(text, foreground, background) الطريقة التي ينبغي أن تطبق بسهولة إلى المشاريع الخاصة بك.فإنه يطبع السلسلة في اللون, ثم يعيد اللون إلى المحطة الافتراضي.ينبغي أن يكون من السهل بما فيه الكفاية لتخطي إعادة تعيين إذا كنت تفضل ذلك.

def rgb(red, green, blue)
  16 + (red * 36) + (green * 6) + blue
end

def gray(g)
  232 + g
end

def set_color(fg, bg)
  print "\x1b[38;5;#{fg}m" if fg
  print "\x1b[48;5;#{bg}m" if bg
end

def reset_color
  print "\x1b[0m"
end

def print_color(txt, fg, bg)
  set_color(fg, bg)
  print txt
  reset_color
end

# convenience method
def rgb_cube
  for green in 0..5 do
    for red in 0..5 do
      for blue in 0..5 do
        yield [red, green, blue]
      end 
      print " "
    end
    puts
  end
end

# rgb list on black bg
rgb_cube do |red, green, blue|
  print_color("%d%d%d  " % [red, green, blue], rgb(red, green, blue), nil)
end
puts

# rgb list on white bg
rgb_cube do |red, green, blue|
  print_color("%d%d%d  " % [red, green, blue], rgb(red, green, blue), 15)
end
puts

# system palette:
print "System colors:\n";
(0..7).each do |color|
  print_color("  ", nil, color)
end
puts

(8..15).each do |color|
  print_color("  ", nil, color)
end
puts
puts

# color cube
print "Color cube, 6x6x6:\n"
rgb_cube do |red, green, blue|
  print_color("  ", nil, rgb(red, green, blue))
end
puts

# grayscale ramp
print "Grayscale ramp:\n"
for g in (0..23) do 
  print_color("  ", nil, gray(g))
end

puts
puts

نصائح أخرى

هذه الأحجار الكريمة يجب التعامل مع ما تحتاج إليه: قوس قزح

هنا واحد يدعم 256-الألوان -

الطلاء تدير محطة الألوان والآثار بالنسبة لك.فهو يجمع بين نقاط القوة في الأحجار الكريمة مثل الأجل ansicolor أو قوس قزح في سهلة الاستخدام ومرنة colorizer.

الطلاء

لقد لعبت في جميع أنحاء قليلا في وقت سابق مع الجواب و حصلت على ما وجدته قليلا أكثر متعة للعمل مع.

ليب

def gray(g); 232 + g; end 
def rgb(red, green, blue); 16 + (red * 36) + (green * 6) + blue; end 
def green; rgb(0,5,0); end 
def red; rgb(5,0,0); end 
def c( fg, bg = nil ); "#{fg ? "\x1b[38;5;#{fg}m" : ''}#{bg ? "\x1b[48;5;#{bg}m" : ''}" end 
def ec; "\x1b[0m"; end 

مثال على الاستخدام

BASE_DIR = File.expand_path( File.join( File.dirname(__FILE__), '..' ) )     
def status( sDaemon )
   b = File.exist?( File.join( BASE_DIR, 'pids', "#{sDaemon}.pid" ) ) 
   puts c( b ? green : red ) + sDaemon + ( b ? ' RUNNING' : ' STOPPED' ) + ec
end

%w{ backuper emailSpamChecker indexer log2email orderManager sitemapProducer }.each { |s| status s }   

هناك جوهرة يسمى مصطلح::ANSIColor على Rubyforge...:)
أي فكرة كيف جيدة على الرغم من.

http://rubyforge.org/projects/term-ansicolor/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top