paperclip_database 2.0.0 → 2.2.0

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/.gitignore CHANGED
@@ -20,6 +20,9 @@ pkg
20
20
  # Bundler generated
21
21
  *emfile.lock
22
22
 
23
+ # Test suite generated
24
+ test/debug.log
25
+
23
26
  # Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
24
27
  #
25
28
  # * Create a file at ~/.gitignore
@@ -3,7 +3,7 @@ Feature: Rails integration
3
3
  Background:
4
4
  Given I generate a new rails application
5
5
  And I run a "scaffold" generator to generate a "User" scaffold with "name:string"
6
- And I run a "paperclip" generator to add a paperclip "attachment" to the "User" model
6
+ And I run a "paperclip" generator to add a paperclip "avatar" to the "User" model
7
7
  And I run a migration
8
8
  And I update my new user view to include the file upload field
9
9
  And I update my user view to include the attachment
@@ -12,34 +12,34 @@ Feature: Rails integration
12
12
  Scenario: Database integration test
13
13
  Given I add this snippet to the User model:
14
14
  """
15
- has_attached_file :attachment,
15
+ has_attached_file :avatar,
16
16
  :storage => :database,
17
- :database_table => :user_attachments,
18
- :url => '/user_attachment_views/:id?style=:style'
17
+ :database_table => :user_avatars,
18
+ :url => '/user_avatar_views/:id?style=:style'
19
19
  """
20
- And I run a "scaffold" generator to generate a "UserAttachmentView" scaffold with ""
21
- Given I replace /^ def show$.*?^ end$/ with this snippet in the "user_attachment_views" controller:
20
+ And I run a "scaffold" generator to generate a "UserAvatarView" scaffold with ""
21
+ Given I replace /^ def show$.*?^ end$/ with this snippet in the "user_avatar_views" controller:
22
22
  """
23
23
  def show
24
24
  style = params[:style] ? params[:style] : 'original'
25
25
  record = User.find(params[:id])
26
- send_data record.attachment.file_contents(style),
27
- :filename => record.attachment_file_name,
28
- :type => record.attachment_content_type
26
+ send_data record.avatar.file_contents(style),
27
+ :filename => record.avatar_file_name,
28
+ :type => record.avatar_content_type
29
29
  end
30
30
  """
31
- Given I replace /before_action :set_user_attachment_view.*?$/ with this snippet in the "user_attachment_views" controller:
31
+ Given I replace /before_action :set_user_avatar_view.*?$/ with this snippet in the "user_avatar_views" controller:
32
32
  """
33
33
  """
34
34
 
35
- And I run a "paperclip_database:migration" generator to create storage for paperclip "attachment" to the "User" model
35
+ And I run a "paperclip_database:migration" generator to create storage for paperclip "avatar" to the "User" model
36
36
  And I run a migration
37
37
  And I start the rails application
38
38
  When I go to the new user page
39
39
  And I fill in "Name" with "something"
40
- And I attach the file "test/fixtures/5k.png" to "Attachment"
40
+ And I attach the file "test/fixtures/5k.png" to "Avatar"
41
41
  And I press "Submit"
42
42
  Then I should see "Name: something"
43
- And I should see an image with a path of "/user_attachment_views/1?style=original"
44
- And the file at "/user_attachment_views/1?style=original" should be the same as "test/fixtures/5k.png"
43
+ And I should see an image with a path of "/user_avatar_views/1?style=original"
44
+ And the file at "/user_avatar_views/1?style=original" should be the same as "test/fixtures/5k.png"
45
45
 
@@ -35,7 +35,7 @@ Given "I allow the attachment to be submitted" do
35
35
  if framework_major_version == 3
36
36
  transform_file("app/models/user.rb") do |content|
37
37
  content.gsub("attr_accessible :name",
38
- "attr_accessible :name, :attachment")
38
+ "attr_accessible :name, :avatar")
39
39
  end
40
40
  else
41
41
  transform_file("app/controllers/users_controller.rb") do |content|
@@ -91,8 +91,8 @@ Given /^I update my new user view to include the file upload field$/ do
91
91
  <%= form_for @user, :html => { :multipart => true } do |f| %>
92
92
  <%= f.label :name %>
93
93
  <%= f.text_field :name %>
94
- <%= f.label :attachment %>
95
- <%= f.file_field :attachment %>
94
+ <%= f.label :avatar %>
95
+ <%= f.file_field :avatar %>
96
96
  <%= submit_tag "Submit" %>
97
97
  <% end %>
98
98
  """
@@ -104,7 +104,7 @@ Given /^I update my user view to include the attachment$/ do
104
104
  Given I overwrite "app/views/users/show.html.erb" with:
105
105
  """
106
106
  <p>Name: <%= @user.name %></p>
107
- <p>Attachment: <%= image_tag @user.attachment.url %></p>
107
+ <p>Avatar: <%= image_tag @user.avatar.url %></p>
108
108
  """
109
109
  }
110
110
  end
@@ -20,7 +20,7 @@ class PaperclipDatabaseGenerator < Rails::Generator::NamedBase
20
20
 
21
21
  def generate_file_name
22
22
  debugger
23
- names = attachments.map{|a| "#{class_name.underscore}_#{a.pluralize}" }
23
+ names = attachments.map{|a| "#{class_name.underscore.tr('/', '_')}_#{a.pluralize}" }
24
24
  names = names[0..-2] + ["and", names[-1]] if names.length > 1
25
25
  "create_#{names.join('_')}"
26
26
  end
@@ -1,8 +1,8 @@
1
1
  class <%= migration_name %> < ActiveRecord::Migration
2
2
  def self.up
3
3
  <% attachments.each do |attachment| -%>
4
- create_table :<%= class_name.underscore %>_<%= attachment.pluralize %> do |t|
5
- t.integer :<%= class_name.underscore %>_id
4
+ create_table :<%= class_name.underscore.tr('/', '_') %>_<%= attachment.pluralize %> do |t|
5
+ t.integer :<%= class_name.underscore.tr('/', '_') %>_id
6
6
  t.string :style
7
7
  t.binary :file_contents
8
8
  end
@@ -11,7 +11,7 @@ class <%= migration_name %> < ActiveRecord::Migration
11
11
 
12
12
  def self.down
13
13
  <% attachments.each do |attachment| -%>
14
- drop_table :<%= class_name.underscore %>_<%= attachment.pluralize %>
14
+ drop_table :<%= class_name.underscore.tr('/', '_') %>_<%= attachment.pluralize %>
15
15
  <% end -%>
16
16
  end
17
17
  end
@@ -1,8 +1,8 @@
1
1
  class <%= migration_name %> < ActiveRecord::Migration
2
2
  def self.up
3
3
  <% attachments.each do |attachment| -%>
4
- create_table :<%= name.underscore.camelize.tableize %>_<%= attachment.pluralize %> do |t|
5
- t.integer :<%= name.underscore.camelize.tableize %>_id
4
+ create_table :<%= name.underscore.camelize.tableize.tr('/', '_') %>_<%= attachment.pluralize %> do |t|
5
+ t.integer :<%= name.underscore.camelize.tableize.tr('/', '_') %>_id
6
6
  t.string :style
7
7
  t.binary :file_contents
8
8
  end
@@ -11,7 +11,7 @@ class <%= migration_name %> < ActiveRecord::Migration
11
11
 
12
12
  def self.down
13
13
  <% attachments.each do |attachment| -%>
14
- drop_table :<%= name.underscore.camelize.tableize %>_<%= attachment.pluralize %>
14
+ drop_table :<%= name.underscore.camelize.tableize.tr('/', '_') %>_<%= attachment.pluralize %>
15
15
  <% end -%>
16
16
  end
17
17
  end
@@ -24,7 +24,7 @@ module PaperclipDatabase
24
24
  protected
25
25
 
26
26
  def migration_name
27
- "create_#{name.underscore}_#{attachment_names.map{|n| n.pluralize}.join('_and_')}"
27
+ "create_#{name.underscore.tr('/', '_')}_#{attachment_names.map{|n| n.pluralize}.join('_and_')}"
28
28
  end
29
29
 
30
30
  def migration_file_name
@@ -1,8 +1,8 @@
1
1
  class <%= migration_class_name %> < ActiveRecord::Migration
2
2
  def self.up
3
3
  <% attachment_names.each do |attachment| -%>
4
- create_table :<%= class_name.underscore %>_<%= attachment.pluralize %> do |t|
5
- t.integer :<%= class_name.underscore %>_id
4
+ create_table :<%= class_name.underscore.tr('/', '_') %>_<%= attachment.pluralize %> do |t|
5
+ t.integer :<%= class_name.underscore.tr('/', '_') %>_id
6
6
  t.string :style
7
7
  t.binary :file_contents
8
8
  end
@@ -11,7 +11,7 @@ class <%= migration_class_name %> < ActiveRecord::Migration
11
11
 
12
12
  def self.down
13
13
  <% attachment_names.each do |attachment| -%>
14
- drop_table :<%= class_name.underscore %>_<%= attachment.pluralize %>
14
+ drop_table :<%= class_name.underscore.tr('/', '_') %>_<%= attachment.pluralize %>
15
15
  <% end -%>
16
16
  end
17
17
  end
@@ -80,10 +80,17 @@ module Paperclip
80
80
  end
81
81
 
82
82
  def setup_paperclip_files_model
83
- #TODO: This fails when your model is in a namespace.
84
- @paperclip_files = "#{instance.class.name.underscore}_#{name.to_s}_paperclip_files"
85
- if !Object.const_defined?(@paperclip_files.classify)
86
- @paperclip_file = Object.const_set(@paperclip_files.classify, Class.new(::ActiveRecord::Base))
83
+ # If the model is in a namespace, look up that module
84
+ if instance.class.name.include?('::')
85
+ module_name = PaperclipDatabase::deconstantize(instance.class.name)
86
+ @paperclip_class_module = module_name.constantize rescue Object
87
+ else
88
+ @paperclip_class_module = Object
89
+ end
90
+
91
+ @paperclip_files = "#{instance.class.name.demodulize.underscore}_#{name.to_s}_paperclip_files"
92
+ if !@paperclip_class_module.const_defined?(@paperclip_files.classify)
93
+ @paperclip_file = @paperclip_class_module.const_set(@paperclip_files.classify, Class.new(::ActiveRecord::Base))
87
94
  @paperclip_file.table_name = @options[:database_table] || name.to_s.pluralize
88
95
  @paperclip_file.validates_uniqueness_of :style, :scope => instance.class.table_name.classify.underscore + '_id'
89
96
  case Rails::VERSION::STRING
@@ -93,13 +100,12 @@ module Paperclip
93
100
  @paperclip_file.scope :file_for, lambda {|style| @paperclip_file.where('style = ?', style) }
94
101
  end
95
102
  else
96
- @paperclip_file = Object.const_get(@paperclip_files.classify)
103
+ @paperclip_file = @paperclip_class_module.const_get(@paperclip_files.classify)
97
104
  end
98
105
  @database_table = @paperclip_file.table_name
99
106
  #FIXME: This fails when using set_table_name "<myname>" in your model
100
107
  #FIXME: This should be fixed in ActiveRecord...
101
- instance.class.has_many @paperclip_files.to_sym, :foreign_key => instance.class.table_name.classify.underscore + '_id'
102
-
108
+ instance.class.has_many @paperclip_files.to_sym, :class_name => @paperclip_file.name, :foreign_key => instance.class.table_name.classify.underscore + '_id'
103
109
  end
104
110
  private :setup_paperclip_files_model
105
111
 
@@ -156,7 +162,7 @@ module Paperclip
156
162
  alias_method :to_io, :to_file
157
163
 
158
164
  def file_for(style)
159
- db_result = instance.send("#{@paperclip_files}").send(:file_for, style.to_s).to_ary
165
+ db_result = instance.send("#{@paperclip_files}").send(:file_for, style.to_s)
160
166
  raise RuntimeError, "More than one result for #{style}" if db_result.size > 1
161
167
  db_result.first
162
168
  end
@@ -0,0 +1,11 @@
1
+
2
+ module PaperclipDatabase
3
+ # This function only appears in Rails >= 3.2.1, so define our own copy here
4
+ def self.deconstantize(path)
5
+ if Gem::Version.new(::Rails::VERSION::STRING) >= Gem::Version.new('3.2.1')
6
+ path.deconstantize
7
+ else
8
+ path.to_s[0...(path.rindex('::') || 0)]
9
+ end
10
+ end
11
+ end
@@ -1,3 +1,3 @@
1
1
  module PaperclipDatabase
2
- VERSION = "2.0.0" unless defined? PaperclipDatabase::VERSION
2
+ VERSION = "2.2.0" unless defined? PaperclipDatabase::VERSION
3
3
  end
@@ -1,4 +1,4 @@
1
1
  require 'paperclip'
2
2
  require 'paperclip/storage/database'
3
3
  require 'paperclip_database/version'
4
-
4
+ require 'paperclip_database/deconstantize'
@@ -1,3 +1,5 @@
1
+ # -*- ruby -*-
2
+
1
3
  $LOAD_PATH.push File.expand_path("../lib", __FILE__)
2
4
  require 'paperclip_database/version'
3
5
 
@@ -10,8 +12,7 @@ Gem::Specification.new do |s|
10
12
  s.homepage = "https://github.com/softace/paperclip_database"
11
13
  s.summary = "Database storage for paperclip"
12
14
  s.description = "To have all your data in one place: the database"
13
-
14
- s.rubyforge_project = "paperclip_database"
15
+ s.license = 'MIT'
15
16
 
16
17
  s.files = `git ls-files`.split("\n")
17
18
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
data/test/database.yml ADDED
@@ -0,0 +1,3 @@
1
+ test:
2
+ adapter: sqlite3
3
+ database: ":memory:"
@@ -0,0 +1,53 @@
1
+ require File.expand_path("../test_helper", __FILE__)
2
+
3
+ module Namespace
4
+ end
5
+
6
+ class NamespacedModelsTest < Test::Unit::TestCase
7
+ def setup
8
+ reset_class("Namespace::Model").tap do |klass|
9
+ klass.table_name = 'namespace_models'
10
+ klass.has_attached_file :avatar, :storage => :database,
11
+ :database_table => :namespace_model_avatars
12
+ end
13
+
14
+ ActiveRecord::Base.connection.create_table :namespace_models, :force => true do |table|
15
+ table.column :avatar_file_name, :string
16
+ table.column :avatar_content_type, :string
17
+ table.column :avatar_file_size, :integer
18
+ table.column :avatar_updated_at, :datetime
19
+ table.column :avatar_fingerprint, :string
20
+ end
21
+ ActiveRecord::Base.connection.create_table :namespace_model_avatars, :force => true do |table|
22
+ table.column :namespace_model_id, :integer
23
+ table.column :style, :string
24
+ table.column :file_contents, :binary
25
+ end
26
+
27
+ @model = Namespace::Model.new
28
+ file = File.open(fixture_file('5k.png'))
29
+
30
+ @model.avatar = file
31
+ @model.save
32
+ end
33
+
34
+ def test_namespaced_model_detection
35
+ assert_equal(Namespace, @model.avatar.instance_variable_get(:@paperclip_class_module))
36
+ end
37
+
38
+ def test_class_name_inference
39
+ assert_equal('model_avatar_paperclip_files', @model.avatar.instance_variable_get(:@paperclip_files))
40
+ end
41
+
42
+ def test_class_inference
43
+ assert_equal(Namespace::ModelAvatarPaperclipFile, @model.avatar.instance_variable_get(:@paperclip_file))
44
+ end
45
+
46
+ def test_table_name
47
+ assert_equal('namespace_model_avatars', @model.avatar.instance_variable_get(:@database_table))
48
+ end
49
+
50
+ def test_association
51
+ assert(@model.methods.include?(:model_avatar_paperclip_files))
52
+ end
53
+ end
@@ -0,0 +1,101 @@
1
+ require 'rubygems'
2
+ require 'tempfile'
3
+ require 'pathname'
4
+ require 'test/unit'
5
+ require 'active_record'
6
+ require 'active_record/version'
7
+ require 'active_support'
8
+ require 'active_support/core_ext'
9
+ require 'mocha/setup'
10
+ require 'ostruct'
11
+ require 'paperclip'
12
+
13
+ ROOT = Pathname(File.expand_path(File.join(File.dirname(__FILE__), '..')))
14
+
15
+ module Rails
16
+ module RailsVersion
17
+ STRING = Gem.loaded_specs['rails'].version.to_s
18
+ end
19
+ VERSION = RailsVersion
20
+
21
+ def root
22
+ Pathname.new(ROOT).join('tmp')
23
+ end
24
+ def env
25
+ 'test'
26
+ end
27
+ end
28
+
29
+ $LOAD_PATH << File.join(ROOT, 'lib')
30
+ $LOAD_PATH << File.join(ROOT, 'lib', 'paperclip')
31
+ $LOAD_PATH << File.join(ROOT, 'lib', 'paperclip_database')
32
+
33
+ require File.join(ROOT, 'lib', 'paperclip_database.rb')
34
+
35
+ config = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
36
+ ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log")
37
+ ActiveRecord::Base.establish_connection(config['test'])
38
+ Paperclip.options[:logger] = ActiveRecord::Base.logger
39
+
40
+ def reset_class class_name
41
+ if class_name.include? '::'
42
+ module_name = PaperclipDatabase::deconstantize(class_name)
43
+ class_module = module_name.constantize rescue Object
44
+ else
45
+ class_module = Object
46
+ end
47
+ class_name = class_name.demodulize
48
+
49
+ ActiveRecord::Base.send(:include, Paperclip::Glue)
50
+ class_module.send(:remove_const, class_name) rescue nil
51
+ klass = class_module.const_set(class_name, Class.new(ActiveRecord::Base))
52
+
53
+ klass.class_eval do
54
+ include Paperclip::Glue
55
+ end
56
+
57
+ klass.reset_column_information
58
+ klass.connection_pool.clear_table_cache!(klass.table_name) if klass.connection_pool.respond_to?(:clear_table_cache!)
59
+ klass.connection.schema_cache.clear_table_cache!(klass.table_name) if klass.connection.respond_to?(:schema_cache)
60
+ klass
61
+ end
62
+
63
+ def reset_table table_name, &block
64
+ block ||= lambda { |table| true }
65
+ ActiveRecord::Base.connection.create_table :dummies, {:force => true}, &block
66
+ end
67
+
68
+ def modify_table table_name, &block
69
+ ActiveRecord::Base.connection.change_table :dummies, &block
70
+ end
71
+
72
+ def rebuild_model options = {}
73
+ ActiveRecord::Base.connection.create_table :dummies, :force => true do |table|
74
+ table.column :title, :string
75
+ table.column :other, :string
76
+ table.column :avatar_file_name, :string
77
+ table.column :avatar_content_type, :string
78
+ table.column :avatar_file_size, :integer
79
+ table.column :avatar_updated_at, :datetime
80
+ table.column :avatar_fingerprint, :string
81
+ end
82
+ rebuild_class options
83
+ end
84
+
85
+ def rebuild_class options = {}
86
+ reset_class("Dummy").tap do |klass|
87
+ klass.has_attached_file :avatar, options
88
+ Paperclip.reset_duplicate_clash_check!
89
+ end
90
+ end
91
+
92
+ def rebuild_meta_class_of obj, options = {}
93
+ (class << obj; self; end).tap do |metaklass|
94
+ metaklass.has_attached_file :avatar, options
95
+ Paperclip.reset_duplicate_clash_check!
96
+ end
97
+ end
98
+
99
+ def fixture_file(filename)
100
+ File.join(File.dirname(__FILE__), 'fixtures', filename)
101
+ end
metadata CHANGED
@@ -1,46 +1,52 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paperclip_database
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.2.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Jarl Friis
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-09-11 00:00:00.000000000 Z
12
+ date: 2013-11-12 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rails
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - '>='
19
+ - - ! '>='
18
20
  - !ruby/object:Gem::Version
19
21
  version: 3.0.0
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
- - - '>='
27
+ - - ! '>='
25
28
  - !ruby/object:Gem::Version
26
29
  version: 3.0.0
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: paperclip
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - '>='
35
+ - - ! '>='
32
36
  - !ruby/object:Gem::Version
33
37
  version: 2.3.0
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - '>='
43
+ - - ! '>='
39
44
  - !ruby/object:Gem::Version
40
45
  version: 2.3.0
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: appraisal
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - ~>
46
52
  - !ruby/object:Gem::Version
@@ -48,6 +54,7 @@ dependencies:
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
59
  - - ~>
53
60
  - !ruby/object:Gem::Version
@@ -55,20 +62,23 @@ dependencies:
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: mocha
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
- - - '>='
67
+ - - ! '>='
60
68
  - !ruby/object:Gem::Version
61
69
  version: '0'
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
- - - '>='
75
+ - - ! '>='
67
76
  - !ruby/object:Gem::Version
68
77
  version: '0'
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: sqlite3
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
83
  - - ~>
74
84
  - !ruby/object:Gem::Version
@@ -76,6 +86,7 @@ dependencies:
76
86
  type: :development
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
91
  - - ~>
81
92
  - !ruby/object:Gem::Version
@@ -83,6 +94,7 @@ dependencies:
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: cucumber
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
99
  - - ~>
88
100
  - !ruby/object:Gem::Version
@@ -90,6 +102,7 @@ dependencies:
90
102
  type: :development
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
93
106
  requirements:
94
107
  - - ~>
95
108
  - !ruby/object:Gem::Version
@@ -97,6 +110,7 @@ dependencies:
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: launchy
99
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
100
114
  requirements:
101
115
  - - ~>
102
116
  - !ruby/object:Gem::Version
@@ -104,6 +118,7 @@ dependencies:
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
107
122
  requirements:
108
123
  - - ~>
109
124
  - !ruby/object:Gem::Version
@@ -111,20 +126,23 @@ dependencies:
111
126
  - !ruby/object:Gem::Dependency
112
127
  name: aruba
113
128
  requirement: !ruby/object:Gem::Requirement
129
+ none: false
114
130
  requirements:
115
- - - '>='
131
+ - - ! '>='
116
132
  - !ruby/object:Gem::Version
117
133
  version: '0'
118
134
  type: :development
119
135
  prerelease: false
120
136
  version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
121
138
  requirements:
122
- - - '>='
139
+ - - ! '>='
123
140
  - !ruby/object:Gem::Version
124
141
  version: '0'
125
142
  - !ruby/object:Gem::Dependency
126
143
  name: capybara
127
144
  requirement: !ruby/object:Gem::Requirement
145
+ none: false
128
146
  requirements:
129
147
  - - ~>
130
148
  - !ruby/object:Gem::Version
@@ -135,6 +153,7 @@ dependencies:
135
153
  type: :development
136
154
  prerelease: false
137
155
  version_requirements: !ruby/object:Gem::Requirement
156
+ none: false
138
157
  requirements:
139
158
  - - ~>
140
159
  - !ruby/object:Gem::Version
@@ -145,46 +164,52 @@ dependencies:
145
164
  - !ruby/object:Gem::Dependency
146
165
  name: bundler
147
166
  requirement: !ruby/object:Gem::Requirement
167
+ none: false
148
168
  requirements:
149
- - - '>='
169
+ - - ! '>='
150
170
  - !ruby/object:Gem::Version
151
171
  version: '0'
152
172
  type: :development
153
173
  prerelease: false
154
174
  version_requirements: !ruby/object:Gem::Requirement
175
+ none: false
155
176
  requirements:
156
- - - '>='
177
+ - - ! '>='
157
178
  - !ruby/object:Gem::Version
158
179
  version: '0'
159
180
  - !ruby/object:Gem::Dependency
160
181
  name: rake
161
182
  requirement: !ruby/object:Gem::Requirement
183
+ none: false
162
184
  requirements:
163
- - - '>='
185
+ - - ! '>='
164
186
  - !ruby/object:Gem::Version
165
187
  version: '0'
166
188
  type: :development
167
189
  prerelease: false
168
190
  version_requirements: !ruby/object:Gem::Requirement
191
+ none: false
169
192
  requirements:
170
- - - '>='
193
+ - - ! '>='
171
194
  - !ruby/object:Gem::Version
172
195
  version: '0'
173
196
  - !ruby/object:Gem::Dependency
174
197
  name: fakeweb
175
198
  requirement: !ruby/object:Gem::Requirement
199
+ none: false
176
200
  requirements:
177
- - - '>='
201
+ - - ! '>='
178
202
  - !ruby/object:Gem::Version
179
203
  version: '0'
180
204
  type: :development
181
205
  prerelease: false
182
206
  version_requirements: !ruby/object:Gem::Requirement
207
+ none: false
183
208
  requirements:
184
- - - '>='
209
+ - - ! '>='
185
210
  - !ruby/object:Gem::Version
186
211
  version: '0'
187
- description: 'To have all your data in one place: the database'
212
+ description: ! 'To have all your data in one place: the database'
188
213
  email:
189
214
  - jarl@softace.dk
190
215
  executables: []
@@ -234,34 +259,46 @@ files:
234
259
  - lib/generators/paperclip_database/migration/templates/migration.rb.erb
235
260
  - lib/paperclip/storage/database.rb
236
261
  - lib/paperclip_database.rb
262
+ - lib/paperclip_database/deconstantize.rb
237
263
  - lib/paperclip_database/version.rb
238
264
  - paperclip_database.gemspec
239
265
  - rails/init.rb
240
266
  - spec/paperclip_database_spec.rb
241
267
  - spec/spec_helper.rb
268
+ - test/database.yml
242
269
  - test/fixtures/5k.png
270
+ - test/namespaced_models_test.rb
271
+ - test/test_helper.rb
243
272
  homepage: https://github.com/softace/paperclip_database
244
- licenses: []
245
- metadata: {}
273
+ licenses:
274
+ - MIT
246
275
  post_install_message:
247
276
  rdoc_options: []
248
277
  require_paths:
249
278
  - lib
250
279
  required_ruby_version: !ruby/object:Gem::Requirement
280
+ none: false
251
281
  requirements:
252
- - - '>='
282
+ - - ! '>='
253
283
  - !ruby/object:Gem::Version
254
284
  version: '0'
285
+ segments:
286
+ - 0
287
+ hash: -127264780216903599
255
288
  required_rubygems_version: !ruby/object:Gem::Requirement
289
+ none: false
256
290
  requirements:
257
- - - '>='
291
+ - - ! '>='
258
292
  - !ruby/object:Gem::Version
259
293
  version: '0'
294
+ segments:
295
+ - 0
296
+ hash: -127264780216903599
260
297
  requirements:
261
298
  - ImageMagick
262
- rubyforge_project: paperclip_database
263
- rubygems_version: 2.0.3
299
+ rubyforge_project:
300
+ rubygems_version: 1.8.23
264
301
  signing_key:
265
- specification_version: 4
302
+ specification_version: 3
266
303
  summary: Database storage for paperclip
267
304
  test_files: []
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 09d3aa4732581467b9fc42956a01b056ed8886f4
4
- data.tar.gz: b6c7a2b6dc89f0b4cf417026c211b27c3a1f3099
5
- SHA512:
6
- metadata.gz: 0d4e3af513f1d0f97e07338ed3ad9f88bb4c452b4b5d06b124190b5e3b57873936ad55ac2693abc8c8d9366ae772849a31b90ea91abaa169d4b737ccce3f1127
7
- data.tar.gz: 30e43365c0bd6612037944d90332da8285426a8f2930216ee2d1a6b7aa3b51cb0f68bbc8d1701c09f777982f3afa00aabc3cb07404ac85380487777501eeb8be