simply 0.1.3 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -5,11 +5,11 @@ PROJECT_NAME = "simply"
5
5
  begin
6
6
  require 'jeweler'
7
7
  Jeweler::Tasks.new do |s|
8
- s.name = PROJECT_NAME
9
- s.summary = "A markaby-like html builder"
8
+ s.name = "simply"
9
+ s.summary = "A minimal markaby-esq ruby templating language"
10
10
  s.email = "scott@railsnewbie.com"
11
- s.homepage = "http://github.com/smtlaissezfaire/#{PROJECT_NAME.downcase}"
12
- s.description = "Cleaner + smaller markaby clone."
11
+ s.homepage = "http://github.com/smtlaissezfaire/simply"
12
+ s.description = "A minimal markaby-esq ruby templating language"
13
13
  s.authors = ["Scott Taylor"]
14
14
  end
15
15
  rescue LoadError
@@ -1,5 +1,5 @@
1
1
  ---
2
- :minor: 1
2
+ :minor: 2
3
3
  :patch: 3
4
4
  :major: 0
5
5
  :build:
@@ -0,0 +1,27 @@
1
+ # of iterations = 10000
2
+ Rehearsal ------------------------------------------------------------------------------
3
+ counter time 0.000000 0.000000 0.000000 ( 0.001055)
4
+ counter time + function call overhead time 0.000000 0.000000 0.000000 ( 0.002811)
5
+ tagz 2.540000 0.020000 2.560000 ( 2.744199)
6
+ markaby 9.940000 0.080000 10.020000 ( 10.658650)
7
+ builder 1.020000 0.010000 1.030000 ( 1.171982)
8
+ haml 5.500000 0.050000 5.550000 ( 6.917135)
9
+ erb 2.270000 0.010000 2.280000 ( 2.797811)
10
+ erubis 0.430000 0.010000 0.440000 ( 0.463208)
11
+ nokogiri 1.950000 0.020000 1.970000 ( 2.138772)
12
+ simply 2.330000 0.020000 2.350000 ( 2.550994)
13
+ erector 0.220000 0.000000 0.220000 ( 0.223103)
14
+ -------------------------------------------------------------------- total: 26.420000sec
15
+
16
+ user system total real
17
+ counter time 0.000000 0.000000 0.000000 ( 0.001063)
18
+ counter time + function call overhead time 0.000000 0.000000 0.000000 ( 0.004023)
19
+ tagz 2.480000 0.020000 2.500000 ( 3.047870)
20
+ markaby 9.880000 0.070000 9.950000 ( 10.771271)
21
+ builder 1.030000 0.010000 1.040000 ( 1.093748)
22
+ haml 5.650000 0.040000 5.690000 ( 6.100592)
23
+ erb 2.370000 0.030000 2.400000 ( 2.575887)
24
+ erubis 0.400000 0.000000 0.400000 ( 0.479711)
25
+ nokogiri 1.910000 0.020000 1.930000 ( 2.054972)
26
+ simply 2.320000 0.020000 2.340000 ( 2.604975)
27
+ erector 0.150000 0.000000 0.150000 ( 0.172422)
@@ -0,0 +1,27 @@
1
+ # of iterations = 10000
2
+ Rehearsal ------------------------------------------------------------------------------
3
+ counter time 0.000000 0.000000 0.000000 ( 0.001575)
4
+ counter time + function call overhead time 0.000000 0.000000 0.000000 ( 0.003454)
5
+ tagz 2.560000 0.020000 2.580000 ( 2.703877)
6
+ markaby 9.950000 0.070000 10.020000 ( 10.547215)
7
+ builder 1.030000 0.020000 1.050000 ( 1.096580)
8
+ haml 5.700000 0.030000 5.730000 ( 5.992496)
9
+ erb 2.400000 0.020000 2.420000 ( 2.540554)
10
+ erubis 0.420000 0.000000 0.420000 ( 0.441572)
11
+ nokogiri 1.940000 0.020000 1.960000 ( 2.038399)
12
+ simply 2.340000 0.010000 2.350000 ( 2.482033)
13
+ erector 0.210000 0.000000 0.210000 ( 0.212933)
14
+ -------------------------------------------------------------------- total: 26.740000sec
15
+
16
+ user system total real
17
+ counter time 0.000000 0.000000 0.000000 ( 0.001111)
18
+ counter time + function call overhead time 0.010000 0.000000 0.010000 ( 0.002913)
19
+ tagz 2.570000 0.020000 2.590000 ( 2.706161)
20
+ markaby 9.770000 0.060000 9.830000 ( 10.536178)
21
+ builder 1.030000 0.010000 1.040000 ( 1.083472)
22
+ haml 5.690000 0.040000 5.730000 ( 6.061707)
23
+ erb 2.380000 0.010000 2.390000 ( 2.513181)
24
+ erubis 0.420000 0.010000 0.430000 ( 0.445088)
25
+ nokogiri 1.890000 0.010000 1.900000 ( 2.005374)
26
+ simply 2.340000 0.020000 2.360000 ( 2.466595)
27
+ erector 0.160000 0.000000 0.160000 ( 0.164743)
@@ -143,7 +143,7 @@ def do_erector
143
143
  a "a link", :href => "url"
144
144
  end
145
145
  end
146
- end
146
+ end.to_pretty
147
147
  end
148
148
 
149
149
 
@@ -4,8 +4,7 @@ module Simply
4
4
  require "#{dir}/version"
5
5
  include Version
6
6
 
7
- require "rubygems"
8
- require "builder/xchar"
7
+ require "#{dir}/escaping"
9
8
  require "#{dir}/locals"
10
9
  require "#{dir}/indentation"
11
10
  require "#{dir}/html_tags"
@@ -0,0 +1,20 @@
1
+ module Simply
2
+ module Escaping
3
+ #
4
+ # A utility method for escaping HTML tag characters in _s_.
5
+ #
6
+ # Taken from ERB::Util
7
+ #
8
+ # puts html_escape("is a > 0 & a < 10?")
9
+ #
10
+ # _Generates_
11
+ #
12
+ # is a &gt; 0 &amp; a &lt; 10?
13
+ #
14
+ def html_escape(s)
15
+ s.to_s.gsub(/&/, "&amp;").gsub(/\"/, "&quot;").gsub(/>/, "&gt;").gsub(/</, "&lt;")
16
+ end
17
+
18
+ alias_method :h, :html_escape
19
+ end
20
+ end
@@ -1,6 +1,7 @@
1
1
  module Simply
2
2
  class HTMLBuilder
3
3
  include Locals
4
+ include Escaping
4
5
 
5
6
  unless defined?(SELF_CLOSING_TAGS)
6
7
  SELF_CLOSING_TAGS = HTMLTags::SELF_CLOSING_TAGS
@@ -14,7 +15,7 @@ module Simply
14
15
  self.locals = locals_hash
15
16
  end
16
17
 
17
- @indented = true if options[:indent] == true
18
+ @indented = options[:indented].equal?(false) ? false : true
18
19
  @out.extend Indentation if indented?
19
20
 
20
21
  instance_eval(&block) if block_given?
@@ -78,10 +79,6 @@ module Simply
78
79
  text html_escape(out)
79
80
  end
80
81
 
81
- def html_escape(out)
82
- out.to_s.to_xs
83
- end
84
-
85
82
  def to_s
86
83
  @out
87
84
  end
@@ -1,3 +1,5 @@
1
+ require "yaml"
2
+
1
3
  module Simply
2
4
  module Version
3
5
  unless defined?(Simply::VERSION)
@@ -9,4 +11,4 @@ module Simply
9
11
  VERSION = "#{MAJOR}.#{MINOR}.#{TINY}"
10
12
  end
11
13
  end
12
- end
14
+ end
@@ -2,53 +2,67 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{simply}
5
- s.version = "0.1.1"
5
+ s.version = "0.2.1"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Scott Taylor"]
9
- s.date = %q{2009-05-07}
10
- s.description = %q{TODO}
9
+ s.date = %q{2009-07-29}
10
+ s.description = %q{A minimal markaby-esq ruby templating language}
11
11
  s.email = %q{scott@railsnewbie.com}
12
12
  s.extra_rdoc_files = [
13
13
  "README"
14
14
  ]
15
15
  s.files = [
16
- "Rakefile",
17
- "VERSION.yml",
18
- "lib/simply.rb",
19
- "lib/simply/html_builder.rb",
20
- "lib/simply/html_tags.rb",
21
- "lib/simply/indentation.rb",
22
- "lib/simply/locals.rb",
23
- "lib/simply/version.rb",
24
- "spec/simply/html_builder/indentation_spec.rb",
25
- "spec/simply/html_builder/locals_spec.rb",
26
- "spec/simply/html_builder_spec.rb",
27
- "spec/simply/indentation_spec.rb",
28
- "spec/simply/simply_spec.rb",
29
- "spec/simply/version_spec.rb",
30
- "spec/spec.opts",
31
- "spec/spec_helper.rb"
16
+ ".gitignore",
17
+ "README",
18
+ "Rakefile",
19
+ "VERSION.yml",
20
+ "benchmarks/001_7a22450a80d6253bf9f0aabb2ee0110c2d67c8a6.out",
21
+ "benchmarks/002_e462499cd6bd8dface62e433311b3bc0b0b55a42",
22
+ "benchmarks/003_fd604401b1b03096ec35cdb3036821b92a71791b.out",
23
+ "benchmarks/004_b75e031f96b342559036444f502d44da7e7104f0.out",
24
+ "benchmarks/comparison.rb",
25
+ "lib/simply.rb",
26
+ "lib/simply/escaping.rb",
27
+ "lib/simply/html_builder.rb",
28
+ "lib/simply/html_tags.rb",
29
+ "lib/simply/indentation.rb",
30
+ "lib/simply/locals.rb",
31
+ "lib/simply/version.rb",
32
+ "profiling/run_static.rb",
33
+ "profiling/run_static_001_0e246c3de41a891c206c8cb5a552d17d78e4b8ec.out",
34
+ "reference/ABOUT",
35
+ "reference/xhtml1-frameset.xsd",
36
+ "reference/xhtml1-strict.xsd",
37
+ "reference/xhtml1-transitional.xsd",
38
+ "simply.gemspec",
39
+ "spec/simply/html_builder/indentation_spec.rb",
40
+ "spec/simply/html_builder/locals_spec.rb",
41
+ "spec/simply/html_builder_spec.rb",
42
+ "spec/simply/indentation_spec.rb",
43
+ "spec/simply/simply_spec.rb",
44
+ "spec/simply/version_spec.rb",
45
+ "spec/spec.opts",
46
+ "spec/spec_helper.rb"
32
47
  ]
33
- s.has_rdoc = true
34
48
  s.homepage = %q{http://github.com/smtlaissezfaire/simply}
35
49
  s.rdoc_options = ["--charset=UTF-8"]
36
50
  s.require_paths = ["lib"]
37
- s.rubygems_version = %q{1.3.1}
38
- s.summary = %q{TODO}
51
+ s.rubygems_version = %q{1.3.4}
52
+ s.summary = %q{A minimal markaby-esq ruby templating language}
39
53
  s.test_files = [
40
54
  "spec/simply/html_builder/indentation_spec.rb",
41
- "spec/simply/html_builder/locals_spec.rb",
42
- "spec/simply/html_builder_spec.rb",
43
- "spec/simply/indentation_spec.rb",
44
- "spec/simply/simply_spec.rb",
45
- "spec/simply/version_spec.rb",
46
- "spec/spec_helper.rb"
55
+ "spec/simply/html_builder/locals_spec.rb",
56
+ "spec/simply/html_builder_spec.rb",
57
+ "spec/simply/indentation_spec.rb",
58
+ "spec/simply/simply_spec.rb",
59
+ "spec/simply/version_spec.rb",
60
+ "spec/spec_helper.rb"
47
61
  ]
48
62
 
49
63
  if s.respond_to? :specification_version then
50
64
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
51
- s.specification_version = 2
65
+ s.specification_version = 3
52
66
 
53
67
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
54
68
  else
@@ -3,22 +3,22 @@ require File.dirname(__FILE__) + "/../../spec_helper"
3
3
  module Simply
4
4
  describe HTMLBuilder, "with indentation" do
5
5
  before(:each) do
6
- @builder = HTMLBuilder.new(:indent => true)
6
+ @builder = HTMLBuilder.new(:indented => true)
7
7
  end
8
8
 
9
- it "should be indented when passed :indent => true" do
10
- builder = HTMLBuilder.new(:indent => true)
9
+ it "should be indented when passed :indented => true" do
10
+ builder = HTMLBuilder.new(:indented => true)
11
11
  builder.should be_indented
12
12
  end
13
13
 
14
- it "should not be indented when passed :indent => false" do
15
- builder = HTMLBuilder.new(:indent => false)
14
+ it "should not be indented when passed :indented => false" do
15
+ builder = HTMLBuilder.new(:indented => false)
16
16
  builder.should_not be_indented
17
17
  end
18
18
 
19
- it "should not be indented by default" do
19
+ it "should be indented by default" do
20
20
  builder = HTMLBuilder.new
21
- builder.should_not be_indented
21
+ builder.should be_indented
22
22
  end
23
23
 
24
24
  it "should indent html when indented = true, and given a block structure" do
@@ -3,7 +3,7 @@ require File.dirname(__FILE__) + "/../../spec_helper"
3
3
  module Simply
4
4
  describe HTMLBuilder, "with locals" do
5
5
  before(:each) do
6
- @builder = HTMLBuilder.new
6
+ @builder = HTMLBuilder.new(:indented => false)
7
7
  end
8
8
 
9
9
  it "should have access to a variables value" do
@@ -36,7 +36,7 @@ module Simply
36
36
  end
37
37
 
38
38
  it "should take locals in the constructor" do
39
- builder = HTMLBuilder.new(:locals => { :foo => "bar", :bar => "baz" }) do
39
+ builder = HTMLBuilder.new(:locals => { :foo => "bar", :bar => "baz" }, :indented => false) do
40
40
  ul do
41
41
  li foo
42
42
  li bar
@@ -47,7 +47,7 @@ module Simply
47
47
  end
48
48
 
49
49
  it "should be able to pass in several sets of locals at different times" do
50
- builder = HTMLBuilder.new(:locals => {:foo => "1"})
50
+ builder = HTMLBuilder.new(:locals => {:foo => "1"}, :indented => false)
51
51
  builder.locals = {:bar => "2"}
52
52
  builder.ul do
53
53
  li foo
@@ -57,4 +57,4 @@ module Simply
57
57
  builder.to_s.should == "<ul><li>1</li><li>2</li></ul>"
58
58
  end
59
59
  end
60
- end
60
+ end
@@ -3,7 +3,7 @@ require File.dirname(__FILE__) + "/../spec_helper"
3
3
  module Simply
4
4
  describe HTMLBuilder do
5
5
  before(:each) do
6
- @builder = HTMLBuilder.new
6
+ @builder = HTMLBuilder.new(:indented => false)
7
7
  end
8
8
 
9
9
  it "should create a self-closing hr tag" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simply
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Taylor
@@ -13,7 +13,7 @@ date: 2009-11-09 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
16
- description: Cleaner + smaller markaby clone.
16
+ description: A minimal markaby-esq ruby templating language
17
17
  email: scott@railsnewbie.com
18
18
  executables: []
19
19
 
@@ -28,8 +28,11 @@ files:
28
28
  - VERSION.yml
29
29
  - benchmarks/001_7a22450a80d6253bf9f0aabb2ee0110c2d67c8a6.out
30
30
  - benchmarks/002_e462499cd6bd8dface62e433311b3bc0b0b55a42
31
+ - benchmarks/003_fd604401b1b03096ec35cdb3036821b92a71791b.out
32
+ - benchmarks/004_b75e031f96b342559036444f502d44da7e7104f0.out
31
33
  - benchmarks/comparison.rb
32
34
  - lib/simply.rb
35
+ - lib/simply/escaping.rb
33
36
  - lib/simply/html_builder.rb
34
37
  - lib/simply/html_tags.rb
35
38
  - lib/simply/indentation.rb
@@ -77,7 +80,7 @@ rubyforge_project:
77
80
  rubygems_version: 1.3.5
78
81
  signing_key:
79
82
  specification_version: 3
80
- summary: A markaby-like html builder
83
+ summary: A minimal markaby-esq ruby templating language
81
84
  test_files:
82
85
  - spec/simply/html_builder/indentation_spec.rb
83
86
  - spec/simply/html_builder/locals_spec.rb