kiss 1.1 → 1.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. data/LICENSE +1 -1
  2. data/Rakefile +2 -1
  3. data/VERSION +1 -1
  4. data/bin/kiss +151 -34
  5. data/data/scaffold.tgz +0 -0
  6. data/lib/kiss.rb +389 -742
  7. data/lib/kiss/accessors/controller.rb +47 -0
  8. data/lib/kiss/accessors/request.rb +106 -0
  9. data/lib/kiss/accessors/template.rb +23 -0
  10. data/lib/kiss/action.rb +502 -132
  11. data/lib/kiss/bench.rb +14 -5
  12. data/lib/kiss/debug.rb +14 -6
  13. data/lib/kiss/exception_report.rb +22 -299
  14. data/lib/kiss/ext/core.rb +700 -0
  15. data/lib/kiss/ext/rack.rb +33 -0
  16. data/lib/kiss/ext/sequel_database.rb +47 -0
  17. data/lib/kiss/ext/sequel_mysql_dataset.rb +23 -0
  18. data/lib/kiss/form.rb +404 -179
  19. data/lib/kiss/form/field.rb +183 -307
  20. data/lib/kiss/form/field_types.rb +239 -0
  21. data/lib/kiss/format.rb +88 -70
  22. data/lib/kiss/html/exception_report.css +222 -0
  23. data/lib/kiss/html/exception_report.html +210 -0
  24. data/lib/kiss/iterator.rb +14 -12
  25. data/lib/kiss/login.rb +8 -8
  26. data/lib/kiss/mailer.rb +68 -66
  27. data/lib/kiss/model.rb +323 -36
  28. data/lib/kiss/rack/bench.rb +16 -8
  29. data/lib/kiss/rack/email_errors.rb +25 -15
  30. data/lib/kiss/rack/errors_ok.rb +2 -2
  31. data/lib/kiss/rack/facebook.rb +6 -6
  32. data/lib/kiss/rack/file_not_found.rb +10 -8
  33. data/lib/kiss/rack/log_exceptions.rb +3 -3
  34. data/lib/kiss/rack/recorder.rb +2 -2
  35. data/lib/kiss/rack/show_debug.rb +2 -2
  36. data/lib/kiss/rack/show_exceptions.rb +2 -2
  37. data/lib/kiss/request.rb +435 -0
  38. data/lib/kiss/sequel_session.rb +15 -14
  39. data/lib/kiss/static_file.rb +20 -13
  40. data/lib/kiss/template.rb +327 -0
  41. metadata +60 -25
  42. data/lib/kiss/controller_accessors.rb +0 -81
  43. data/lib/kiss/hacks.rb +0 -188
  44. data/lib/kiss/sequel_mysql.rb +0 -25
  45. data/lib/kiss/template_methods.rb +0 -167
metadata CHANGED
@@ -1,7 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kiss
3
3
  version: !ruby/object:Gem::Version
4
- version: "1.1"
4
+ prerelease: false
5
+ segments:
6
+ - 1
7
+ - 7
8
+ version: "1.7"
5
9
  platform: ruby
6
10
  authors:
7
11
  - Shawn Van Ittersum
@@ -9,39 +13,61 @@ autorequire:
9
13
  bindir: bin
10
14
  cert_chain: []
11
15
 
12
- date: 2009-02-10 00:00:00 -08:00
16
+ date: 2012-01-28 00:00:00 -08:00
13
17
  default_executable:
14
18
  dependencies:
15
19
  - !ruby/object:Gem::Dependency
16
20
  name: rack
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
21
+ prerelease: false
22
+ requirement: &id001 !ruby/object:Gem::Requirement
20
23
  requirements:
21
24
  - - "="
22
25
  - !ruby/object:Gem::Version
26
+ segments:
27
+ - 0
28
+ - 4
29
+ - 0
23
30
  version: 0.4.0
24
- version:
31
+ type: :runtime
32
+ version_requirements: *id001
25
33
  - !ruby/object:Gem::Dependency
26
34
  name: sequel
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
35
+ prerelease: false
36
+ requirement: &id002 !ruby/object:Gem::Requirement
30
37
  requirements:
31
38
  - - ">="
32
39
  - !ruby/object:Gem::Version
33
- version: 2.5.0
34
- version:
40
+ segments:
41
+ - 3
42
+ - 0
43
+ - 0
44
+ version: 3.0.0
45
+ type: :runtime
46
+ version_requirements: *id002
35
47
  - !ruby/object:Gem::Dependency
36
48
  name: erubis
49
+ prerelease: false
50
+ requirement: &id003 !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ segments:
55
+ - 0
56
+ version: "0"
37
57
  type: :runtime
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
58
+ version_requirements: *id003
59
+ - !ruby/object:Gem::Dependency
60
+ name: tzinfo
61
+ prerelease: false
62
+ requirement: &id004 !ruby/object:Gem::Requirement
40
63
  requirements:
41
64
  - - ">="
42
65
  - !ruby/object:Gem::Version
66
+ segments:
67
+ - 0
43
68
  version: "0"
44
- version:
69
+ type: :runtime
70
+ version_requirements: *id004
45
71
  description:
46
72
  email: shawn @nospam@ multiwidget.com
47
73
  executables:
@@ -56,22 +82,27 @@ files:
56
82
  - LICENSE
57
83
  - bin/kiss
58
84
  - data/scaffold.tgz
59
- - lib/kiss
85
+ - lib/kiss/accessors/controller.rb
86
+ - lib/kiss/accessors/request.rb
87
+ - lib/kiss/accessors/template.rb
60
88
  - lib/kiss/action.rb
61
89
  - lib/kiss/bench.rb
62
- - lib/kiss/controller_accessors.rb
63
90
  - lib/kiss/debug.rb
64
91
  - lib/kiss/exception_report.rb
65
- - lib/kiss/form
92
+ - lib/kiss/ext/core.rb
93
+ - lib/kiss/ext/rack.rb
94
+ - lib/kiss/ext/sequel_database.rb
95
+ - lib/kiss/ext/sequel_mysql_dataset.rb
66
96
  - lib/kiss/form/field.rb
97
+ - lib/kiss/form/field_types.rb
67
98
  - lib/kiss/form.rb
68
99
  - lib/kiss/format.rb
69
- - lib/kiss/hacks.rb
100
+ - lib/kiss/html/exception_report.css
101
+ - lib/kiss/html/exception_report.html
70
102
  - lib/kiss/iterator.rb
71
103
  - lib/kiss/login.rb
72
104
  - lib/kiss/mailer.rb
73
105
  - lib/kiss/model.rb
74
- - lib/kiss/rack
75
106
  - lib/kiss/rack/bench.rb
76
107
  - lib/kiss/rack/email_errors.rb
77
108
  - lib/kiss/rack/errors_ok.rb
@@ -81,13 +112,15 @@ files:
81
112
  - lib/kiss/rack/recorder.rb
82
113
  - lib/kiss/rack/show_debug.rb
83
114
  - lib/kiss/rack/show_exceptions.rb
84
- - lib/kiss/sequel_mysql.rb
115
+ - lib/kiss/request.rb
85
116
  - lib/kiss/sequel_session.rb
86
117
  - lib/kiss/static_file.rb
87
- - lib/kiss/template_methods.rb
118
+ - lib/kiss/template.rb
88
119
  - lib/kiss.rb
89
120
  has_rdoc: true
90
121
  homepage: http://www.rubykiss.org
122
+ licenses: []
123
+
91
124
  post_install_message:
92
125
  rdoc_options:
93
126
  - --main
@@ -100,20 +133,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
100
133
  requirements:
101
134
  - - ">="
102
135
  - !ruby/object:Gem::Version
136
+ segments:
137
+ - 0
103
138
  version: "0"
104
- version:
105
139
  required_rubygems_version: !ruby/object:Gem::Requirement
106
140
  requirements:
107
141
  - - ">="
108
142
  - !ruby/object:Gem::Version
143
+ segments:
144
+ - 0
109
145
  version: "0"
110
- version:
111
146
  requirements: []
112
147
 
113
148
  rubyforge_project: kiss
114
- rubygems_version: 1.3.1
149
+ rubygems_version: 1.3.6
115
150
  signing_key:
116
- specification_version: 2
151
+ specification_version: 3
117
152
  summary: An MVC web application framework using Rack, Sequel, and Erubis.
118
153
  test_files: []
119
154
 
@@ -1,81 +0,0 @@
1
- class Kiss
2
- module KissAccessors
3
- def environment
4
- Kiss.environment
5
- end
6
-
7
- def project_dir
8
- Kiss.project_dir
9
- end
10
-
11
- def public_dir
12
- Kiss.public_dir
13
- end
14
-
15
- def upload_dir
16
- Kiss.upload_dir
17
- end
18
- end
19
-
20
- module ControllerAccessors
21
- def debug(object)
22
- controller.debug(object, Kernel.caller[0])
23
- end
24
- alias_method :trace, :debug
25
-
26
- def bench(label = nil)
27
- controller.bench(label, Kernel.caller[0])
28
- end
29
-
30
- def models
31
- controller.models
32
- end
33
- alias_method :dbm, :models
34
-
35
- def database
36
- controller.database
37
- end
38
-
39
- def file_cache(*args,&block)
40
- controller.file_cache(*args,&block)
41
- end
42
-
43
- def session
44
- controller.session
45
- end
46
-
47
- def login
48
- controller.login
49
- end
50
-
51
- def request
52
- controller.request
53
- end
54
-
55
- def app(*args)
56
- controller.app_url(*args)
57
- end
58
-
59
- def pub(*args)
60
- controller.pub_url(*args)
61
- end
62
-
63
- def env
64
- controller.env
65
- end
66
-
67
- def protocol
68
- controller.protocol
69
- end
70
-
71
- def host
72
- controller.host
73
- end
74
-
75
- def new_email
76
- controller.new_email
77
- end
78
-
79
- include KissAccessors
80
- end
81
- end
@@ -1,188 +0,0 @@
1
- # This is a collection of hacks to enable various Ruby lnaguage enhancements
2
- # and other features of Kiss.
3
-
4
- # Placeholder; to be overloaded by Kiss Rack builder option MultiBench
5
- # (not yet implemented).
6
- # def multibench(*args); end
7
-
8
- # This gets called outside of controller contexts; used mainly for debugging
9
- # during Kiss framework development.
10
- def force_debug(object)
11
- print "Content-type: text/html\n\n" unless $debug
12
- $debug = true
13
-
14
- puts object.inspect + '<br/>' + '<small>at ' + Kernel.caller[0] + '</small><br/>'
15
- object
16
- end
17
- alias :debug :force_debug
18
-
19
- def trace(object)
20
- debug(object)
21
- end
22
-
23
- class Kiss
24
- # Used when Kiss#file_cache called from Kiss::Action#file_cache.
25
- # Caught by Kiss's Rack builder option FileNotFound.
26
- class TemplateFileNotFound < LoadError; end
27
- class FileNotFound < LoadError; end
28
- end
29
-
30
-
31
- # Methods to enable hash.attr == hash[attr] syntax,
32
- # including hash.id and hash.type
33
- class Hash
34
- def method_missing(meth,*args)
35
- if /=$/=~(meth=meth.id2name) then
36
- self[meth[0...-1]] = (args.length<2 ? args[0] : args)
37
- else
38
- self[meth] || self[meth.to_sym]
39
- end
40
- end
41
- def id
42
- self['id'] || self [:id]
43
- end
44
- def type
45
- self['type'] || self [:type] || Hash
46
- end
47
- end
48
-
49
- # Enables FixNum conversion to time duration values (in seconds).
50
- class Fixnum
51
- # 2.weeks = 14.days
52
- def weeks
53
- self * 7.days
54
- end
55
- # 1.days = 24.hours
56
- def days
57
- self * 24.hours
58
- end
59
- # 1.hours = 60.minutes = 3600 (seconds)
60
- def hours
61
- self * 60.minutes
62
- end
63
- # 1.minutes = 60 (seconds)
64
- # 5.minutes = 300 (seconds)
65
- def minutes
66
- self * 60
67
- end
68
- # 5.minutes.ago = Time.now - 300
69
- def ago
70
- Time.now - self
71
- end
72
-
73
- # format thousands
74
- def format_thousands
75
- to_s.reverse.gsub(/(\d{3})/,'\1,').sub(/\,(-?)$/,'\1').reverse
76
- end
77
- end
78
-
79
- class Date
80
- # Returns string representing date in m/d/yyyy format
81
- def mdy
82
- strftime("%m/%d/%Y")
83
- end
84
- end
85
-
86
- class NilClass
87
- def mdy
88
- ''
89
- end
90
- def size
91
- 0
92
- end
93
- def length
94
- 0
95
- end
96
- # Ruby default: nil.id == 4 (now deprecated, but still present in 1.8)
97
- # can cause unexpected results when using id from nil Sequel results
98
- # so we'll raise an error instead, effectively undefining 'id' method
99
- def id
100
- raise NoMethodError, "undefined method `id' for nil:NilClass"
101
- end
102
- end
103
-
104
- class String
105
- def to_const
106
- begin
107
- parts = self.split(/::/)
108
- klass = Kernel
109
- while (next_part = parts.shift)
110
- klass = klass.const_get(next_part)
111
- end
112
-
113
- klass
114
- rescue
115
- raise "Constant '#{self}' not defined"
116
- end
117
- end
118
- end
119
-
120
- class Symbol
121
- def to_const
122
- self.to_s.to_const
123
- end
124
- end
125
-
126
- module Rack
127
- class Request
128
- def server
129
- url = scheme + "://"
130
- url << host
131
-
132
- if scheme == "https" && port != 443 ||
133
- scheme == "http" && port != 80
134
- url << ":#{port}"
135
- end
136
-
137
- url
138
- end
139
- end
140
- end
141
-
142
- class SequelZeroTime < String
143
- def initialize(value = '0000-00-00 00:00',*args,&block)
144
- super(value,*args,&block)
145
- end
146
-
147
- # arithmetic operators
148
- def +(*args)
149
- self
150
- end
151
- def -(*args)
152
- self
153
- end
154
-
155
- # comparision operators
156
- def ==(value)
157
- (value == 0 || value.is_a?(SequelZeroTime)) ? true : false
158
- end
159
- def >(*args)
160
- return false
161
- end
162
- def >=(*args)
163
- (value == 0 || value.is_a?(SequelZeroTime)) ? true : false
164
- end
165
- def <(*args)
166
- return true
167
- end
168
- def <=(*args)
169
- return true
170
- end
171
-
172
- # format conversion
173
- def to_f
174
- 0
175
- end
176
- def to_i
177
- 0
178
- end
179
- def to_s
180
- ''
181
- end
182
- def strftime(*args)
183
- ''
184
- end
185
- def mdy
186
- ''
187
- end
188
- end
@@ -1,25 +0,0 @@
1
- module Sequel
2
- module MySQL
3
- class Dataset < Sequel::Dataset
4
- # Returns results from dataset query as array of arrays,
5
- # instead of array of hashes.
6
- def all_arrays(opts = nil, &block)
7
- a = []
8
- fetch_arrays(select_sql(opts)) {|r| a << r}
9
- a.each(&block) if block
10
- a
11
- end
12
-
13
- # Fixes bug in Sequel 1.5; shouldn't be needed for Sequel 2.x
14
- # (need to double-check, however).
15
- def fetch_arrays(sql)
16
- execute(sql) do |r|
17
- while row = r.fetch_row
18
- yield row
19
- end
20
- end
21
- self
22
- end
23
- end
24
- end
25
- end