win32console 1.2.0-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/HISTORY.txt ADDED
@@ -0,0 +1,7 @@
1
+ v1.0 - Added .dup to _printString function to avoid mangling outside
2
+ string references. Removed the other (later) .dup call.
3
+ Turned of some exceptions that were conflicting with using
4
+ the module with pipes or redirections.
5
+ v0.8 - Fixed bugs in reading routines, added ruby docs, and
6
+ sample test suite.
7
+ v0.5 - First public release.
data/HISTORY_GEM.txt ADDED
@@ -0,0 +1,38 @@
1
+ 1.2.0 - Code corrections integrated from GitHub
2
+ * Removed license conflicting ANSI Term code and functionality.
3
+ * Better code organization and clenaup
4
+
5
+ 1.1.0 - Bug fixes provided by Gordon Thiesfeld (gthiesfeld at gmail dot com).
6
+ * added #putc to Win32::Console::ANSI::IO
7
+ This putc buffers escape sequences so that they will be handled properly
8
+ *added Kernel#putc
9
+ Redefined Kernel#putc to wrap Win32::Console::ANSI::IO#putc
10
+ *added #redirected? to Win32::Console::ANSI::IO
11
+ Checks the mode of the console to see if IO is being redirected or not
12
+ * fixed "Invalid Handle" error in compiled version of GetConsoleMode
13
+ I'm actually not sure of the source of this error. It may be expected behavior when output is being redirected. I worked around it by rescuing the exception in Win32::Console#Mode and returning 9999. I picked that arbitrary value, because it is higher than 31, which is what I think is the highest value Mode would return if output isn't being redirected.
14
+ * modified Win32::Console::ANSI::IO#write
15
+ to check for redirection. If output is redirected, it uses WriteFile instead of WriteConosle. It also skips the parsing step, and passes the escape sequences through.
16
+ * added Win32::Console::API#WriteFile
17
+ to both the Ruby and compiled versions
18
+ * added Win32::Console*WriteFile
19
+ This is a wrapper around Win32::Console::API#WriteFile
20
+ * modified Win32::Console::ANSI::IO#_PrintString
21
+ Didn't change behavior, just tried to make it more idiomatic ruby. I didn't make all of the changes I wanted to, because I wasn't sure how to test them all.
22
+ * split Win32::Console::Constants and Win32::Console::API out into seperate files.
23
+ These two classes were in 'Win32/Console.rb' I moved them into 'Win32/Console/constants.rb' and 'Win32/Console/api.rb' respectively.
24
+ * cleaned up indentation
25
+ indentations was a mixture of tabs and spaces. I made everything indented with 2 spaces.
26
+ * modified all Win32::Console::API methods
27
+ It was assigning Win32API functions to class variables. I switched them to instance variables. I also changed the idiom it was using to instantiate the objects.
28
+ For instance, instead of:
29
+
30
+ if @@m_AllocConsole == nil
31
+ @@m_AllocConsole = Win32API.new( "kernel32", "AllocConsole",
32
+ [], 'l' )
33
+
34
+ It is now:
35
+
36
+ @AllocConsole ||= Win32API.new( "kernel32", "AllocConsole", [], 'l' )
37
+ * Non-string arguments passed to Win32::Console::ANSI#write caused error - fix by Ivan Evtuhovich (evtuhovich at gmail dot com).
38
+ 1.0.8 - First public release of win32console gem by Justin Bailey (jgbailey at gmail dot com).
data/INSTALL.txt ADDED
@@ -0,0 +1,18 @@
1
+
2
+ To compile and install:
3
+
4
+
5
+ Open a windows console.
6
+ > vcvars32.bat # to set up microsoft's compiling environment
7
+ # this is located in the bin/ directory of the MSVC compiler
8
+ > ruby extconf.rb # to create a Makefile
9
+ > nmake # to compile
10
+ > nmake install # to install
11
+
12
+
13
+ To test:
14
+
15
+ > cd test
16
+ > dir # to see available samples
17
+ > ruby [anysample]
18
+
data/README.txt ADDED
@@ -0,0 +1,25 @@
1
+
2
+ This file implements a port of Perl's Win32::Console
3
+ and Win32::Console::ANSI modules.
4
+
5
+ Win32::Console allows controling the windows command line terminal
6
+ thru an OO-interface. This allows you to query the terminal (find
7
+ its size, characters, attributes, etc). The interface and functionality
8
+ should be identical to Perl's.
9
+
10
+ Win32::Console consists of a Ruby .rb interface.
11
+ For best performance, this library has been also ported to C.
12
+ If you lack a C compiler, you can still use the class thru the ruby
13
+ interface. If you can compile it, then the ruby interface is not
14
+ used and the C functions are called instead.
15
+
16
+ Win32::Console::ANSI is a class derived from IO that seamlessly
17
+ translates ANSI Esc control character codes into Windows' command.exe
18
+ or cmd.exe equivalents.
19
+
20
+ These modules allow you to develop command-line tools that can take
21
+ advantage of the unix terminal functions while still being portable.
22
+ One of the most common uses for this is to allow to color your
23
+ output.
24
+ The modules are disted with Term/ansicolor.rb, too, as it is a nice
25
+ thing to verify it is working properly.
data/README_GEM.txt ADDED
@@ -0,0 +1,64 @@
1
+ = Introduction
2
+
3
+ This gem packages Gonzalo Garramuno's Win32::Console project, and includes a compiled binary for speed. The Win32::Console project's home can be found at:
4
+
5
+ http://rubyforge.org/projects/win32console
6
+
7
+ To use the gem, just put
8
+
9
+ require 'win32console'
10
+
11
+ At the top of your file.
12
+
13
+ = Example
14
+
15
+ To output a simple bolded string, try this script:
16
+
17
+ require 'rubygems'
18
+ require 'win32console'
19
+ include Win32::Console::ANSI
20
+ include Term::ANSIColor
21
+
22
+ puts bold << "bolded text" << clear << " and no longer bold."
23
+
24
+ = Formatting Methods Available
25
+
26
+ The full list of methods available is found in lib/Term/ansicolor.rb (generated from the @@attributes array):
27
+
28
+ clear
29
+ reset # synonym for clear
30
+ bold
31
+ dark
32
+ italic # not widely implemented
33
+ underline
34
+ underscore # synonym for underline
35
+ blink
36
+ rapid_blink # not widely implemented
37
+ negative # no reverse because of String#reverse
38
+ concealed
39
+ strikethrough # not widely implemented
40
+
41
+ # The following will set the foreground color
42
+
43
+ black
44
+ red
45
+ green
46
+ yellow
47
+ blue
48
+ magenta
49
+ cyan
50
+ white
51
+
52
+ # The following will set the background color
53
+
54
+ on_black
55
+ on_red
56
+ on_green
57
+ on_yellow
58
+ on_blue
59
+ on_magenta
60
+ on_cyan
61
+ on_white
62
+
63
+ The methods are fairly sophisticated. If you don't pass an argument, the appropriate escape sequence is returned. If a string is given, it will be outputted with an escape sequence wrapping it to apply the formatting to just that portion. If a block is given, the escape sequence will wrap the output of the block. Finally, if the Term::ANSIColor module is mixed into an object, and that instance supports to_str, tnen the result of to_str will be wrapped in the escape sequence.
64
+
data/Rakefile ADDED
@@ -0,0 +1,49 @@
1
+ require 'rubygems'
2
+ require 'rake/clean'
3
+ require 'rake/gempackagetask'
4
+ require './tasks/ext_helper'
5
+
6
+ # House-keeping
7
+ CLEAN.include '**/*.o', '**/*.so', '**/*.bundle', '**/*.a',
8
+ '**/*.log', '{ext,lib}/*.{bundle,so,obj,pdb,lib,def,exp}',
9
+ 'ext/Makefile', '**/*.db'
10
+
11
+ spec = Gem::Specification.new do |s|
12
+ s.name = 'win32console'
13
+ s.version = '1.2.0'
14
+ s.platform = Gem::Platform::RUBY
15
+ s.has_rdoc = true
16
+ s.extra_rdoc_files = %w[ README.txt README_GEM.txt INSTALL.txt HISTORY.txt HISTORY_GEM.txt ]
17
+ s.summary = 'A library giving the Win32 console ANSI escape sequence support.'
18
+ s.description = s.summary
19
+ s.author = 'Original Library by Gonzalo Garramuno, Gem by Justin Bailey'
20
+ s.email = 'ggarra @nospam@ advancedsl.com.ar, jgbailey @nospan@ gmail.com'
21
+ s.homepage = 'http://rubyforge.org/projects/winconsole'
22
+ s.rubyforge_project = 'http://rubyforge.org/projects/winconsole'
23
+ s.description = <<EOS
24
+ This gem packages Gonzalo Garramuno's Win32::Console project, and includes a compiled binary for speed. The Win32::Console project's home can be found at:
25
+
26
+ http://rubyforge.org/projects/win32console
27
+
28
+ The gem project can be found at
29
+
30
+ http://rubyforge.org/projects/winconsole
31
+ EOS
32
+
33
+ s.require_path = 'lib'
34
+ s.extensions = %w[ ext/extconf.rb ]
35
+ s.files = FileList[ '{doc,ext,lib,test}/**/*.{rdoc,c,cpp,rb}', 'Rakefile', *s.extra_rdoc_files ]
36
+
37
+ s.rdoc_options << '--title' << 'Win32Console Gem -- Gem for Win32::Console Project' <<
38
+ '--main' << 'README_GEM.txt' <<
39
+ '--line-numbers'
40
+ end
41
+
42
+ Rake::GemPackageTask.new(spec) do |pkg|
43
+ pkg.need_tar = true
44
+ pkg.gem_spec = spec
45
+ end
46
+
47
+ # Use of ext_helper to properly setup compile tasks and native gem generation
48
+ # add 'native', 'compile' and some tweaks to gem specifications.
49
+ setup_extension 'Console', spec