ki 0.2.4 → 0.2.5

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.4
1
+ 0.2.5
data/ki.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "ki"
8
- s.version = "0.2.4"
8
+ s.version = "0.2.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Cristian Mircea Messel"]
12
- s.date = "2013-02-19"
12
+ s.date = "2013-02-23"
13
13
  s.description = "Fuck setting up a database for your prototypes. Some call it an ORM with a RESTful interface. Some say its for prototyping."
14
14
  s.email = "mess110@gmail.com"
15
15
  s.executables = ["ki"]
@@ -16,6 +16,8 @@ module Ki
16
16
  attr_accessor :hash
17
17
  attr_accessor :req
18
18
 
19
+ layout :layout
20
+
19
21
  def initialize req
20
22
  @hash = {}
21
23
  @db = Db.instance
@@ -100,6 +102,8 @@ module Ki
100
102
  send m.to_sym
101
103
  send "after_#{m.to_s}".to_sym
102
104
  after_all
105
+ rescue BSON::InvalidObjectId
106
+ raise "invalid _id format: #{params['_id']}"
103
107
  end
104
108
  end
105
109
 
@@ -39,5 +39,9 @@ module Ki
39
39
  def unique_attributes
40
40
  []
41
41
  end
42
+
43
+ def selected_layout
44
+ :layout
45
+ end
42
46
  end
43
47
  end
@@ -59,5 +59,20 @@ module Ki
59
59
  attributes
60
60
  end
61
61
  end
62
+
63
+ def selected_layout
64
+ :layout
65
+ end
66
+
67
+ def layout l
68
+ send :define_method, :selected_layout do
69
+ l
70
+ end
71
+
72
+ eigen_class = class << self; self; end
73
+ eigen_class.send(:define_method, :selected_layout) do
74
+ l
75
+ end
76
+ end
62
77
  end
63
78
  end
@@ -46,7 +46,7 @@ module Ki
46
46
  private
47
47
 
48
48
  def partial s
49
- Util.render_partial s, { 'env' => @req.env }
49
+ Util.render_partial s, { 'env' => @req.env }, @req.klass.selected_layout
50
50
  end
51
51
 
52
52
  def interpret_json_params
@@ -2,6 +2,10 @@ class NilClass
2
2
  def responds_to_formats
3
3
  [:json, :html]
4
4
  end
5
+
6
+ def selected_layout
7
+ :layout
8
+ end
5
9
  end
6
10
 
7
11
  class String
@@ -71,9 +75,14 @@ module Ki
71
75
  File.basename(root)
72
76
  end
73
77
 
74
- def self.render_partial s, hash={}
78
+ def self.render_partial s, hash={}, l=:layout
75
79
  contents = file_contents(s)
76
- layout_contents = file_contents('layout')
80
+ case l
81
+ when :none
82
+ layout_contents = "= yield"
83
+ else
84
+ layout_contents = file_contents(l.to_s)
85
+ end
77
86
 
78
87
  haml(layout_contents).render do
79
88
  haml(contents).render(Object.new(), hash)
@@ -85,4 +85,17 @@ describe Ki::Restrictions do
85
85
  Bar.new(ReqFactory.new(:post, { 'foo' => 'bar'}))
86
86
  }.to raise_error 'foo not unique'
87
87
  end
88
+
89
+ it "should default to :layout" do
90
+ class Foo < Ki::Model
91
+ end
92
+ Foo.selected_layout.should == :layout
93
+ end
94
+
95
+ it "should chage default layout" do
96
+ class Foo < Ki::Model
97
+ layout :none
98
+ end
99
+ Foo.selected_layout.should == :none
100
+ end
88
101
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ki
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-19 00:00:00.000000000 Z
12
+ date: 2013-02-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
@@ -343,7 +343,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
343
343
  version: '0'
344
344
  segments:
345
345
  - 0
346
- hash: 3465853450355248841
346
+ hash: -2281689135110628816
347
347
  required_rubygems_version: !ruby/object:Gem::Requirement
348
348
  none: false
349
349
  requirements: