adamh-html_render 0.0.2 → 0.0.3

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/Rakefile CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
  require 'rake'
3
3
  require 'echoe'
4
4
 
5
- Echoe.new('html_render', '0.0.2') do |p|
5
+ Echoe.new('html_render', '0.0.3') do |p|
6
6
  p.description = 'Make images from HTML strings'
7
7
  p.url = 'http://adamhooper.com/eng'
8
8
  p.author = 'Adam Hooper'
data/html_render.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{html_render}
5
- s.version = "0.0.2"
5
+ s.version = "0.0.3"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Adam Hooper"]
9
- s.date = %q{2009-04-01}
9
+ s.date = %q{2009-04-16}
10
10
  s.description = %q{Make images from HTML strings}
11
11
  s.email = %q{adam@adamhooper.com}
12
12
  s.extra_rdoc_files = ["README.rdoc", "lib/html_render.rb", "lib/html_render/render_batches.rb", "lib/html_render/renderers.rb", "lib/html_render/images.rb", "lib/html_render/render_test.rb", "lib/html_render/render_test/rails.rb"]
@@ -26,15 +26,12 @@ Gem::Specification.new do |s|
26
26
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
27
27
  s.add_runtime_dependency(%q<httpclient>, [">= 2.1.4"])
28
28
  s.add_runtime_dependency(%q<rmagick>, [">= 2.9.1"])
29
- s.add_development_dependency(%q<echoe>, [">= 0"])
30
29
  else
31
30
  s.add_dependency(%q<httpclient>, [">= 2.1.4"])
32
31
  s.add_dependency(%q<rmagick>, [">= 2.9.1"])
33
- s.add_dependency(%q<echoe>, [">= 0"])
34
32
  end
35
33
  else
36
34
  s.add_dependency(%q<httpclient>, [">= 2.1.4"])
37
35
  s.add_dependency(%q<rmagick>, [">= 2.9.1"])
38
- s.add_dependency(%q<echoe>, [">= 0"])
39
36
  end
40
37
  end
@@ -75,7 +75,7 @@ module HTMLRender::RenderTest::Rails
75
75
  ""
76
76
  end
77
77
 
78
- private
78
+ protected
79
79
 
80
80
  def controller
81
81
  returning(ActionView::TestCase::TestController.new) do |controller|
@@ -96,4 +96,72 @@ module HTMLRender::RenderTest::Rails
96
96
  end
97
97
  end
98
98
  end
99
+
100
+ module TestCaseDefinitions
101
+ def create_test_case_from_path(relative_path, options)
102
+ clazz = options[:base_class] || RenderTest
103
+ base_path = options[:test_prefix]
104
+ servers = options[:servers]
105
+
106
+ test_path = absolute_test_path(relative_path, base_path)
107
+ run_path = absolute_run_path(relative_path, base_path)
108
+
109
+ setup_filename = File.join(test_path, 'setup.rb')
110
+ setup_code = File.open(setup_filename) { |f| f.read }
111
+
112
+ template_path = File.dirname(relative_path)
113
+ template_dirname = File.dirname(template_path)
114
+ template_basename = File.basename(template_path)
115
+ rails_template_basename = template_basename.sub(/^_/, '')
116
+ rails_template_path = File.join(template_dirname, rails_template_basename)
117
+
118
+ FileUtils.mkdir_p(run_path)
119
+
120
+ clazz.new(test_path, run_path) do |test_case|
121
+ test_case.instance_eval(<<-EOT, __FILE__, __LINE__)
122
+ def template_path
123
+ #{rails_template_path.inspect}
124
+ end
125
+ EOT
126
+
127
+ test_case.instance_eval(setup_code, setup_filename, 1)
128
+ end
129
+ end
130
+
131
+ def define_single_test(setup_path, base_path, servers, options)
132
+ relative_path = setup_path[(base_path.length + 1)..-10]
133
+ template_path = File.dirname(relative_path)
134
+ test_key = File.basename(relative_path)
135
+
136
+ self.test("Rendering #{template_path}, case '#{test_key}'") do
137
+ test_case = self.class.create_test_case_from_path(relative_path, options.merge(:test_prefix => base_path))
138
+ result = test_case.run(servers)
139
+ result.details.each do |server, detail|
140
+ assert(detail.pass?, "Should render properly on #{server}")
141
+ end
142
+ end
143
+ end
144
+
145
+ def define_tests(base_path, options)
146
+ servers = options.delete(:servers)
147
+
148
+ if !servers || !servers.is_a?(Hash)
149
+ raise ArgumentError.new("options[:servers] must be a hash of :unique_identifier => \"http://path.to.server/which/renders/pngs\"")
150
+ end
151
+
152
+ Dir.glob(File.join(base_path, '**', 'setup.rb')).each do |setup_path|
153
+ self.define_single_test(setup_path, base_path, servers, options)
154
+ end
155
+ end
156
+
157
+ private
158
+
159
+ def absolute_test_path(relative_path, base_path)
160
+ File.join(base_path, relative_path)
161
+ end
162
+
163
+ def absolute_run_path(relative_path, base_path)
164
+ File.join(absolute_test_path(relative_path, base_path), 'run')
165
+ end
166
+ end
99
167
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adamh-html_render
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Hooper
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-04-01 00:00:00 -07:00
12
+ date: 2009-04-16 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -32,16 +32,6 @@ dependencies:
32
32
  - !ruby/object:Gem::Version
33
33
  version: 2.9.1
34
34
  version:
35
- - !ruby/object:Gem::Dependency
36
- name: echoe
37
- type: :development
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- version: "0"
44
- version:
45
35
  description: Make images from HTML strings
46
36
  email: adam@adamhooper.com
47
37
  executables: []