ravicious-clothmark 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -29,18 +29,19 @@ Quick example:
29
29
  It converts the input file (bb_code.txt) to the HTML file (forum_post.html) using BBCode preprocessor.
30
30
 
31
31
  Wanna see help? No problem.
32
-
33
32
  $ clothmark -h
34
33
  Usage: clothmark [options]
35
34
  -h, --help Display this screen
36
35
  -i, --input FILE Specify input file (if it aren't specified, then first argument will be used)
37
36
  -o, --output FILE Specify output file
37
+ -ah, --additional-html Specify, do additional HTML and CSS will be used (default - false)
38
38
  -m, --markup LANG Specify markup language (markdown, textile or bbcode, default is markdown)
39
39
 
40
- So, there are three arguments:
40
+ So, there are four arguments:
41
41
  * -i or --input which specifies input file. If it isn't typed, then first argument will be used as an input file. This argument is required.
42
42
  * -o or --output which specifies output file. You don't have to specify it, because ClothMark generates filename for output file automatically.
43
43
  * -m or --markup which specifies markup language. If you don't specify it, then Markdown will be used as a choosed language.
44
+ * -ah or --additional-html which specifies, do additional HTML and CSS will be used. Default is set to false, but you can set it to true, just type this argument.
44
45
 
45
46
  All files will be created in the folder that contains a input file, e.g:
46
47
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.2.1
data/bin/clothmark CHANGED
@@ -18,12 +18,18 @@ optparse = OptionParser.new do |opts|
18
18
  options[:input] = arg
19
19
  end
20
20
 
21
- # If output aren't specified, then it will be an empty string
21
+ # If output isn't specified, then it will be an empty string
22
22
  options[:output] = ""
23
23
  opts.on('-o', '--output FILE', 'Specify output file') do |arg|
24
24
  options[:output] = arg || nil
25
25
  end
26
26
 
27
+ # If this option isn't specified, then it will be false
28
+ options[:additional_html] = false
29
+ opts.on('-ah', '--additional-html', 'Specify, do additional HTML and CSS will be used (default - false)') do
30
+ options[:additional_html] = true
31
+ end
32
+
27
33
  options[:markup] = "markdown"
28
34
  opts.on('-m', '--markup LANG', %w(markdown textile bbcode) ,'Specify markup language (markdown, textile or bbcode, default is markdown)') do |arg|
29
35
  options[:markup] = arg.downcase || "markdown"
@@ -36,22 +42,22 @@ begin
36
42
  rescue OptionParser::MissingArgument => e
37
43
  puts e
38
44
  puts "To see help, type:"
39
- puts "$ ruby #{__FILE__} -h"
45
+ puts "$ #{File.basename(__FILE__)} -h"
40
46
  exit
41
47
  rescue OptionParser::InvalidArgument => e
42
48
  puts e
43
49
  puts "To see accepted arguments, type:"
44
- puts "$ ruby #{__FILE__} -h"
50
+ puts "$ #{File.basename(__FILE__)} -h"
45
51
  exit
46
52
  end #begin
47
53
 
48
54
  case options[:markup]
49
55
  when 'markdown'
50
- @cloth = BlueMark.new(options[:input], options[:output])
56
+ @cloth = BlueMark.new(options[:input], options[:output], options[:additional_html])
51
57
  when 'textile'
52
- @cloth = RedMark.new(options[:input], options[:output])
58
+ @cloth = RedMark.new(options[:input], options[:output], options[:additional_html])
53
59
  when 'bbcode'
54
- @cloth = BBMark.new(options[:input], options[:output])
60
+ @cloth = BBMark.new(options[:input], options[:output], options[:additional_html])
55
61
  end
56
62
 
57
63
  @cloth.convert
data/clothmark.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{clothmark}
8
- s.version = "0.2.0"
8
+ s.version = "0.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Rafal Cieslak"]
@@ -5,7 +5,7 @@ module ClothMark
5
5
  HEADER = <<-EOF
6
6
  <html>
7
7
  <head>
8
- <style type="text/css">
8
+ <style type="text/css">
9
9
  #wrapper {
10
10
  width: 600px; margin: 0 auto;
11
11
  font-family: "Trebuchet MS", Verdana, sans-serif;
@@ -33,7 +33,7 @@ module ClothMark
33
33
  <body>
34
34
  <div id="wrapper">
35
35
  EOF
36
-
36
+
37
37
  # Footer for an output file.
38
38
  FOOTER = <<-EOF
39
39
  </div>
@@ -42,7 +42,7 @@ module ClothMark
42
42
  EOF
43
43
 
44
44
  # ClothMark will generate a default filename if user don't want to save output to a specific file.
45
- def initialize(file, output = nil)
45
+ def initialize(file, output = nil, additional_html = true)
46
46
  @file = file
47
47
  if (!output || output.empty?)
48
48
  @output = "#{file.gsub(/(\.[a-z]{3,4})/, '')}_clothmark.html"
@@ -50,15 +50,15 @@ module ClothMark
50
50
  @output = output
51
51
  end
52
52
  @data_for_output = []
53
+ @additional_html = additional_html # If true, then ClothMark will generate additional CSS and HTML
53
54
  end
54
55
 
55
56
  # Saves output to a file (one paragraph per line).
56
57
  def save_to_file
57
58
  File.open(@output, 'w+') do |file|
58
- file.puts HEADER
59
+ file.puts HEADER if @additional_html
59
60
  file.puts @data_for_output.join("\n")
60
- # @data_for_output.each {|line| file.puts "#{line} \n"}
61
- file.puts FOOTER
61
+ file.puts FOOTER if @additional_html
62
62
  end
63
63
  end
64
64
  end
@@ -10,40 +10,79 @@ describe ClothMark do
10
10
  @foo.output.should == 'nothing_special_clothmark.html'
11
11
  end
12
12
 
13
- it "should gets output if it is specified" do
13
+ it "should gets output filename if it is specified" do
14
14
  @bar = @klass.new('rails.txt', 'rubyonrails.txt')
15
15
  @bar.output.should == 'rubyonrails.txt'
16
16
  end
17
17
 
18
- it "should save data for output to the output file" do
19
- @foo.data_for_output = ['Donec ultrices tortor non lorem egestas ut pharetra diam vestibulum.',
18
+ it "should save valid data (one paragraph per line)" do
19
+ @foo.data_for_output = ['Donec ultrices tortor non lorem egestas ut pharetra diam vestibulum.',
20
20
  'Etiam magna urna, porta non scelerisque ut, porttitor non purus.',
21
21
  'Mauris blandit dui ac eros varius quis lacinia velit semper.']
22
22
 
23
23
  @foo.save_to_file
24
24
 
25
25
  counter = 0
26
- test_string = ''
27
26
 
28
27
  File.open(@foo.output, 'r') do |file|
29
28
  # There's more than one paragraph in 'input file' (data_for_output),
30
29
  # so we wan't a few paragraphs also in 'output' file.
31
30
  file.each_line do |line|
32
31
  counter += 1 unless line.empty?
33
- test_string << "#{line} \n"
34
32
  end
35
33
  end
36
34
 
37
35
  # File should have at least two paragraphs
38
36
  counter.should > 1
37
+ end
38
+
39
+ it "should save data for output to the output file with additional CSS and HTML" do
40
+ @foo.data_for_output = ["OH MY!"]
41
+ @foo.save_to_file
42
+
43
+ test_string = ''
39
44
 
45
+ # Puts each file from output to string for test
46
+ File.open(@foo.output, 'r') do |file|
47
+ file.each_line do |line|
48
+ test_string << "#{line} \n"
49
+ end
50
+ end
51
+
52
+ # Additional HTML and CSS should be added
40
53
  test_string.should match(/<html/)
41
54
  test_string.should match(/<head/)
55
+ test_string.should match(/<style/)
42
56
  test_string.should match(/<body/)
43
57
  end
44
-
58
+
59
+ it "should save data for output to the output file without additional HTML and CSS" do
60
+
61
+ @egg = @klass.new('example.txt', nil, false)
62
+
63
+ @egg.data_for_output = ["OH MY!"]
64
+ @egg.save_to_file
65
+
66
+ test_string = ''
67
+
68
+ # Puts each file from output to string for test
69
+ File.open(@egg.output, 'r') do |file|
70
+ file.each_line do |line|
71
+ test_string << "#{line} \n"
72
+ end
73
+ end
74
+
75
+ # Additional HTML and CSS should not be added
76
+ test_string.should_not match(/<html/)
77
+ test_string.should_not match(/<head/)
78
+ test_string.should_not match(/<style/)
79
+ test_string.should_not match(/<body/)
80
+ end
81
+
45
82
  after :all do
46
- # Remove testfile (output)
47
- FileUtils.rm(@foo.output)
83
+ # Remove testfiles (outputs)
84
+ [@foo.output, @egg.output].each do |file|
85
+ FileUtils.rm(file)
86
+ end
48
87
  end
49
88
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ravicious-clothmark
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rafal Cieslak