breakverter 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,15 +1,34 @@
1
+ === 1.1.1 / 2009-03-08
2
+
3
+ * minor enhancement
4
+
5
+ * Added a --version command to output version and licensing information
6
+ * Some test refactoring
7
+ * Some more comments
8
+
1
9
  === 1.1.0 / 2009-03-01
2
10
 
3
- * Tested compatibility with ruby 1.9.1
4
- * Added support for custom string linebreak encodings in library
5
- * Added automated tests for the commandline tool
11
+ * 2 major enhancements
12
+
13
+ * Added automated tests for the commandline tool
14
+ * Tested compatibility with ruby 1.9.1
15
+
16
+ * 1 minor enhancement
17
+
18
+ * Added support for custom string linebreak encodings in library
6
19
 
7
20
  === 1.0.1 / 2009-02-24
8
21
 
9
- * Now tested on Windows XP
10
- * Bugfixes for commandline use
22
+ * 1 minor enhancement
23
+
24
+ * Now tested on Windows XP
25
+
26
+ * 1 minor bugfix
27
+
28
+ * Bugfixes for commandline use
11
29
 
12
30
  === 1.0.0 / 2009-02-24
13
31
 
14
- * Initial release
32
+ * 1 major enhancement
15
33
 
34
+ * Birthday!
data/README.txt CHANGED
@@ -10,9 +10,11 @@ to any of these formats.
10
10
 
11
11
  == FEATURES/PROBLEMS:
12
12
 
13
- * Usable as library and commandline tool.
14
- * Tested on Ubuntu Linux 8.10 and Windows XP
15
- * Compatible with ruby 1.9.1 (only the library part because of the not yet compatible user-choices gem)
13
+ * Usable as library and commandline tool
14
+ * Tested and fully working on:
15
+ * Windows XP i386 (Ruby 1.8.6)
16
+ * Ubuntu Linux 8.10 i386_64 (Ruby 1.8.7 and 1.9.1p0)
17
+ * The commandline tool doesn't work with Ruby 1.9.x because the user-choices gem is not yet updated. A patch is available here: https://rubyforge.org/tracker/index.php?func=detail&aid=24307&group_id=4192&atid=16176
16
18
 
17
19
  == SYNOPSIS:
18
20
 
@@ -38,6 +40,7 @@ The default output encoding is unix. You can set the default with the environmen
38
40
  == INSTALL:
39
41
 
40
42
  * gem install breakverter
43
+ * gem install user-choices (only for commandline tool)
41
44
 
42
45
  == LICENSE:
43
46
 
data/bin/breakverter CHANGED
@@ -17,6 +17,10 @@
17
17
  # You should have received a copy of the GNU General Public License
18
18
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
19
19
 
20
+ # TODO: If user-choices patch gets accepted, use :one_way => true for --version
21
+ # TODO: If user-choices patch gets accepted, use :upcase for environment variables
22
+
23
+ # If library is not locally accessible, use gem to include it.
20
24
  begin
21
25
  require 'lib/breakverter'
22
26
  rescue LoadError
@@ -24,10 +28,11 @@ rescue LoadError
24
28
  require 'breakverter'
25
29
  end
26
30
 
31
+ # User friendly message if user-choices is not available
27
32
  begin
28
33
  require 'user-choices'
29
34
  rescue LoadError
30
- puts 'This command needs the user-choices gem to be installed'; exit
35
+ warn "This command needs the user-choices gem to be installed.\n\nSolution: gem install user-choices"; exit false
31
36
  end
32
37
 
33
38
  # Application class for commandline interface
@@ -38,7 +43,7 @@ class BreakVerter::Application < UserChoices::Command
38
43
  def add_sources(builder)
39
44
  builder.add_source(
40
45
  CommandLineSource, :usage,
41
- "Usage: #$PROGRAM_NAME [options] input-file [output-file]",
46
+ "Usage: #$PROGRAM_NAME [options] input-file [output-file]\n\n",
42
47
  "Convert a file with any linebreak encoding to a specific linebreak encoding.\n",
43
48
  "Use the environment variable BREAKVERTER_OUTPUT to specify a default output encoding.\n"
44
49
  )
@@ -56,6 +61,10 @@ class BreakVerter::Application < UserChoices::Command
56
61
  "Output formatting. Possible settings: #{BreakVerter::BREAKS.keys.join(', ')}")
57
62
  end
58
63
 
64
+ builder.add_choice(:version, :default => false, :type => :boolean) do |cli|
65
+ cli.uses_switch('-v', '--version', 'Display version and licensing information')
66
+ end
67
+
59
68
  builder.add_choice(:filenames, :length => 1..2) {|cli| cli.uses_arglist}
60
69
  end
61
70
 
@@ -67,18 +76,54 @@ class BreakVerter::Application < UserChoices::Command
67
76
 
68
77
  # Main program
69
78
  def execute
70
- raise "Input file not found (#{@user_choices[:input_filename]})" unless File.exists?(@user_choices[:input_filename])
71
- raise "Input file access denied (#{@user_choices[:input_filename]})" unless File.readable?(@user_choices[:input_filename])
79
+ if @user_choices[:version]
80
+ klass = Breakverter
81
+ puts "\n#{klass.name} #{klass::VERSION}"
82
+ puts DATA.read; exit
83
+ end
84
+
85
+ unless File.exists?(@user_choices[:input_filename])
86
+ warn "Input file not found (#{@user_choices[:input_filename]})"; exit false
87
+ end
88
+
89
+ unless File.readable?(@user_choices[:input_filename])
90
+ warn "Input file access denied (#{@user_choices[:input_filename]})"; exit false
91
+ end
92
+
72
93
  result = BreakVerter.convert(File.read(@user_choices[:input_filename]), @user_choices[:output].to_sym)
73
94
 
74
95
  if @user_choices[:output_filename] == '-'
75
96
  puts result
76
97
  else
77
98
  @user_choices[:output_filename]
78
- raise "Output file access denied (#{@user_choices[:output_filename]})" unless File.writable?(File.dirname(@user_choices[:output_filename]))
99
+
100
+ unless File.writable?(File.dirname(@user_choices[:output_filename]))
101
+ warn "Output file access denied (#{@user_choices[:output_filename]})"; exit false
102
+ end
103
+
79
104
  File.open(@user_choices[:output_filename], 'w') {|f| f.write(result)}
80
105
  end
81
106
  end
82
107
  end
83
108
 
84
109
  S4tUtils.with_pleasant_exceptions {BreakVerter::Application.new.execute}
110
+
111
+ __END__
112
+
113
+ Project: https://rubyforge.org/projects/aef/
114
+ RDoc: http://aef.rubyforge.org/breakverter/
115
+
116
+ Copyright 2009 Alexander E. Fischer <aef@raxys.net>
117
+
118
+ BreakVerter is free software: you can redistribute it and/or modify
119
+ it under the terms of the GNU General Public License as published by
120
+ the Free Software Foundation, either version 3 of the License, or
121
+ (at your option) any later version.
122
+
123
+ This program is distributed in the hope that it will be useful,
124
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
125
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
126
+ GNU General Public License for more details.
127
+
128
+ You should have received a copy of the GNU General Public License
129
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
data/lib/breakverter.rb CHANGED
@@ -17,7 +17,7 @@
17
17
 
18
18
  # Module containing a single method
19
19
  module BreakVerter
20
- VERSION = '1.1.0'
20
+ VERSION = '1.1.1'
21
21
 
22
22
  BREAKS = {
23
23
  :unix => "\n",
@@ -43,6 +43,10 @@ module BreakVerterSpecHelper
43
43
  def custom_fixture
44
44
  "AbcdeffnordAbcdeffnordAbcdef"
45
45
  end
46
+
47
+ def windows?
48
+ Sys::Uname.sysname.downcase.include?('windows')
49
+ end
46
50
  end
47
51
 
48
52
  describe BreakVerter do
@@ -105,7 +109,7 @@ describe BreakVerter do
105
109
  end
106
110
 
107
111
  it 'should accept BREAKVERTER_OUTPUT environment variable to specify output format' do
108
- if Sys::Uname.sysname.downcase.include?('windows')
112
+ if windows?
109
113
  `set BREAKVERTER_OUTPUT=mac`
110
114
  `#{RUBY_PATH} bin/breakverter --output mac spec/fixtures/windows.txt`.should eql(mac_fixture + "\n")
111
115
  else
@@ -114,7 +118,7 @@ describe BreakVerter do
114
118
  end
115
119
 
116
120
  it 'should use output format specified with -o even if BREAKVERTER_OUTPUT environment variable is set' do
117
- if Sys::Uname.sysname.downcase.include?('windows')
121
+ if windows?
118
122
  `set BREAKVERTER_OUTPUT=windows`
119
123
  `#{RUBY_PATH} bin/breakverter -o mac spec/fixtures/unix.txt`.should eql(mac_fixture + "\n")
120
124
  else
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: breakverter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander E. Fischer
@@ -29,7 +29,7 @@ cert_chain:
29
29
  55akF+N8NbO6tpVDy6TMagqa10LfEpiQH6dvDHe/xdAqYOCrXKpmqzwu2PI=
30
30
  -----END CERTIFICATE-----
31
31
 
32
- date: 2009-03-01 00:00:00 +01:00
32
+ date: 2009-03-08 00:00:00 +01:00
33
33
  default_executable:
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
metadata.gz.sig CHANGED
Binary file