work-bench 1.0.6 → 1.0.7

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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Workbench
2
2
 
3
- Workbench is a quick and simple local web server for prototyping web applications and sites. It support HAML, SASS and Compass out of the box.
3
+ Workbench is a quick and simple local web server for prototyping web applications and sites. It supports HAML, SASS and Compass out of the box.
4
4
 
5
5
  ## Install
6
6
 
@@ -8,11 +8,11 @@ The first step is to install the gem:
8
8
 
9
9
  gem install work-bench
10
10
 
11
- Workbench come with command line utility `workbench`.
11
+ Workbench comes with command line utility `workbench`.
12
12
 
13
13
  ## Create first project
14
14
 
15
- Next we need create project.
15
+ Next we need to create project.
16
16
 
17
17
  mkdir project
18
18
  cd project
@@ -24,7 +24,7 @@ Inside project directory run:
24
24
 
25
25
  workbench start
26
26
 
27
- Now type in the browser `http://localhost:4000`. And you will see the start page.
27
+ Now type in browser `http://localhost:4000`. And you will see the start page.
28
28
 
29
29
  ## Export prototype
30
30
 
@@ -44,13 +44,13 @@ You can specify the JS libraries to be used in your project.
44
44
 
45
45
  workbench init --js jquery json
46
46
 
47
- The list of libraries available:
47
+ List of libraries available:
48
48
 
49
49
  workbench js
50
50
 
51
51
  ## normalize.css
52
52
 
53
- You may add awesome [normalize.css](https://github.com/jonathantneal/normalize.css) to project. Just use `--normalize` or `--no-normalize` in options. This feature is **enabled** by default.
53
+ You can add awesome [normalize.css](https://github.com/jonathantneal/normalize.css) to project. Just use `--normalize` or `--no-normalize` in options. This feature is **enabled** by default.
54
54
 
55
55
  workbench init --normalize
56
56
 
data/Rakefile CHANGED
@@ -1 +1,6 @@
1
1
  require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new('spec')
5
+
6
+ task :default => :spec
@@ -32,7 +32,7 @@ module Workbench
32
32
  use Sass::Plugin::Rack
33
33
  use Rack::StaticCache, :urls => [ '/css', '/js', '/img', '/favicon.ico' ], :root => './public', :versioning => false
34
34
 
35
- run Workbench::Server.new
35
+ run Workbench::Server.new path
36
36
  }.to_app
37
37
  end
38
38
 
@@ -7,7 +7,7 @@ module Haml
7
7
  template = template + '.haml'
8
8
  template_dir = File.dirname(template)
9
9
  basename = File.basename(template)
10
- Workbench::Renderer.new(File.join(dir, template_dir, "_#{basename}")).render
10
+ Workbench::HamlRenderer.render File.join(dir, template_dir, "_#{basename}")
11
11
  end
12
12
 
13
13
  end
@@ -0,0 +1,35 @@
1
+ module Workbench
2
+
3
+ class HamlRenderer
4
+
5
+ @options = {
6
+ :escape_attrs => true,
7
+ :attr_wrapper => '"',
8
+ :format => :html4
9
+ }
10
+
11
+ class << self
12
+
13
+ # @return [Hash] the list of options
14
+ attr_accessor :options
15
+
16
+ # Parse HAML file with options
17
+ #
18
+ # @param [String] filename path to file
19
+ # @param [Hash] options options
20
+ # @return [String] parsed content
21
+ #
22
+ # @example
23
+ # result = Workbench::HamlRenderer.render 'index.haml', { :attr_wrapper => "'", :escape_attrs => false }
24
+ #
25
+ def render filename, options = {}
26
+ options = @options.merge(options)
27
+ Haml::Engine.new(File.read(filename), options).render
28
+ end
29
+
30
+ end
31
+
32
+ end
33
+
34
+ end
35
+
@@ -2,10 +2,13 @@ module Workbench
2
2
 
3
3
  class Server
4
4
 
5
+ def initialize path
6
+ @path = path
7
+ end
8
+
5
9
  def call(env)
6
10
  req = Rack::Request.new(env)
7
- file = File.join($root, 'haml', '/' == req.path ? 'index.haml' : req.path)
8
- $file = file
11
+ file = File.join(@path, 'haml', '/' == req.path ? 'index.haml' : req.path)
9
12
  ext = File.extname(file)
10
13
  if ext.empty?
11
14
  file = file + '.haml'
@@ -15,7 +18,7 @@ module Workbench
15
18
  Rack::File.new(File.join($root, 'haml')).call(env)
16
19
  else
17
20
  if File.exists? file
18
- [ 200, {'Content-Type' => 'text/html'}, [Workbench::Renderer.new(file).render] ]
21
+ [ 200, {'Content-Type' => 'text/html'}, [Workbench::HamlRenderer.render(file)] ]
19
22
  else
20
23
  [ 404, {'Content-Type' => 'text/html'}, ['File not found: '+req.path] ]
21
24
  end
@@ -1,3 +1,3 @@
1
1
  module Workbench
2
- VERSION = "1.0.6"
2
+ VERSION = "1.0.7"
3
3
  end
data/lib/work_bench.rb CHANGED
@@ -4,7 +4,7 @@ require 'work_bench/js_libs'
4
4
  require 'work_bench/application'
5
5
  require 'work_bench/cli'
6
6
  require 'work_bench/server'
7
- require 'work_bench/renderer'
7
+ require 'work_bench/haml_renderer'
8
8
  require 'work_bench/haml_helpers'
9
9
  require 'work_bench/exporter'
10
10
 
@@ -0,0 +1 @@
1
+ %h1{:style => "color: red", :title => "&"} Hello world!
@@ -0,0 +1,20 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe Workbench::HamlRenderer do
5
+
6
+ before do
7
+ @root = File.dirname(__FILE__) + '/fixtures'
8
+ end
9
+
10
+ it 'должен рендерить HAML файл' do
11
+ result = Workbench::HamlRenderer.render "#{@root}/index.haml"
12
+ result.should == "<h1 style=\"color: red\" title=\"&amp;\">Hello world!</h1>\n"
13
+ end
14
+
15
+ it 'должен рендерить HAML файл с указанными опциями' do
16
+ result = Workbench::HamlRenderer.render "#{@root}/index.haml", { :attr_wrapper => "'", :escape_attrs => false }
17
+ result.should == "<h1 style='color: red' title='&'>Hello world!</h1>\n"
18
+ end
19
+
20
+ end
@@ -0,0 +1,6 @@
1
+ $LOAD_PATH << File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+
3
+ require 'rubygems'
4
+
5
+ require 'work_bench'
6
+ require 'rspec'
data/work_bench.gemspec CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
20
20
 
21
21
  s.add_development_dependency "yard"
22
22
  s.add_development_dependency "maruku"
23
+ s.add_development_dependency "rspec"
23
24
 
24
25
  s.add_dependency "rack"
25
26
  s.add_dependency "rack-test"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: work-bench
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-10 00:00:00.000000000Z
12
+ date: 2011-11-11 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: yard
16
- requirement: &70357638679500 !ruby/object:Gem::Requirement
16
+ requirement: &70227779148420 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70357638679500
24
+ version_requirements: *70227779148420
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: maruku
27
- requirement: &70357638679040 !ruby/object:Gem::Requirement
27
+ requirement: &70227779147860 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,21 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70357638679040
35
+ version_requirements: *70227779147860
36
+ - !ruby/object:Gem::Dependency
37
+ name: rspec
38
+ requirement: &70227779147420 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70227779147420
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: rack
38
- requirement: &70357638678560 !ruby/object:Gem::Requirement
49
+ requirement: &70227779146960 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ! '>='
@@ -43,10 +54,10 @@ dependencies:
43
54
  version: '0'
44
55
  type: :runtime
45
56
  prerelease: false
46
- version_requirements: *70357638678560
57
+ version_requirements: *70227779146960
47
58
  - !ruby/object:Gem::Dependency
48
59
  name: rack-test
49
- requirement: &70357638678140 !ruby/object:Gem::Requirement
60
+ requirement: &70227779146460 !ruby/object:Gem::Requirement
50
61
  none: false
51
62
  requirements:
52
63
  - - ! '>='
@@ -54,10 +65,10 @@ dependencies:
54
65
  version: '0'
55
66
  type: :runtime
56
67
  prerelease: false
57
- version_requirements: *70357638678140
68
+ version_requirements: *70227779146460
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: unicorn
60
- requirement: &70357638677640 !ruby/object:Gem::Requirement
71
+ requirement: &70227779145940 !ruby/object:Gem::Requirement
61
72
  none: false
62
73
  requirements:
63
74
  - - ! '>='
@@ -65,10 +76,10 @@ dependencies:
65
76
  version: '0'
66
77
  type: :runtime
67
78
  prerelease: false
68
- version_requirements: *70357638677640
79
+ version_requirements: *70227779145940
69
80
  - !ruby/object:Gem::Dependency
70
81
  name: haml
71
- requirement: &70357638677140 !ruby/object:Gem::Requirement
82
+ requirement: &70227779145380 !ruby/object:Gem::Requirement
72
83
  none: false
73
84
  requirements:
74
85
  - - ! '>='
@@ -76,10 +87,10 @@ dependencies:
76
87
  version: '0'
77
88
  type: :runtime
78
89
  prerelease: false
79
- version_requirements: *70357638677140
90
+ version_requirements: *70227779145380
80
91
  - !ruby/object:Gem::Dependency
81
92
  name: compass
82
- requirement: &70357638676600 !ruby/object:Gem::Requirement
93
+ requirement: &70227779144700 !ruby/object:Gem::Requirement
83
94
  none: false
84
95
  requirements:
85
96
  - - ! '>='
@@ -87,10 +98,10 @@ dependencies:
87
98
  version: '0'
88
99
  type: :runtime
89
100
  prerelease: false
90
- version_requirements: *70357638676600
101
+ version_requirements: *70227779144700
91
102
  - !ruby/object:Gem::Dependency
92
103
  name: rack-cache
93
- requirement: &70357638676080 !ruby/object:Gem::Requirement
104
+ requirement: &70227779142920 !ruby/object:Gem::Requirement
94
105
  none: false
95
106
  requirements:
96
107
  - - ! '>='
@@ -98,10 +109,10 @@ dependencies:
98
109
  version: '0'
99
110
  type: :runtime
100
111
  prerelease: false
101
- version_requirements: *70357638676080
112
+ version_requirements: *70227779142920
102
113
  - !ruby/object:Gem::Dependency
103
114
  name: rack-contrib
104
- requirement: &70357638675420 !ruby/object:Gem::Requirement
115
+ requirement: &70227779142460 !ruby/object:Gem::Requirement
105
116
  none: false
106
117
  requirements:
107
118
  - - ! '>='
@@ -109,10 +120,10 @@ dependencies:
109
120
  version: '0'
110
121
  type: :runtime
111
122
  prerelease: false
112
- version_requirements: *70357638675420
123
+ version_requirements: *70227779142460
113
124
  - !ruby/object:Gem::Dependency
114
125
  name: thor
115
- requirement: &70357638673580 !ruby/object:Gem::Requirement
126
+ requirement: &70227779141900 !ruby/object:Gem::Requirement
116
127
  none: false
117
128
  requirements:
118
129
  - - ! '>='
@@ -120,7 +131,7 @@ dependencies:
120
131
  version: '0'
121
132
  type: :runtime
122
133
  prerelease: false
123
- version_requirements: *70357638673580
134
+ version_requirements: *70227779141900
124
135
  description: A quick and simple local web server for prototyping web applications
125
136
  with HAML, SASS and Compass support.
126
137
  email: konstantin.savelyev@gmail.com
@@ -141,10 +152,13 @@ files:
141
152
  - lib/work_bench/dependencies.rb
142
153
  - lib/work_bench/exporter.rb
143
154
  - lib/work_bench/haml_helpers.rb
155
+ - lib/work_bench/haml_renderer.rb
144
156
  - lib/work_bench/js_libs.rb
145
- - lib/work_bench/renderer.rb
146
157
  - lib/work_bench/server.rb
147
158
  - lib/work_bench/version.rb
159
+ - spec/fixtures/index.haml
160
+ - spec/haml_renderer_spec.rb
161
+ - spec/spec_helper.rb
148
162
  - template/Gemfile
149
163
  - template/_normalize.scss
150
164
  - template/index.haml
@@ -176,5 +190,8 @@ signing_key:
176
190
  specification_version: 3
177
191
  summary: A quick and simple local web server for prototyping web applications with
178
192
  HAML, SASS and Compass support.
179
- test_files: []
193
+ test_files:
194
+ - spec/fixtures/index.haml
195
+ - spec/haml_renderer_spec.rb
196
+ - spec/spec_helper.rb
180
197
  has_rdoc:
@@ -1,22 +0,0 @@
1
- module Workbench
2
-
3
- class Renderer
4
-
5
- def initialize file, options = {}
6
- @file = file
7
- @options = {
8
- :escape_attrs => true,
9
- :attr_wrapper => '"',
10
- :format => :html4
11
- }.merge(options)
12
-
13
- end
14
-
15
- def render
16
- engine = Haml::Engine.new(File.read(@file), @options)
17
- engine.render
18
- end
19
-
20
- end
21
-
22
- end