catptcha 0.1.5 → 0.1.6

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.
@@ -24,14 +24,19 @@ Generate and run the migration.
24
24
  ruby script/generate catptcha_migration add_catptcha_tables
25
25
  rake db:migrate
26
26
 
27
+ Run the tests.
28
+
29
+ rake db:test:prepare
30
+ rake catptcha:test
31
+
27
32
  Seed the images.
28
33
 
29
34
  rake catptcha:seed
30
35
 
31
- Run the tests.
36
+ If you have Amazon S3 configured on Rails boot, you can easily upload the
37
+ images to your own bucket. Otherwise images are still served from Flickr!
32
38
 
33
- rake db:test:prepare
34
- rake catptcha:test
39
+ ./script/runner 'Catptcha::Seed.s3_upload("YOUR_BUCKET_NAME")'
35
40
 
36
41
  ## Usage
37
42
 
@@ -60,7 +65,6 @@ There are also tools for implementing an admin/review UI:
60
65
 
61
66
  ## TODO and Known Bugs
62
67
 
63
- * lacks the ability to store or upload photos to external storage
64
68
  * current implementation is closely tied to ActiveRecord and Flickr
65
69
 
66
70
  ## Author
@@ -11,6 +11,7 @@ Gem::Specification.new do |s|
11
11
  s.add_dependency "commonthread-flickr_fu", "0.3.0"
12
12
  s.add_dependency "activerecord", "~>2.3"
13
13
  s.add_dependency "will_paginate"
14
+ s.add_dependency "aws-s3"
14
15
  s.add_development_dependency "rr"
15
16
  s.authors = ['Zack Hobson']
16
17
  s.files = `git ls-files`.split("\n")
@@ -1,5 +1,5 @@
1
1
  module Catptcha
2
- VERSION = '0.1.5'
2
+ VERSION = '0.1.6'
3
3
 
4
4
  class << self
5
5
  # Get a list of 3 kitten photos
@@ -1,4 +1,6 @@
1
1
  require 'flickr_fu'
2
+ require 'aws/s3'
3
+ require 'open-uri'
2
4
 
3
5
  module Catptcha::Seed
4
6
  SEED_GROUP_KITTENS = {
@@ -36,6 +38,19 @@ module Catptcha::Seed
36
38
  end
37
39
  end
38
40
 
41
+ def s3_upload bucket_name, silent=false
42
+ loop do
43
+ photos = Catptcha::Photo.all(:conditions => "url like '%flickr.com/%'", :limit => 50)
44
+ break if photos.empty?
45
+ photos.each do |photo|
46
+ open(photo.url) {|f| AWS::S3::S3Object.store("catptcha_#{photo.key}", f, bucket_name, :access => :public_read) }
47
+ photo.url = AWS::S3::S3Object.url_for("catptcha_#{photo.key}", bucket_name, :authenticated => false)
48
+ photo.save
49
+ puts "image #{photo.key} uploaded to #{photo.url}" unless silent
50
+ end
51
+ end
52
+ end
53
+
39
54
  # fetches up to 2500 photos
40
55
  def update_photos group
41
56
  # http://www.flickr.com/services/api/flickr.photos.search.html
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: catptcha
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 5
10
- version: 0.1.5
9
+ - 6
10
+ version: 0.1.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Zack Hobson
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-05-24 00:00:00 -07:00
18
+ date: 2012-05-25 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -64,7 +64,7 @@ dependencies:
64
64
  type: :runtime
65
65
  version_requirements: *id003
66
66
  - !ruby/object:Gem::Dependency
67
- name: rr
67
+ name: aws-s3
68
68
  prerelease: false
69
69
  requirement: &id004 !ruby/object:Gem::Requirement
70
70
  none: false
@@ -75,8 +75,22 @@ dependencies:
75
75
  segments:
76
76
  - 0
77
77
  version: "0"
78
- type: :development
78
+ type: :runtime
79
79
  version_requirements: *id004
80
+ - !ruby/object:Gem::Dependency
81
+ name: rr
82
+ prerelease: false
83
+ requirement: &id005 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ hash: 3
89
+ segments:
90
+ - 0
91
+ version: "0"
92
+ type: :development
93
+ version_requirements: *id005
80
94
  description: " Choose the kitten!\n"
81
95
  email:
82
96
  executables: []