zorglub 0.0.5 → 0.0.6

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/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