pipejump 0.3.1 → 0.3.2

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/Gemfile CHANGED
@@ -1,8 +1,9 @@
1
1
  #!/usr/bin/ruby
2
2
  source "http://rubygems.org"
3
3
 
4
- gem 'rspec'
5
4
  gem 'rake'
5
+ gem 'rspec'
6
6
  gem 'rcov'
7
7
  gem 'vcr'
8
8
  gem "webmock"
9
+ gem 'json'
data/Gemfile.lock CHANGED
@@ -4,6 +4,7 @@ GEM
4
4
  addressable (2.2.6)
5
5
  crack (0.1.8)
6
6
  diff-lcs (1.1.3)
7
+ json (1.5.3)
7
8
  rake (0.9.2)
8
9
  rcov (0.9.10)
9
10
  rspec (2.6.0)
@@ -16,13 +17,14 @@ GEM
16
17
  rspec-mocks (2.6.0)
17
18
  vcr (1.11.2)
18
19
  webmock (1.7.5)
19
- addressable (~> 2.2, > 2.2.5)
20
+ addressable (> 2.2.5, ~> 2.2)
20
21
  crack (>= 0.1.7)
21
22
 
22
23
  PLATFORMS
23
24
  ruby
24
25
 
25
26
  DEPENDENCIES
27
+ json
26
28
  rake
27
29
  rcov
28
30
  rspec
@@ -1,3 +1,5 @@
1
+ require 'cgi'
2
+
1
3
  module Pipejump
2
4
 
3
5
  # Represents a collection Resources available in the Pipejump API
@@ -83,8 +85,10 @@ module Pipejump
83
85
  end
84
86
 
85
87
  # Returns an Array of Resource objects
86
- def all
87
- code, data = @session.get(collection_path + '.json')
88
+ def all(params = {})
89
+ query = params.map { |key, value| "#{CGI.escape(key.to_s)}=#{CGI.escape(value.to_s)}" }.join("&")
90
+ query = "?" + query unless query.empty?
91
+ code, data = @session.get(collection_path + '.json' + query)
88
92
  data.collect { |data|
89
93
  key = @resource.name.to_s.split('::').last.downcase
90
94
  @resource.new(data[key].merge(:session => @session, :prefix => @prefix))
@@ -104,7 +108,7 @@ module Pipejump
104
108
  all.inspect
105
109
  end
106
110
 
107
- ['first', 'last', 'each', 'size', 'collect', 'reject'].each do |method|
111
+ ['first', 'last', 'each', 'size', 'collect', 'reject', 'inject'].each do |method|
108
112
  class_eval <<-STR
109
113
  def #{method}(*args, &block)
110
114
  all.#{method}(*args, &block)
@@ -114,4 +118,4 @@ module Pipejump
114
118
 
115
119
  end
116
120
 
117
- end
121
+ end
@@ -1,3 +1,3 @@
1
1
  module Pipejump
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.2"
3
3
  end
@@ -12,6 +12,22 @@ describe Pipejump::Deal do
12
12
  @client.destroy
13
13
  end
14
14
 
15
+ describe '#all' do
16
+ it "should filter deals by stage" do
17
+ deal = @session.deals.create(:name => 'New deal' + uuid, :entity_id => @client.id, :stage_name => "won")
18
+ deals = @session.deals.all(:stage => "won")
19
+ deals.size.should == 1
20
+ deals[0].id.should == deal.id
21
+ end
22
+
23
+ it "by default fetches incoming deals" do
24
+ deal = @session.deals.create(:name => 'New deal 2' + uuid, :entity_id => @client.id, :stage_name => "incoming")
25
+ deals = @session.deals.all
26
+ deals.size.should == 1
27
+ deals[0].id.should == deal.id
28
+ end
29
+ end
30
+
15
31
  describe '#create' do
16
32
 
17
33
  it "should create deal with valid params" do
@@ -118,4 +134,4 @@ describe Pipejump::Deal do
118
134
 
119
135
  end
120
136
 
121
- end
137
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pipejump
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 1
10
- version: 0.3.1
9
+ - 2
10
+ version: 0.3.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Marcin Bunsch
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-09-08 00:00:00 +02:00
18
+ date: 2011-09-26 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies: []
21
21