freckly 0.0.2 → 0.0.3

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,3 +1,5 @@
1
1
  source "http://rubygems.org"
2
2
 
3
+ gem "faraday", :git => "git://github.com/railslove/faraday.git", :branch => "hacking"
4
+
3
5
  gemspec
@@ -1,9 +1,18 @@
1
+ GIT
2
+ remote: git://github.com/railslove/faraday.git
3
+ revision: 1c4337bfd46a0a524ec510daf8d9ab21df645767
4
+ branch: hacking
5
+ specs:
6
+ faraday (0.5.3)
7
+ addressable (~> 2.2.2)
8
+ multipart-post (~> 1.0.1)
9
+ rack (>= 1.1.0, < 2)
10
+
1
11
  PATH
2
12
  remote: .
3
13
  specs:
4
14
  freckly (0.0.2)
5
- faraday (~> 0.5.3)
6
- faraday_middleware (~> 0.2.1)
15
+ faraday_middleware (~> 0.3.0)
7
16
  hashie (~> 0.4.0)
8
17
  multi_xml (~> 0.2.0)
9
18
 
@@ -13,12 +22,8 @@ GEM
13
22
  addressable (2.2.2)
14
23
  crack (0.1.8)
15
24
  diff-lcs (1.1.2)
16
- faraday (0.5.3)
17
- addressable (~> 2.2.2)
18
- multipart-post (~> 1.0.1)
19
- rack (>= 1.1.0, < 2)
20
- faraday_middleware (0.2.1)
21
- faraday (~> 0.5.1)
25
+ faraday_middleware (0.3.0)
26
+ faraday (~> 0.5.3)
22
27
  hashie (0.4.0)
23
28
  multi_xml (0.2.0)
24
29
  multipart-post (1.0.1)
@@ -40,8 +45,8 @@ PLATFORMS
40
45
  ruby
41
46
 
42
47
  DEPENDENCIES
43
- faraday (~> 0.5.3)
44
- faraday_middleware (~> 0.2.1)
48
+ faraday!
49
+ faraday_middleware (~> 0.3.0)
45
50
  freckly!
46
51
  hashie (~> 0.4.0)
47
52
  multi_xml (~> 0.2.0)
@@ -14,8 +14,8 @@ Gem::Specification.new do |s|
14
14
 
15
15
  s.rubyforge_project = "freckly"
16
16
 
17
- s.add_dependency "faraday", "~> 0.5.3"
18
- s.add_dependency "faraday_middleware", "~> 0.2.1"
17
+ #s.add_dependency "faraday", "~> 0.5.3"
18
+ s.add_dependency "faraday_middleware", "~> 0.3.0"
19
19
  s.add_dependency "multi_xml", "~> 0.2.0"
20
20
  s.add_dependency "hashie", "~> 0.4.0"
21
21
 
@@ -15,7 +15,7 @@ module Freckly
15
15
  attr_accessor :token, :subdomain
16
16
 
17
17
  def authed_get(path, options={})
18
- results = authed_connection.get do |request|
18
+ authed_connection.get do |request|
19
19
  request.url(path, options)
20
20
  end.body
21
21
  end
@@ -25,7 +25,9 @@ module Freckly
25
25
  :user_agent => "Freckly",
26
26
  "X-FreckleToken" => token
27
27
  }
28
- @connection ||= Faraday::Connection.new(:url => "http://#{subdomain}.letsfreckle.com", :headers => headers) do |builder|
28
+ @connection ||= Faraday::Connection.new(:url => "https://#{subdomain}.letsfreckle.com",
29
+ :headers => headers,
30
+ :ssl => {:verify => false}) do |builder|
29
31
  builder.adapter Faraday.default_adapter
30
32
  builder.use Faraday::Response::ParseXml
31
33
  builder.use Faraday::Response::Mashify
@@ -2,20 +2,13 @@ module Freckly
2
2
  class Entry
3
3
  class << self
4
4
  def all(options={})
5
- options = commatorize_params(options)
6
- Freckly.authed_get("/api/entries.xml", options)[:entries].map {|entry| new(entry) }
7
- end
8
-
9
- private
5
+ results = Freckly.authed_get("/api/entries.xml", :search => options)
10
6
 
11
- def commatorize_params(params)
12
- params.each_pair do |key, value|
13
- next unless value.is_a?(Array)
14
-
15
- params[key] = value.join(",")
7
+ if entries = results[:entries]
8
+ entries.map {|entry| new(entry) }
9
+ else
10
+ []
16
11
  end
17
-
18
- params
19
12
  end
20
13
  end
21
14
 
@@ -11,7 +11,7 @@ module Freckly
11
11
  end
12
12
 
13
13
  def entries(options={})
14
- Entry.find_all_for_project(id, options)
14
+ Entry.all(options.merge(:projects => id))
15
15
  end
16
16
 
17
17
  %w{ name id }.each do |method_name|
@@ -1,3 +1,3 @@
1
1
  module Freckly
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -16,21 +16,35 @@ describe Freckly::Entry do
16
16
  describe "the request" do
17
17
  subject { WebMock::API }
18
18
 
19
- it { should have_requested(:get, "http://test.letsfreckle.com/api/entries.xml").with(:headers => {"X-FreckleToken" => "aaa"}, :query => {:projects => "123,192"}) }
19
+ it { should have_requested(:get, "https://test.letsfreckle.com/api/entries.xml").with(:headers => {"X-FreckleToken" => "aaa"},
20
+ :query => {:search => {
21
+ :projects => "123,192"}
22
+ }) }
20
23
  end
21
24
 
22
- describe "the response" do
23
- subject { @response }
25
+ context "when returning something" do
26
+ describe "the response" do
27
+ subject { @response }
24
28
 
25
- it { should be_a(Array) }
29
+ it { should be_a(Array) }
30
+
31
+ its(:first) { should be_a(Freckly::Entry) }
32
+ end
33
+ end
26
34
 
27
- its(:first) { should be_a(Freckly::Entry) }
35
+ context "when returning nothing" do
36
+ before { stub_request(:any, /entries/) }
37
+
38
+ subject { Freckly::Entry.all(:projects => %w{123 192}) }
39
+
40
+ it { should be_a(Array) }
41
+ it { should be_empty }
28
42
  end
29
43
  end
30
44
  end
31
45
 
32
46
  describe "Initialization" do
33
- let(:entry) { Freckly::Entry.find_all_for_project(123).first }
47
+ let(:entry) { Freckly::Entry.all(:projects => 123).first }
34
48
  subject { entry }
35
49
 
36
50
  its(:billable) { should be_true }
@@ -13,7 +13,7 @@ describe Freckly::Project do
13
13
  before { Freckly::Project.all }
14
14
  subject { WebMock }
15
15
 
16
- it { should have_requested(:get, "http://test.letsfreckle.com/api/projects.xml").with(:headers => {"X-FreckleToken" => "aaa"}) }
16
+ it { should have_requested(:get, "https://test.letsfreckle.com/api/projects.xml").with(:headers => {"X-FreckleToken" => "aaa"}) }
17
17
  end
18
18
 
19
19
  describe "the response" do
@@ -36,7 +36,11 @@ describe Freckly::Project do
36
36
  end
37
37
 
38
38
  describe "#entries" do
39
- before { Freckly::Entry.stub!(:find_all_for_project).and_return([mock]) }
39
+ before do
40
+ stub_request(:any, /entries/).to_return(:body => fixture("entries.xml"))
41
+ Freckly::Entry.stub!(:find_all_for_project).and_return([mock])
42
+ end
43
+
40
44
  let(:project) { Freckly::Project.all.first }
41
45
 
42
46
  subject { project.entries }
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: freckly
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Red Davis
@@ -15,45 +15,29 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-15 00:00:00 +00:00
18
+ date: 2010-11-16 00:00:00 +00:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: faraday
22
+ name: faraday_middleware
23
23
  prerelease: false
24
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
- hash: 13
29
+ hash: 19
30
30
  segments:
31
31
  - 0
32
- - 5
33
32
  - 3
34
- version: 0.5.3
35
- type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: faraday_middleware
39
- prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- hash: 21
46
- segments:
47
33
  - 0
48
- - 2
49
- - 1
50
- version: 0.2.1
34
+ version: 0.3.0
51
35
  type: :runtime
52
- version_requirements: *id002
36
+ version_requirements: *id001
53
37
  - !ruby/object:Gem::Dependency
54
38
  name: multi_xml
55
39
  prerelease: false
56
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ requirement: &id002 !ruby/object:Gem::Requirement
57
41
  none: false
58
42
  requirements:
59
43
  - - ~>
@@ -65,11 +49,11 @@ dependencies:
65
49
  - 0
66
50
  version: 0.2.0
67
51
  type: :runtime
68
- version_requirements: *id003
52
+ version_requirements: *id002
69
53
  - !ruby/object:Gem::Dependency
70
54
  name: hashie
71
55
  prerelease: false
72
- requirement: &id004 !ruby/object:Gem::Requirement
56
+ requirement: &id003 !ruby/object:Gem::Requirement
73
57
  none: false
74
58
  requirements:
75
59
  - - ~>
@@ -81,11 +65,11 @@ dependencies:
81
65
  - 0
82
66
  version: 0.4.0
83
67
  type: :runtime
84
- version_requirements: *id004
68
+ version_requirements: *id003
85
69
  - !ruby/object:Gem::Dependency
86
70
  name: rspec
87
71
  prerelease: false
88
- requirement: &id005 !ruby/object:Gem::Requirement
72
+ requirement: &id004 !ruby/object:Gem::Requirement
89
73
  none: false
90
74
  requirements:
91
75
  - - ~>
@@ -97,11 +81,11 @@ dependencies:
97
81
  - 0
98
82
  version: 2.1.0
99
83
  type: :development
100
- version_requirements: *id005
84
+ version_requirements: *id004
101
85
  - !ruby/object:Gem::Dependency
102
86
  name: webmock
103
87
  prerelease: false
104
- requirement: &id006 !ruby/object:Gem::Requirement
88
+ requirement: &id005 !ruby/object:Gem::Requirement
105
89
  none: false
106
90
  requirements:
107
91
  - - ~>
@@ -113,11 +97,11 @@ dependencies:
113
97
  - 1
114
98
  version: 1.6.1
115
99
  type: :development
116
- version_requirements: *id006
100
+ version_requirements: *id005
117
101
  - !ruby/object:Gem::Dependency
118
102
  name: rake
119
103
  prerelease: false
120
- requirement: &id007 !ruby/object:Gem::Requirement
104
+ requirement: &id006 !ruby/object:Gem::Requirement
121
105
  none: false
122
106
  requirements:
123
107
  - - ~>
@@ -129,7 +113,7 @@ dependencies:
129
113
  - 7
130
114
  version: 0.8.7
131
115
  type: :development
132
- version_requirements: *id007
116
+ version_requirements: *id006
133
117
  description: Wrapper for Freckle
134
118
  email:
135
119
  - red@railslove.com