tidy 1.0.1 → 1.1.0

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/CHANGES CHANGED
@@ -1,3 +1,11 @@
1
+ V 1.1.0 2005/02/21
2
+
3
+ - $TIDYLIB global eliminated
4
+ Path to the library is now specified as follows:
5
+ Tidy.path = '/path/to/tidylib.so'
6
+
7
+ - minor code/docs/gemspec cleanup
8
+
1
9
  V 1.0.1
2
10
 
3
11
  .sub calls changed to .gsub
@@ -13,13 +13,14 @@ Requirements
13
13
  Install
14
14
  -------
15
15
 
16
- - Download library from http://tidy.sf.net (pre-compiled versions available)
16
+ - Download library from http://tidy.sf.net (pre-compiled versions available).
17
17
 
18
- - Download the tidy .gem file to a directory. Then type:
19
-
20
- $ gem install tidy .gem
21
-
22
- - Open test/usage.rb, edit $TIDYLIB to point to your compiled tidy library, run.
18
+ - Install files using one of the following:
19
+
20
+ $ gem install tidy-x-x-x.gem
21
+ $ ruby install.rb
22
+
23
+ - Open test/usage.rb, change Tidy.path to point to your compiled Tidy library, run.
23
24
 
24
25
  Usage
25
26
  -----
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.1
1
+ 1.1.0
@@ -0,0 +1,11 @@
1
+ require 'rbconfig'
2
+ require 'ftools'
3
+
4
+ # Install lib
5
+ dst_dir = Config::CONFIG['sitelibdir']
6
+ Dir.chdir('lib') {
7
+ Dir['**/*'].reject { |f| f =~ /\.(cvs|gem|svn)($|\/)/i or not File.file?(f) }.each { |file|
8
+ File.mkpath File.join(dst_dir, File.dirname(file)), true
9
+ File.install file, File.join(dst_dir, file), 0644, true
10
+ }
11
+ }
@@ -1,10 +1,9 @@
1
- # Ruby interface to HTML Tidy Library Project (http://tidy.sf.net)
1
+ # Ruby interface to HTML Tidy Library Project (http://tidy.sf.net).
2
2
  #
3
- # = Usage
3
+ # =Usage
4
4
  #
5
- # $TIDYLIB = '/usr/lib/tidylib.so'
6
- # require 'rubygems'
7
- # require_gem 'tidy'
5
+ # require 'tidy'
6
+ # Tidy.path = '/usr/lib/tidylib.so'
8
7
  # html = '<html><title>title</title>Body</html>'
9
8
  # xml = Tidy.open(:show_warnings=>true) do |tidy|
10
9
  # tidy.options.output_xml = true
@@ -31,17 +30,29 @@ module Tidy
31
30
 
32
31
  module_function
33
32
 
34
- # Return a Tidyobj instance
33
+ # Return a Tidyobj instance.
35
34
  #
36
35
  def new(options=nil)
37
36
  Tidyobj.new(options)
38
37
  end
39
38
 
40
- # With no block, open is a synonym for Tidy.new .
39
+ # Path to Tidylib.
40
+ #
41
+ def path() @path end
42
+
43
+ # Set the path to Tidylib (automatically loads the library).
44
+ #
45
+ def path=(path)
46
+ Tidylib.load(path)
47
+ @path = path
48
+ end
49
+
50
+ # With no block, open is a synonym for Tidy.new.
41
51
  # If a block is present, it is passed aTidy as a parameter.
42
- # aTidyObj.release is ensured at end of the block
52
+ # aTidyObj.release is ensured at end of the block.
43
53
  #
44
54
  def open(options=nil)
55
+ raise "Tidy.path was not specified." unless @path
45
56
  tidy = Tidy.new(options)
46
57
  if block_given?
47
58
  begin
@@ -55,11 +66,10 @@ module Tidy
55
66
  end
56
67
 
57
68
  # Convert to boolean.
58
- # 0, false and nil return false, anything else true
69
+ # 0, false and nil return false, anything else true.
59
70
  #
60
71
  def to_b(value)
61
- return false if [0,false,nil].include?(value)
62
- true
72
+ [0,false,nil].include?(value) ? false : true
63
73
  end
64
74
 
65
75
  end
@@ -1,14 +1,14 @@
1
- # Buffer structure
1
+ # Buffer structure.
2
2
  #
3
3
  class Tidybuf
4
4
 
5
5
  extend DL::Importable
6
6
 
7
- # Access TidyBuffer instance
7
+ # Access TidyBuffer instance.
8
8
  #
9
9
  attr_reader(:struct)
10
10
 
11
- # Mimic TidyBuffer
11
+ # Mimic TidyBuffer.
12
12
  #
13
13
  TidyBuffer = struct [
14
14
  "byte* bp",
@@ -17,23 +17,23 @@ class Tidybuf
17
17
  "uint next"
18
18
  ]
19
19
 
20
- def initialize()
20
+ def initialize
21
21
  @struct = TidyBuffer.malloc
22
22
  end
23
23
 
24
- # Free current contents and zero out
24
+ # Free current contents and zero out.
25
25
  #
26
- def free()
26
+ def free
27
27
  Tidylib.buf_free(@struct)
28
28
  end
29
29
 
30
- # Convert to array
30
+ # Convert to array.
31
31
  #
32
32
  def to_a
33
33
  to_s.split("\r\n")
34
34
  end
35
35
 
36
- # Convert to string
36
+ # Convert to string.
37
37
  #
38
38
  def to_s
39
39
  @struct.bp.to_s
@@ -1,21 +1,21 @@
1
- # Parameterized error message
1
+ # Parameterized error message.
2
2
  #
3
3
  class Tidyerr < String
4
4
 
5
- # Error parameter
5
+ # Error parameter.
6
6
  #
7
7
  attr_reader :severity, :line, :column, :message
8
8
 
9
- # Create new instance
9
+ # Create new instance.
10
10
  #
11
11
  def initialize(error)
12
12
  super(error.to_s)
13
13
  parameterize
14
14
  end
15
15
 
16
- # Parse error message into parameters (where applicable)
16
+ # Parse error message into parameters (where applicable).
17
17
  #
18
- def parameterize()
18
+ def parameterize
19
19
  if to_str[0,4] == 'line'
20
20
  tokens = to_str.split(' ', 7)
21
21
  @severity = tokens[5][0,1] # W or E
@@ -1,4 +1,4 @@
1
- # Ruby wrapper for HTML Tidy Library Project (http://tidy.sf.net)
1
+ # Ruby wrapper for HTML Tidy Library Project (http://tidy.sf.net).
2
2
  #
3
3
  module Tidylib
4
4
 
@@ -6,14 +6,13 @@ module Tidylib
6
6
 
7
7
  module_function
8
8
 
9
- # Load library (requires that $TIDYLIB be defined)
9
+ # Load the library.
10
10
  #
11
- def load()
12
- raise LoadError, 'Tidy requires that $TIDYLIB be defined' if $TIDYLIB.nil?
11
+ def load(path)
13
12
  begin
14
- dlload($TIDYLIB)
13
+ dlload(path)
15
14
  rescue
16
- raise LoadError, sprintf('Unable to load %s', $TIDYLIB)
15
+ raise LoadError, "Unable to load #{path}"
17
16
  end
18
17
  extern "void *tidyCreate()"
19
18
  extern "void tidyBufFree(void*)"
@@ -38,8 +37,8 @@ module Tidylib
38
37
 
39
38
  # tidyCreate
40
39
  #
41
- def create()
42
- tidyCreate()
40
+ def create
41
+ tidyCreate
43
42
  end
44
43
 
45
44
  # tidyCleanAndRepair
@@ -81,8 +80,8 @@ module Tidylib
81
80
 
82
81
  # tidyReleaseDate
83
82
  #
84
- def release_date()
85
- tidyReleaseDate()
83
+ def release_date
84
+ tidyReleaseDate
86
85
  end
87
86
 
88
87
  # tidyRunDiagnostics
@@ -103,13 +102,10 @@ module Tidylib
103
102
  tidySetErrorBuffer(doc, buf)
104
103
  end
105
104
 
106
- # Convert to string replacing underscores with dashes.
107
- # :output_xml becomes 'output-xml'
105
+ # Convert to string, replace underscores with dashes (:output_xml => 'output-xml').
108
106
  #
109
107
  def translate_name(name)
110
108
  name.to_s.gsub('_', '-')
111
109
  end
112
110
 
113
111
  end
114
-
115
- Tidylib.load
@@ -1,25 +1,25 @@
1
- # Ruby interface to Tidylib
1
+ # Ruby interface to Tidylib.
2
2
  #
3
3
  class Tidyobj
4
4
 
5
- # Diagnostics Buffer (Array of String)
5
+ # Diagnostics Buffer (Array of String).
6
6
  #
7
7
  attr_reader(:diagnostics)
8
8
 
9
- # Access the tidy instance
9
+ # Access the tidy instance.
10
10
  #
11
11
  attr_reader(:doc)
12
12
 
13
- # Error Buffer (Array of Tidyerr)
13
+ # Error Buffer (Array of Tidyerr).
14
14
  #
15
15
  attr_reader(:errors)
16
16
 
17
- # Options interface (Tidyopt)
17
+ # Options interface (Tidyopt).
18
18
  #
19
19
  attr_reader(:options)
20
20
 
21
21
  # Construct a new instance.
22
- # Receives a hash of options to be set
22
+ # Receives a hash of options to be set.
23
23
  #
24
24
  def initialize(options=nil)
25
25
  @diagnostics = Array.new
@@ -35,13 +35,13 @@ class Tidyobj
35
35
  end
36
36
  end
37
37
 
38
- # Clean and Repair
38
+ # Clean and Repair.
39
39
  #
40
40
  def clean(str)
41
41
  verify_doc
42
42
  rc = -1
43
43
 
44
- # Clean and repair the string
44
+ # Clean and repair the string.
45
45
  #
46
46
  rc = Tidylib.parse_string(@doc, str) # Parse the input
47
47
  rc = Tidylib.clean_and_repair(@doc) if rc >= 0 # Tidy it up!
@@ -49,14 +49,14 @@ class Tidyobj
49
49
  rc = Tidylib.save_buffer(@doc, @outbuf.struct) if rc >= 0 # Pretty Print
50
50
  verify_severe(rc)
51
51
 
52
- # Save and clear output/errors
52
+ # Save and clear output/errors.
53
53
  #
54
54
  output = @outbuf.to_s
55
55
  @errors = @errbuf.to_a.collect { |e| Tidyerr.new(e) }
56
56
  @outbuf.free
57
57
  @errbuf.free
58
58
 
59
- # Save diagnostics
59
+ # Save diagnostics.
60
60
  #
61
61
  rc = Tidylib.run_diagnostics(@doc)
62
62
  verify_severe(rc)
@@ -66,36 +66,36 @@ class Tidyobj
66
66
  output
67
67
  end
68
68
 
69
- # Load a tidy config file
69
+ # Load a tidy config file.
70
70
  #
71
71
  def load_config(file)
72
72
  verify_doc
73
73
  rc = Tidylib.load_config(@doc, file)
74
74
  case rc
75
- when -1 then raise LoadError, sprintf('%s does not exist', file)
76
- when 1 then raise LoadError, sprintf('errors parsing %s', file)
75
+ when -1 then raise LoadError, "#{file} does not exist"
76
+ when 1 then raise LoadError, "errors parsing #{file}"
77
77
  end
78
78
  rc
79
79
  end
80
80
 
81
- # Clear the tidy instance
81
+ # Clear the tidy instance.
82
82
  #
83
- def release()
83
+ def release
84
84
  verify_doc
85
85
  Tidylib.release(@doc)
86
86
  @doc = nil
87
87
  end
88
88
 
89
- # Raise an error if the tidy document is invalid
89
+ # Raise an error if the tidy document is invalid.
90
90
  #
91
- def verify_doc()
91
+ def verify_doc
92
92
  raise TypeError, 'Invalid Tidy document' unless @doc.class == DL::PtrData
93
93
  end
94
94
 
95
- # Raise severe error based on tidy status value
95
+ # Raise severe error based on tidy status value.
96
96
  #
97
97
  def verify_severe(rc)
98
- raise sprintf("A severe error (%d) occurred.\n", rc) if rc < 0
98
+ raise "A severe error (#{rc}) occurred.\n" if rc < 0
99
99
  end
100
100
 
101
101
  protected :verify_doc, :verify_severe
@@ -1,26 +1,26 @@
1
- # Ruby interface to Tidylib options
1
+ # Ruby interface to Tidylib options.
2
2
  #
3
3
  class Tidyopt
4
4
 
5
- # Construct a new instance
5
+ # Construct a new instance.
6
6
  #
7
7
  def initialize(doc)
8
8
  @doc = doc
9
9
  end
10
10
 
11
- # Reader for options (Hash syntax)
11
+ # Reader for options (Hash syntax).
12
12
  #
13
13
  def [](name)
14
14
  Tidylib.opt_get_value(@doc, name)
15
15
  end
16
16
 
17
- # Writer for options (Hash syntax)
17
+ # Writer for options (Hash syntax).
18
18
  #
19
19
  def []=(name, value)
20
20
  Tidylib.opt_parse_value(@doc, name, value)
21
21
  end
22
22
 
23
- # Reader/Writer for options (Object syntax)
23
+ # Reader/Writer for options (Object syntax).
24
24
  #
25
25
  def method_missing(name, value=:none, *args)
26
26
  name = name.to_s.gsub('=', '')
@@ -1,6 +1,6 @@
1
- $TIDYLIB = '/usr/lib/tidylib.so'
2
- require 'rubygems'
3
- require_gem 'tidy'
1
+ $LOAD_PATH.unshift('../lib')
2
+ require 'tidy'
3
+ Tidy.path = '/usr/lib/tidylib.so'
4
4
  html = '<html><title>title</title>Body</html>'
5
5
  xml = Tidy.open(:show_warnings=>true) do |tidy|
6
6
  tidy.options.output_xml = true
@@ -1,13 +1,19 @@
1
1
  require 'rubygems'
2
+
3
+ version = File.read('VERSION').strip
4
+ raise "no version" if version.empty?
5
+
2
6
  spec = Gem::Specification.new do |s|
3
- s.name = "tidy"
4
- s.version = File.read("VERSION").strip
5
- s.summary = "Ruby interface to HTML Tidy Library Project"
6
- s.description = s.summary+" (http://tidy.sf.net)"
7
- s.files = Dir.glob("**/*").delete_if { |item| item.include?("CVS") }
7
+ s.name = 'tidy'
8
+ s.version = version
9
+ s.author = 'Kevin Howe'
10
+ s.email = 'kh@newclear.ca'
11
+ s.homepage = 'tidy.rubyforge.org'
12
+ s.platform = Gem::Platform::RUBY
13
+ s.summary = 'Ruby interface to HTML Tidy Library Project'
14
+ s.files = Dir['**/*'].delete_if { |f| f =~ /(cvs|gem|svn)$/i }
8
15
  s.require_path = 'lib'
9
- s.autorequire = 'tidy'
16
+ s.rdoc_options << '--all' << '--inline-source' << '--main' << 'lib/tidy.rb'
10
17
  s.has_rdoc = true
11
- s.author = "Kevin Howe"
12
- s.homepage = "http://www.newclear.ca/ruby/tidy/"
18
+ s.rubyforge_project = 'tidy'
13
19
  end
metadata CHANGED
@@ -1,19 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.1
2
+ rubygems_version: 0.8.3
3
3
  specification_version: 1
4
4
  name: tidy
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.0.1
7
- date: 2005-01-13
6
+ version: 1.1.0
7
+ date: 2005-02-21
8
8
  summary: Ruby interface to HTML Tidy Library Project
9
9
  require_paths:
10
10
  - lib
11
- author: Kevin Howe
12
- email:
13
- homepage: http://www.newclear.ca/ruby/tidy/
14
- rubyforge_project:
15
- description: Ruby interface to HTML Tidy Library Project (http://tidy.sf.net)
16
- autorequire: tidy
11
+ email: kh@newclear.ca
12
+ homepage: tidy.rubyforge.org
13
+ rubyforge_project: tidy
14
+ description:
15
+ autorequire:
17
16
  default_executable:
18
17
  bindir: bin
19
18
  has_rdoc: true
@@ -25,6 +24,8 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
25
24
  version: 0.0.0
26
25
  version:
27
26
  platform: ruby
27
+ authors:
28
+ - Kevin Howe
28
29
  files:
29
30
  - test
30
31
  - lib
@@ -33,6 +34,7 @@ files:
33
34
  - CHANGES
34
35
  - tidy.gemspec
35
36
  - README.txt.en
37
+ - install.rb
36
38
  - test/usage.rb
37
39
  - lib/tidy
38
40
  - lib/tidy.rb
@@ -42,7 +44,11 @@ files:
42
44
  - lib/tidy/tidybuf.rb
43
45
  - lib/tidy/tidyopt.rb
44
46
  test_files: []
45
- rdoc_options: []
47
+ rdoc_options:
48
+ - "--all"
49
+ - "--inline-source"
50
+ - "--main"
51
+ - lib/tidy.rb
46
52
  extra_rdoc_files: []
47
53
  executables: []
48
54
  extensions: []