bisque 0.1.3 → 0.1.4

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.3
1
+ 0.1.4
data/bisque.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "bisque"
8
- s.version = "0.1.3"
8
+ s.version = "0.1.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jeremy Holland"]
data/lib/bisque/report.rb CHANGED
@@ -6,6 +6,9 @@ module Bisque
6
6
 
7
7
  def initialize(params={})
8
8
  @params = self.class.defaults.merge params
9
+ @params.each do |k,v|
10
+ @params[k] = v.call if v.is_a?(Proc)
11
+ end
9
12
  @sql = self.class.query.dup
10
13
  self.class.params.each do |param|
11
14
  value = @params[param]
@@ -95,9 +98,9 @@ module Bisque
95
98
  end
96
99
 
97
100
  class << self
98
- def default(key, val)
101
+ def default(key, val=nil, &block)
99
102
  @defaults ||= {}
100
- @defaults[key] = val
103
+ @defaults[key] = val || block
101
104
  end
102
105
 
103
106
  def defaults(hash=nil)
@@ -159,6 +159,11 @@ describe Bisque::Report do
159
159
  b = BazReport.new :corn => 'powder'
160
160
  b.params.should == {:corn => 'powder'}
161
161
  end
162
+
163
+ it "should return the hash of defaults achieved by calling the proc if the default value is a proc" do
164
+ b = PorkReport.new
165
+ b.params.should == {:slip => 'pasta'}
166
+ end
162
167
  end
163
168
 
164
169
  describe "sql" do
@@ -31,6 +31,11 @@ class QuuxReport < Bisque::Report
31
31
  default :slip, 'paper'
32
32
  end
33
33
 
34
+ class PorkReport < Bisque::Report
35
+ query "SELECT * FROM frobnitzs WHERE name = :slip"
36
+ default :slip do 'pasta' end
37
+ end
38
+
34
39
  class FunReport < Bisque::Report
35
40
  query "SELECT * FROM frobnitzs WHERE name = :corn"
36
41
  default :slip, 'paper'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bisque
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -201,7 +201,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
201
201
  version: '0'
202
202
  segments:
203
203
  - 0
204
- hash: -2336335870480925139
204
+ hash: 1348488274421313650
205
205
  required_rubygems_version: !ruby/object:Gem::Requirement
206
206
  none: false
207
207
  requirements: