tidy 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: []