ki 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../../
3
3
  specs:
4
- ki (0.0.1)
4
+ ki (0.1.1)
5
5
  bson_ext
6
6
  haml
7
7
  mongo
@@ -1,5 +1,8 @@
1
1
  require 'ki'
2
2
 
3
+ class Test < Ki::Model
4
+ end
5
+
3
6
  class Email < Ki::Model
4
7
  include Ki::Mail
5
8
 
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.1.1"
8
+ s.version = "0.1.2"
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-09"
12
+ s.date = "2013-02-10"
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"]
data/lib/model.rb CHANGED
@@ -26,9 +26,15 @@ module Ki
26
26
 
27
27
  def find
28
28
  raise 'params missing' unless @req.params
29
- raise 'param _id missing' unless @req.params['_id']
30
29
 
31
- @hash = @db.find(class_name, @req.params['_id'])
30
+ if @req.params['_id']
31
+ unless @req.params.length == 1
32
+ raise 'no other params allowed when querying _id'
33
+ end
34
+ @hash = @db.find(class_name, @req.params['_id'])
35
+ else
36
+ @hash = @db.find_by(class_name, @req.params)
37
+ end
32
38
  raise "#{class_name} not found" if @hash.nil?
33
39
  end
34
40
 
data/spec/model_spec.rb CHANGED
@@ -27,16 +27,31 @@ describe Ki::Model do
27
27
  Zoidberg.new(get).hash['name'].should == 'homer'
28
28
  end
29
29
 
30
- it "should raise error if no params are given when getting model" do
31
- expect {
32
- Zoidberg.new(ReqFactory.new(:get))
33
- }.to raise_error
30
+ it "should find objects depending on params" do
31
+ @db.create 'zoidberg', { :name => 'homer', :valid => true }
32
+ @db.create 'zoidberg', { :name => 'bart', :valid => true }
33
+ @db.create 'zoidberg', { :name => 'batman', :valid => false, :cool => true }
34
+ @db.create 'zoidberg', { :name => 'joker', :valid => false, :cool => true }
35
+ @db.create 'zoidberg', { :name => 'joker', :valid => false, :cool => false }
36
+
37
+ r = Zoidberg.new(ReqFactory.new(:get, { :name => 'homer' })).hash
38
+ r[0]['name'].should == 'homer'
39
+
40
+ r = Zoidberg.new(ReqFactory.new(:get, { :valid => true })).hash
41
+ r.length.should == 2
42
+
43
+ r.collect { |z|
44
+ z['valid'].should be_true
45
+ }
46
+
47
+ r = Zoidberg.new(ReqFactory.new(:get, { :valid => false, :cool => true })).hash
48
+ r.length.should == 2
34
49
  end
35
50
 
36
- it "should raise error if no id is given when getting model" do
51
+ it "should raise error when _id and other params are given. it should be _id only" do
37
52
  expect {
38
- Zoidberg.new(ReqFactory.new(:get_with_params, { :name => 'homer' }))
39
- }.to raise_error
53
+ Zoidberg.new(ReqFactory.new(:get, { '_id' => 'hi', 'foo' => 'bar'}))
54
+ }.to raise_error 'no other params allowed when querying _id'
40
55
  end
41
56
 
42
57
  it "should only accept valid object ids" do
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.1.1
4
+ version: 0.1.2
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-09 00:00:00.000000000 Z
12
+ date: 2013-02-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
@@ -293,7 +293,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
293
293
  version: '0'
294
294
  segments:
295
295
  - 0
296
- hash: -2984834792591649896
296
+ hash: -3381699098757723557
297
297
  required_rubygems_version: !ruby/object:Gem::Requirement
298
298
  none: false
299
299
  requirements: