npo_assets 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.2
1
+ 0.4.0
@@ -1,9 +1,6 @@
1
1
  module NPO
2
2
  module Assets
3
3
  class Asset < ActiveRecord::Base
4
- include HTTParty
5
- format :xml
6
-
7
4
  attr_accessor :file, :remote_url
8
5
 
9
6
  before_save :post_to_media_server
@@ -11,8 +8,9 @@ module NPO
11
8
 
12
9
  class << self
13
10
  def list(account_name=nil, options={})
14
- url = "#{ NPO::Assets.base_url }/assets.xml#{ extract_list_options(options) }"
15
- res = get(url, :headers => headers(account_name))
11
+ url = "#{ NPO::Assets.base_url }/assets.xml#{ extract_list_options(options) }"
12
+ res = RestClient.get(url, :headers => headers(account_name))
13
+ res = Crack::XML.parse(res)
16
14
 
17
15
  if res && res['assets']
18
16
  res['assets']['asset'].map do |vars|
@@ -49,23 +47,32 @@ module NPO
49
47
  url = [NPO::Assets.base_url, 'assets']
50
48
  url << self.remote_id unless new_record?
51
49
 
52
- attrs = @file ? {:file => @file} : {:url => @remote_url}
53
- response = self.class.send(new_record? ? :post : :put,
50
+ if @file
51
+ attrs = {:file => @file}
52
+ else
53
+ attrs = {:url => @remote_url}
54
+ end
55
+
56
+ response = RestClient.send(new_record? ? :post : :put,
54
57
  url.join('/'),
55
- :query => { :asset => attrs },
56
- :headers => self.class.headers)
58
+ { :asset => attrs },
59
+ self.class.headers)
60
+ puts response
61
+ vars = Crack::XML.parse(response)
62
+
57
63
  if response.code == 422
58
- response['errors']['error'].each { |msg| errors.add_to_base(msg) }
64
+ vars['errors']['error'].each { |msg| errors.add_to_base(msg) }
59
65
  false
60
66
  else
61
- self.url = response['asset']['url']
62
- self.remote_id = response['asset']['id']
67
+ self.url = vars['asset']['url']
68
+ self.remote_id = vars['asset']['id']
63
69
  true
64
70
  end
65
71
  end
66
72
 
67
73
  def delete_from_media_server
68
- HTTParty.delete("#{NPO::Assets.base_url}/assets/#{self.remote_id}", :headers => self.class.headers)
74
+ RestClient.delete("#{NPO::Assets.base_url}/assets/#{self.remote_id}", self.class.headers)
75
+ rescue RestClient::ResourceNotFound
69
76
  end
70
77
  end
71
78
  end
data/lib/npo_assets.rb CHANGED
@@ -1,4 +1,5 @@
1
- require 'httparty'
1
+ require 'rest-client'
2
+ require 'crack'
2
3
  require 'npo_assets/asset'
3
4
 
4
5
  module NPO
data/npo_assets.gemspec CHANGED
@@ -1,55 +1,52 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{npo_assets}
8
- s.version = "0.3.2"
8
+ s.version = "0.4.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Bart Zonneveld"]
12
- s.date = %q{2010-03-29}
12
+ s.date = %q{2011-04-12}
13
13
  s.description = %q{Wrapper for media db}
14
14
  s.email = %q{loop@superinfinite.com}
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
- "README.rdoc"
17
+ "README.rdoc"
18
18
  ]
19
19
  s.files = [
20
20
  ".document",
21
- ".gitignore",
22
- "LICENSE",
23
- "README.rdoc",
24
- "Rakefile",
25
- "VERSION",
26
- "generators/npo_assets/npo_assets_generator.rb",
27
- "generators/npo_assets/templates/initializer.rb",
28
- "generators/npo_assets/templates/migration.rb",
29
- "lib/npo_assets.rb",
30
- "lib/npo_assets/asset.rb",
31
- "npo_assets.gemspec",
32
- "spec/npo_assets/asset_spec.rb",
33
- "spec/npo_assets_spec.rb",
34
- "spec/spec.opts",
35
- "spec/spec_helper.rb"
21
+ "LICENSE",
22
+ "README.rdoc",
23
+ "Rakefile",
24
+ "VERSION",
25
+ "generators/npo_assets/npo_assets_generator.rb",
26
+ "generators/npo_assets/templates/initializer.rb",
27
+ "generators/npo_assets/templates/migration.rb",
28
+ "lib/npo_assets.rb",
29
+ "lib/npo_assets/asset.rb",
30
+ "npo_assets.gemspec",
31
+ "spec/npo_assets/asset_spec.rb",
32
+ "spec/npo_assets_spec.rb",
33
+ "spec/spec.opts",
34
+ "spec/spec_helper.rb"
36
35
  ]
37
36
  s.homepage = %q{http://github.com/bartzon/npo_assets}
38
- s.rdoc_options = ["--charset=UTF-8"]
39
37
  s.require_paths = ["lib"]
40
- s.rubygems_version = %q{1.3.6}
38
+ s.rubygems_version = %q{1.6.2}
41
39
  s.summary = %q{Wrapper for media db}
42
40
  s.test_files = [
43
41
  "spec/npo_assets/asset_spec.rb",
44
- "spec/npo_assets_spec.rb",
45
- "spec/spec_helper.rb"
42
+ "spec/npo_assets_spec.rb",
43
+ "spec/spec_helper.rb"
46
44
  ]
47
45
 
48
46
  if s.respond_to? :specification_version then
49
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
50
47
  s.specification_version = 3
51
48
 
52
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
49
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
53
50
  s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
54
51
  s.add_development_dependency(%q<httparty>, [">= 0"])
55
52
  else
@@ -14,8 +14,8 @@ describe NPO::Assets::Asset do
14
14
  describe "posting to the server" do
15
15
  before(:each) do
16
16
  hash = {"asset" => {"url" => "url", "remote_id" => "2"}}
17
- @response = HTTParty::Response.new(hash, hash, 200, nil)
18
- NPO::Assets::Asset.stub!(:post).and_return @response
17
+ Crack::XML.stub!(:parse).and_return hash
18
+ RestClient.stub!(:post).and_return mock("Response", :code => 200)
19
19
  @asset = NPO::Assets::Asset.new(:file => "file")
20
20
  end
21
21
 
@@ -25,17 +25,17 @@ describe NPO::Assets::Asset do
25
25
  end
26
26
 
27
27
  it "should send the correct vars with a file upload" do
28
- NPO::Assets::Asset.should_receive(:post).with("http://test.com/assets",
29
- :query => {:asset => {:file => "file"}},
30
- :headers => {'X-Account' => 'account'})
28
+ RestClient.should_receive(:post).with("http://test.com/assets",
29
+ {:asset => {:file => "file"}},
30
+ {'X-Account' => 'account'})
31
31
  do_create
32
32
  end
33
33
 
34
34
  it "should send the correct vars with a remote url" do
35
35
  asset = NPO::Assets::Asset.new(:remote_url => "remote_url")
36
- NPO::Assets::Asset.should_receive(:post).with("http://test.com/assets",
37
- :query => {:asset => {:url => "remote_url"}},
38
- :headers => {'X-Account' => 'account'})
36
+ RestClient.should_receive(:post).with("http://test.com/assets",
37
+ {:asset => {:url => "remote_url"}},
38
+ {'X-Account' => 'account'})
39
39
  asset.save
40
40
  end
41
41
 
@@ -47,8 +47,8 @@ describe NPO::Assets::Asset do
47
47
  "updated_at" => "2010-03-03T12:42:47Z",
48
48
  "url" => "000/000/000.jpg",
49
49
  "file_size" => "12645"} }
50
- @response = HTTParty::Response.new(hash, hash, 201, nil)
51
- NPO::Assets::Asset.stub!(:post).and_return @response
50
+ Crack::XML.stub!(:parse).and_return hash
51
+ RestClient.stub!(:post).and_return mock("Response", :code => 200)
52
52
  end
53
53
 
54
54
  it "should return true" do
@@ -74,8 +74,8 @@ describe NPO::Assets::Asset do
74
74
  describe "with failed save" do
75
75
  before(:each) do
76
76
  hash = {"errors"=>{"error"=>"File must be set."}}
77
- @response = HTTParty::Response.new(hash, hash, 422, nil)
78
- NPO::Assets::Asset.stub!(:post).and_return @response
77
+ Crack::XML.stub!(:parse).and_return hash
78
+ RestClient.stub!(:post).and_return mock("Response", :code => 422)
79
79
  end
80
80
 
81
81
  it "should return false" do
@@ -99,7 +99,9 @@ describe NPO::Assets::Asset do
99
99
  @asset.remote_id = 2
100
100
  @asset.save
101
101
  @asset.file = "new_file"
102
- NPO::Assets::Asset.stub!(:put).and_return @response
102
+ Crack::XML.stub!(:parse).and_return({'asset' => {'url' => '', 'id' => ''}})
103
+ RestClient.stub!(:put).and_return mock("Response", :code => 200)
104
+ File.stub!(:new).and_return 'file'
103
105
  end
104
106
 
105
107
  def do_update
@@ -107,9 +109,9 @@ describe NPO::Assets::Asset do
107
109
  end
108
110
 
109
111
  it "should send the correct vars" do
110
- NPO::Assets::Asset.should_receive(:put).with("http://test.com/assets/2",
111
- :query => {:asset => {:file => "new_file"}},
112
- :headers => {'X-Account' => 'account'})
112
+ RestClient.should_receive(:put).with("http://test.com/assets/2",
113
+ {:asset => {:file => 'new_file'}},
114
+ {'X-Account' => 'account'})
113
115
  do_update
114
116
  end
115
117
 
@@ -121,8 +123,8 @@ describe NPO::Assets::Asset do
121
123
  "updated_at" => "2010-03-03T12:42:47Z",
122
124
  "url" => "000/000/000.jpg",
123
125
  "file_size" => "12645"} }
124
- @response = HTTParty::Response.new(hash, hash, 201, nil)
125
- NPO::Assets::Asset.stub!(:put).and_return @response
126
+ Crack::XML.stub!(:parse).and_return hash
127
+ RestClient.stub!(:put).and_return mock("Response", :code => 200)
126
128
  end
127
129
 
128
130
  it "should return true" do
@@ -138,8 +140,8 @@ describe NPO::Assets::Asset do
138
140
  describe "with failed save" do
139
141
  before(:each) do
140
142
  hash = {"errors"=>{"error"=>"File must be set."}}
141
- @response = HTTParty::Response.new(hash, hash, 422, nil)
142
- NPO::Assets::Asset.stub!(:put).and_return @response
143
+ Crack::XML.stub!(:parse).and_return hash
144
+ RestClient.stub!(:put).and_return mock("Response", :code => 422)
143
145
  end
144
146
 
145
147
  it "should return false" do
@@ -157,11 +159,11 @@ describe NPO::Assets::Asset do
157
159
  before(:each) do
158
160
  @asset.remote_id = 2
159
161
  @asset.save
160
- HTTParty.stub!(:delete).and_return @response
162
+ RestClient.stub!(:delete).and_return @response
161
163
  end
162
164
 
163
165
  it "should send the correct vars" do
164
- HTTParty.should_receive(:delete).with("http://test.com/assets/2", :headers => {'X-Account' => 'account'})
166
+ RestClient.should_receive(:delete).with("http://test.com/assets/2", {'X-Account' => 'account'})
165
167
  @asset.destroy
166
168
  end
167
169
  end
@@ -170,8 +172,8 @@ describe NPO::Assets::Asset do
170
172
  describe "when generating an url" do
171
173
  before(:each) do
172
174
  hash = {"asset" => {"url" => "1.jpg"}}
173
- @response = HTTParty::Response.new(hash, hash, 200, nil)
174
- NPO::Assets::Asset.stub!(:post).and_return @response
175
+ Crack::XML.stub!(:parse).and_return hash
176
+ RestClient.stub!(:post).and_return mock("Response", :code => 200)
175
177
 
176
178
  @asset = NPO::Assets::Asset.create!
177
179
  end
@@ -188,7 +190,8 @@ describe NPO::Assets::Asset do
188
190
  describe "when listing the assets" do
189
191
  describe "request" do
190
192
  before(:each) do
191
- NPO::Assets::Asset.stub!(:get).and_return ""
193
+ Crack::XML.stub!(:parse)
194
+ RestClient.stub!(:get).and_return mock("Response", :code => 200)
192
195
  end
193
196
 
194
197
  def do_list(account='omroep_nl', options={})
@@ -196,7 +199,7 @@ describe NPO::Assets::Asset do
196
199
  end
197
200
 
198
201
  def should_get(url, options)
199
- NPO::Assets::Asset.should_receive(:get).with(url, options)
202
+ RestClient.should_receive(:get).with(url, options)
200
203
  end
201
204
 
202
205
  it "should call the correct url with an explicit account name" do
@@ -233,7 +236,8 @@ describe NPO::Assets::Asset do
233
236
  "asset"=>[{"name"=>"bach", "url"=>"000/000/001.jpg", "id"=>"10"},
234
237
  {"name"=>"bach", "url"=>"000/000/002.jpg", "id"=>"20"}]}}
235
238
 
236
- NPO::Assets::Asset.stub!(:get).and_return @response
239
+ Crack::XML.stub!(:parse).and_return @response
240
+ RestClient.stub!(:get).and_return mock("Response")
237
241
  end
238
242
 
239
243
  def do_list
@@ -241,7 +245,7 @@ describe NPO::Assets::Asset do
241
245
  end
242
246
 
243
247
  it "should return [] if there are no items" do
244
- NPO::Assets::Asset.stub!(:get).and_return("nil_classes" => nil)
248
+ Crack::XML.stub!(:parse).and_return("nil_classes" => nil)
245
249
  do_list.should == []
246
250
  end
247
251
 
@@ -252,8 +256,8 @@ describe NPO::Assets::Asset do
252
256
  end
253
257
 
254
258
  it "should not post to the server *again*" do
255
- NPO::Assets::Asset.should_not_receive(:post)
256
- NPO::Assets::Asset.should_not_receive(:put)
259
+ RestClient.should_not_receive(:post)
260
+ RestClient.should_not_receive(:put)
257
261
  do_list
258
262
  end
259
263
 
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: npo_assets
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ hash: 15
5
+ prerelease:
5
6
  segments:
6
7
  - 0
7
- - 3
8
- - 2
9
- version: 0.3.2
8
+ - 4
9
+ - 0
10
+ version: 0.4.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - Bart Zonneveld
@@ -14,16 +15,18 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-03-29 00:00:00 +02:00
18
+ date: 2011-04-12 00:00:00 +02:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: rspec
22
23
  prerelease: false
23
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
24
26
  requirements:
25
27
  - - ">="
26
28
  - !ruby/object:Gem::Version
29
+ hash: 13
27
30
  segments:
28
31
  - 1
29
32
  - 2
@@ -35,9 +38,11 @@ dependencies:
35
38
  name: httparty
36
39
  prerelease: false
37
40
  requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
38
42
  requirements:
39
43
  - - ">="
40
44
  - !ruby/object:Gem::Version
45
+ hash: 3
41
46
  segments:
42
47
  - 0
43
48
  version: "0"
@@ -54,7 +59,6 @@ extra_rdoc_files:
54
59
  - README.rdoc
55
60
  files:
56
61
  - .document
57
- - .gitignore
58
62
  - LICENSE
59
63
  - README.rdoc
60
64
  - Rakefile
@@ -74,28 +78,32 @@ homepage: http://github.com/bartzon/npo_assets
74
78
  licenses: []
75
79
 
76
80
  post_install_message:
77
- rdoc_options:
78
- - --charset=UTF-8
81
+ rdoc_options: []
82
+
79
83
  require_paths:
80
84
  - lib
81
85
  required_ruby_version: !ruby/object:Gem::Requirement
86
+ none: false
82
87
  requirements:
83
88
  - - ">="
84
89
  - !ruby/object:Gem::Version
90
+ hash: 3
85
91
  segments:
86
92
  - 0
87
93
  version: "0"
88
94
  required_rubygems_version: !ruby/object:Gem::Requirement
95
+ none: false
89
96
  requirements:
90
97
  - - ">="
91
98
  - !ruby/object:Gem::Version
99
+ hash: 3
92
100
  segments:
93
101
  - 0
94
102
  version: "0"
95
103
  requirements: []
96
104
 
97
105
  rubyforge_project:
98
- rubygems_version: 1.3.6
106
+ rubygems_version: 1.6.2
99
107
  signing_key:
100
108
  specification_version: 3
101
109
  summary: Wrapper for media db
data/.gitignore DELETED
@@ -1,21 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC