zorglub 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/lib/zorglub.rb CHANGED
@@ -1,13 +1,8 @@
1
1
  #! /usr/bin/env ruby
2
2
  # -*- coding: UTF-8 -*-
3
3
  #
4
+ require 'version'
4
5
  require 'zorglub/node'
5
6
  require 'zorglub/app'
6
7
  #
7
- module Zorglub
8
- #
9
- VERSION = '0.0.5'
10
- #
11
- end
12
- #
13
8
  # EOF
@@ -0,0 +1,9 @@
1
+ vbar {
2
+ width: 80%;
3
+ height: 23px;
4
+ ul { list-style-type: none; }
5
+ li {
6
+ float: left;
7
+ a { font-weight: bold; }
8
+ }
9
+ }
data/spec/node_spec.rb CHANGED
@@ -199,25 +199,29 @@ describe Zorglub do
199
199
  Node5.layout.should be_nil
200
200
  end
201
201
  #
202
- it "inherited_vars should be inherited and extended" do
202
+ it "cli_vals should be inherited and extended" do
203
203
  r = Node5.my_call '/index'
204
204
  vars = YAML.load r.body[0]
205
205
  vars.should == ['js0','js1','js3','jsx','css0','css1','css2']
206
206
  vars[7].should be_nil
207
207
  end
208
208
  #
209
- it "inherited_vars should be extended at method level" do
209
+ it "cli_vals should be extended at method level" do
210
210
  r = Node4.my_call '/more'
211
211
  vars = YAML.load r.body[0]
212
212
  vars.should == ['js0','js1','js2']
213
213
  vars[3].should be_nil
214
214
  end
215
215
  #
216
- it "inherited_vars should be untouched" do
216
+ it "cli_vals should be untouched" do
217
217
  r = Node4.my_call '/index'
218
218
  vars = YAML.load r.body[0]
219
219
  vars.should == ['js0','js1']
220
220
  vars[2].should be_nil
221
+ r = Node5.my_call '/index'
222
+ vars = YAML.load r.body[0]
223
+ vars.should == ['js0','js1','js3','jsx','css0','css1','css2']
224
+ vars[7].should be_nil
221
225
  end
222
226
  #
223
227
  it "ext definition and file engine should work" do
@@ -228,8 +232,21 @@ describe Zorglub do
228
232
  end
229
233
  #
230
234
  it "haml engine should work" do
235
+ Node0.app.opt! :engines_cache_enabled, false
231
236
  r = Node0.my_call '/engines/haml'
232
237
  r.body[0].should == "<h1>Hello world</h1>\n"
238
+ Node0.app.opt! :engines_cache_enabled, true
239
+ r = Node0.my_call '/engines/haml'
240
+ r.body[0].should == "<h1>Hello world</h1>\n"
241
+ end
242
+ #
243
+ it "sass engine should work" do
244
+ Node0.app.opt! :engines_cache_enabled, true
245
+ r = Node0.my_call '/engines/sass'
246
+ r.body[0].should == "vbar{width:80%;height:23px}vbar ul{list-style-type:none}vbar li{float:left}vbar li a{font-weight:bold}\n"
247
+ Node0.app.opt! :engines_cache_enabled, false
248
+ r = Node0.my_call '/engines/sass'
249
+ r.body[0].should == "vbar{width:80%;height:23px}vbar ul{list-style-type:none}vbar li{float:left}vbar li a{font-weight:bold}\n"
233
250
  end
234
251
  #
235
252
  it "view_base_path! should work" do
data/spec/spec_helper.rb CHANGED
@@ -13,6 +13,7 @@ require 'yaml'
13
13
  require 'zorglub'
14
14
  require 'zorglub/engines/file'
15
15
  require 'zorglub/engines/haml'
16
+ require 'zorglub/engines/sass'
16
17
  #
17
18
  HASH_PROC = Proc.new { |path,obj| {:path=>path,:layout=>obj.layout,:view=>obj.view,:args=>obj.args,:map=>obj.map}.to_yaml }
18
19
  STATIC_PROC = Proc.new { |path,obj| ["VAL #{obj.value}",'text/static'] }
@@ -78,6 +79,8 @@ class Node0 < Zorglub::Node
78
79
  case name
79
80
  when 'haml'
80
81
  engine! :haml
82
+ when 'sass'
83
+ engine! :sass
81
84
  end
82
85
  end
83
86
  end
@@ -119,22 +122,25 @@ end
119
122
  #
120
123
  class Node4 < Zorglub::Node
121
124
  no_layout!
122
- inherited_var :js,'js0','js1'
125
+ cli_val :js,'js0'
126
+ cli_val :js,'js1'
123
127
  def index
124
- inherited_var(:js).to_yaml
128
+ cli_val(:js).to_yaml
125
129
  end
126
130
  def more
127
- inherited_var(:js,'js2').to_yaml
131
+ cli_val :js,'js2'
132
+ cli_val(:js).to_yaml
128
133
  end
129
134
  end
130
135
  #
131
136
  class Node5 < Node4
132
- inherited_var :js, 'js3'
133
- inherited_var :css, 'css0', 'css1'
137
+ cli_val :js, 'js3'
138
+ cli_val :css, 'css0', 'css1'
134
139
  # no_layout! inherited from Node4
135
140
  def index
136
- js = inherited_var(:js,'jsx')
137
- css = inherited_var(:css, 'css0', 'css1','css2')
141
+ js = cli_val(:js,'jsx')
142
+ cli_val(:css, 'css0', 'css1','css2')
143
+ css = cli_val :css
138
144
  js.concat(css).to_yaml
139
145
  end
140
146
  end
@@ -172,6 +178,7 @@ end
172
178
  APP = Zorglub::App.new do
173
179
  register_engine! :file, nil, Zorglub::Engines::File.method(:proc)
174
180
  register_engine! :haml, 'haml', Zorglub::Engines::Haml.method(:proc)
181
+ register_engine! :sass, 'scss', Zorglub::Engines::Sass.method(:proc)
175
182
  register_engine! 'default', nil, HASH_PROC
176
183
  register_engine! 'engine-1', 'spec', HASH_PROC
177
184
  register_engine! 'engine-2', 'spec', HASH_PROC
data/zorglub.gemspec ADDED
@@ -0,0 +1,28 @@
1
+ #! /usr/bin/env ruby
2
+ # -*- coding: UTF-8 -*-
3
+ #
4
+ $:.push File.expand_path("../lib", __FILE__)
5
+ require 'version'
6
+ #
7
+ Gem::Specification.new do |s|
8
+ s.name = "zorglub"
9
+ s.version = Zorglub::VERSION
10
+ s.authors = ["Jérémy Zurcher"]
11
+ s.email = ["jeremy@asynk.ch"]
12
+ s.homepage = "http://github.com/jeremyz/zorglub"
13
+ s.summary = %q{a nano web application framework based on rack }
14
+ s.description = %q{This is a very stripped down version of innate.}
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_runtime_dependency "rack"
22
+ s.add_development_dependency "rspec"
23
+ s.add_development_dependency "rake"
24
+ s.add_development_dependency "haml"
25
+ s.add_development_dependency "sass"
26
+ end
27
+ #
28
+ # EOF
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zorglub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,68 +9,92 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-17 00:00:00.000000000 Z
12
+ date: 2013-01-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
16
- requirement: &23057180 !ruby/object:Gem::Requirement
16
+ requirement: &7940480 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 1.4.0
21
+ version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *23057180
24
+ version_requirements: *7940480
25
25
  - !ruby/object:Gem::Dependency
26
- name: rake
27
- requirement: &23056680 !ruby/object:Gem::Requirement
26
+ name: rspec
27
+ requirement: &7939860 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
31
31
  - !ruby/object:Gem::Version
32
- version: 0.8.0
33
- type: :runtime
32
+ version: '0'
33
+ type: :development
34
34
  prerelease: false
35
- version_requirements: *23056680
35
+ version_requirements: *7939860
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &23055880 !ruby/object:Gem::Requirement
38
+ requirement: &7864280 !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: *7864280
47
+ - !ruby/object:Gem::Dependency
48
+ name: haml
49
+ requirement: &7862960 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ! '>='
42
53
  - !ruby/object:Gem::Version
43
- version: 0.8.7
54
+ version: '0'
44
55
  type: :development
45
56
  prerelease: false
46
- version_requirements: *23055880
57
+ version_requirements: *7862960
47
58
  - !ruby/object:Gem::Dependency
48
- name: bones
49
- requirement: &23055180 !ruby/object:Gem::Requirement
59
+ name: sass
60
+ requirement: &7862020 !ruby/object:Gem::Requirement
50
61
  none: false
51
62
  requirements:
52
63
  - - ! '>='
53
64
  - !ruby/object:Gem::Version
54
- version: 3.7.3
65
+ version: '0'
55
66
  type: :development
56
67
  prerelease: false
57
- version_requirements: *23055180
58
- description: a nano web application framework based on rack[http://rack.rubyforge.org/]
59
- email: jeremy@asynk.ch
68
+ version_requirements: *7862020
69
+ description: This is a very stripped down version of innate.
70
+ email:
71
+ - jeremy@asynk.ch
60
72
  executables: []
61
73
  extensions: []
62
- extra_rdoc_files:
63
- - README.rdoc
64
- - spec/data/view/node0/plain_file.txt
74
+ extra_rdoc_files: []
65
75
  files:
76
+ - .gitignore
77
+ - .travis.yml
66
78
  - Changelog
79
+ - Gemfile
80
+ - Gemfile.lock
67
81
  - MIT-LICENSE
68
- - README.rdoc
82
+ - README.md
69
83
  - Rakefile
84
+ - TODO
85
+ - example/layout/css.haml
86
+ - example/layout/default.haml
87
+ - example/layout/other.haml
88
+ - example/sample.ru
89
+ - example/view/url1/index.haml
90
+ - example/view/url1/meth0.haml
91
+ - example/view/url3/index.haml
92
+ - lib/version.rb
70
93
  - lib/zorglub.rb
71
94
  - lib/zorglub/app.rb
72
95
  - lib/zorglub/engines/file.rb
73
96
  - lib/zorglub/engines/haml.rb
97
+ - lib/zorglub/engines/sass.rb
74
98
  - lib/zorglub/node.rb
75
99
  - lib/zorglub/rack_session.rb
76
100
  - lib/zorglub/session.rb
@@ -82,31 +106,16 @@ files:
82
106
  - spec/data/view/node0/do_partial
83
107
  - spec/data/view/node0/do_render
84
108
  - spec/data/view/node0/engines.haml
109
+ - spec/data/view/node0/engines.scss
85
110
  - spec/data/view/node0/plain_file.txt
86
111
  - spec/data/view/node0/xml_file.xml
87
112
  - spec/node_spec.rb
88
113
  - spec/spec_helper.rb
89
- - tasks/ann.rake
90
- - tasks/constants.rb
91
- - tasks/gem.rake
92
- - tasks/git.rake
93
- - tasks/helpers.rb
94
- - tasks/notes.rake
95
- - tasks/post_load.rake
96
- - tasks/rdoc.rake
97
- - tasks/rubyforge.rake
98
- - tasks/setup.rb
99
- - tasks/spec.rake
100
- - tasks/svn.rake
101
- - tasks/test.rake
102
- homepage: http://cgit.asynk.ch/cgi-bin/cgit/zorglub
114
+ - zorglub.gemspec
115
+ homepage: http://github.com/jeremyz/zorglub
103
116
  licenses: []
104
117
  post_install_message:
105
- rdoc_options:
106
- - -x
107
- - ext
108
- - --main
109
- - README.rdoc
118
+ rdoc_options: []
110
119
  require_paths:
111
120
  - lib
112
121
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -122,9 +131,23 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
131
  - !ruby/object:Gem::Version
123
132
  version: '0'
124
133
  requirements: []
125
- rubyforge_project: FIXME
134
+ rubyforge_project:
126
135
  rubygems_version: 1.8.11
127
136
  signing_key:
128
137
  specification_version: 3
129
- summary: a nano web application framework based on rack[http://rack
130
- test_files: []
138
+ summary: a nano web application framework based on rack
139
+ test_files:
140
+ - spec/app_spec.rb
141
+ - spec/data/alt/do_render
142
+ - spec/data/alt/layout/default
143
+ - spec/data/layout/default
144
+ - spec/data/layout/main.spec
145
+ - spec/data/view/node0/do_partial
146
+ - spec/data/view/node0/do_render
147
+ - spec/data/view/node0/engines.haml
148
+ - spec/data/view/node0/engines.scss
149
+ - spec/data/view/node0/plain_file.txt
150
+ - spec/data/view/node0/xml_file.xml
151
+ - spec/node_spec.rb
152
+ - spec/spec_helper.rb
153
+ has_rdoc:
data/tasks/ann.rake DELETED
@@ -1,83 +0,0 @@
1
- # -*- coding: UTF-8 -*-
2
- #
3
- begin
4
- require 'bones/smtp_tls'
5
- rescue LoadError
6
- require 'net/smtp'
7
- end
8
- require 'time'
9
-
10
- namespace :ann do
11
-
12
- # A prerequisites task that all other tasks depend upon
13
- task :prereqs
14
- file PROJ.ann.file do
15
- ann = PROJ.ann
16
- puts "Generating #{ann.file}"
17
- File.open(ann.file,'w') do |fd|
18
- fd.puts("#{PROJ.name} version #{PROJ.version}")
19
- fd.puts(" by #{Array(PROJ.authors).first}") if PROJ.authors
20
- fd.puts(" #{PROJ.url}") if PROJ.url.valid?
21
- fd.puts(" (the \"#{PROJ.release_name}\" release)") if PROJ.release_name
22
- fd.puts
23
- fd.puts("== DESCRIPTION")
24
- fd.puts
25
- fd.puts(PROJ.description)
26
- fd.puts
27
- fd.puts(PROJ.changes.sub(%r/^.*$/, '== CHANGES'))
28
- fd.puts
29
- ann.paragraphs.each do |p|
30
- fd.puts "== #{p.upcase}"
31
- fd.puts
32
- fd.puts paragraphs_of(PROJ.readme_file, p).join("\n\n")
33
- fd.puts
34
- end
35
- fd.puts ann.text if ann.text
36
- end
37
- end
38
-
39
- desc "Create an announcement file"
40
- task :announcement => ['ann:prereqs', PROJ.ann.file]
41
-
42
- desc "Send an email announcement"
43
- task :email => ['ann:prereqs', PROJ.ann.file] do
44
- ann = PROJ.ann
45
- from = ann.email[:from] || Array(PROJ.authors).first || PROJ.email
46
- to = Array(ann.email[:to])
47
-
48
- ### build a mail header for RFC 822
49
- rfc822msg = "From: #{from}\n"
50
- rfc822msg << "To: #{to.join(',')}\n"
51
- rfc822msg << "Subject: [ANN] #{PROJ.name} #{PROJ.version}"
52
- rfc822msg << " (#{PROJ.release_name})" if PROJ.release_name
53
- rfc822msg << "\n"
54
- rfc822msg << "Date: #{Time.new.rfc822}\n"
55
- rfc822msg << "Message-Id: "
56
- rfc822msg << "<#{"%.8f" % Time.now.to_f}@#{ann.email[:domain]}>\n\n"
57
- rfc822msg << File.read(ann.file)
58
-
59
- params = [:server, :port, :domain, :acct, :passwd, :authtype].map do |key|
60
- ann.email[key]
61
- end
62
-
63
- params[3] = (PROJ.ann.email[:from] || PROJ.email) if params[3].nil?
64
-
65
- # if ann.email[:tls] and params[4].nil?
66
- if params[4].nil?
67
- STDOUT.write "Please enter your e-mail password (#{params[3]}): "
68
- params[4] = STDIN.gets.chomp
69
- end
70
- # params = params.shift 2 if not ann.email[:tls]
71
-
72
- ### send email
73
- # TODO find a way to bypass /var/lib/gems/1.9/gems/bones-3.6.5/lib/bones/smtp_tls.rb which forces starttls usage
74
- Net::SMTP.start(*params) {|smtp| smtp.sendmail(rfc822msg, from, to)}
75
- end
76
- end # namespace :ann
77
-
78
- desc 'Alias to ann:announcement'
79
- task :ann => 'ann:announcement'
80
-
81
- CLOBBER << PROJ.ann.file
82
-
83
- # EOF
data/tasks/constants.rb DELETED
@@ -1,118 +0,0 @@
1
- # -*- coding: UTF-8 -*-
2
- #
3
- require 'rbconfig'
4
-
5
- # Setup some constants
6
- WIN32 = %r/djgpp|(cyg|ms|bcc)win|mingw/ =~ RUBY_PLATFORM unless defined? WIN32
7
-
8
- DEV_NULL = WIN32 ? 'NUL:' : '/dev/null'
9
-
10
- def quiet( &block )
11
- io = [STDOUT.dup, STDERR.dup]
12
- STDOUT.reopen DEV_NULL
13
- STDERR.reopen DEV_NULL
14
- block.call
15
- ensure
16
- STDOUT.reopen io.first
17
- STDERR.reopen io.last
18
- $stdout, $stderr = STDOUT, STDERR
19
- end
20
-
21
- BUILD_DIR = "build"
22
-
23
- USE_RAKE_COMPILER = ( ( (RUBY_PLATFORM =~ /java/) ? false : true ) and test ?d, 'ext' )
24
- if USE_RAKE_COMPILER
25
- gem 'rake-compiler', '>=0.6.0'
26
- require 'rake/extensiontask'
27
- ENV['RUBY_CC_VERSION'] = '1.8.7:1.9.2'
28
- end
29
-
30
- LIBEXT = case RbConfig::CONFIG['host_os'].downcase
31
- when /darwin/
32
- "dylib"
33
- when /mswin|mingw/
34
- "dll"
35
- else
36
- RbConfig::CONFIG['DLEXT']
37
- end
38
-
39
- CPU = case RbConfig::CONFIG['host_cpu'].downcase
40
- when /i[3456]86/
41
- # Darwin always reports i686, even when running in 64bit mode
42
- if RbConfig::CONFIG['host_os'] =~ /darwin/ && 0xfee1deadbeef.is_a?(Fixnum)
43
- "x86_64"
44
- else
45
- "i386"
46
- end
47
- when /amd64|x86_64/
48
- "x86_64"
49
- when /ppc64|powerpc64/
50
- "powerpc64"
51
- when /ppc|powerpc/
52
- "powerpc"
53
- else
54
- RbConfig::CONFIG['host_cpu']
55
- end
56
-
57
- OS = case RbConfig::CONFIG['host_os'].downcase
58
- when /linux/
59
- "linux"
60
- when /darwin/
61
- "darwin"
62
- when /freebsd/
63
- "freebsd"
64
- when /openbsd/
65
- "openbsd"
66
- when /sunos|solaris/
67
- "solaris"
68
- when /mswin|mingw/
69
- "win32"
70
- else
71
- RbConfig::CONFIG['host_os'].downcase
72
- end
73
-
74
- CC=ENV['CC'] || RbConfig::CONFIG['CC'] || "gcc"
75
-
76
- GMAKE = RbConfig::CONFIG['host_os'].downcase =~ /bsd|solaris/ ? "gmake" : "make"
77
-
78
-
79
- DIFF = if WIN32 then 'diff.exe'
80
- else
81
- if quiet {system "gdiff", __FILE__, __FILE__} then 'gdiff'
82
- else 'diff' end
83
- end unless defined? DIFF
84
-
85
- SUDO = if WIN32 then ''
86
- else
87
- if quiet {system 'which sudo'} then 'sudo'
88
- else '' end
89
- end
90
-
91
- RCOV = WIN32 ? 'rcov.bat' : 'rcov'
92
- RDOC = WIN32 ? 'rdoc.bat' : 'rdoc'
93
- GEM = WIN32 ? 'gem.bat' : 'gem'
94
-
95
- %w(rcov spec/rake/spectask rubyforge bones facets/ansicode).each do |lib|
96
- begin
97
- require lib
98
- Object.instance_eval {const_set "HAVE_#{lib.tr('/','_').upcase}", true}
99
- rescue LoadError
100
- Object.instance_eval {const_set "HAVE_#{lib.tr('/','_').upcase}", false}
101
- end
102
- end
103
-
104
- HAVE_SVN = (Dir.entries(Dir.pwd).include?('.svn') and system("svn --version 2>&1 > #{DEV_NULL}"))
105
- HAVE_GIT = (Dir.entries(Dir.pwd).include?('.git') and system("git --version 2>&1 > #{DEV_NULL}"))
106
-
107
- # Add rake as a development dependency
108
- #
109
- PROJ.gem.development_dependencies << ['rake', '>=0.8.7']
110
-
111
- # Add bones as a development dependency
112
- #
113
- if HAVE_BONES
114
- bones_version = defined?(Bones::VERSION) ? Bones::VERSION : Bones.version
115
- PROJ.gem.development_dependencies << ['bones', ">= #{bones_version}"]
116
- end
117
-
118
- # EOF