ample_assets 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.textile +68 -0
  3. data/Rakefile +38 -0
  4. data/app/assets/images/ample_assets/bg-noise.png +0 -0
  5. data/app/assets/images/ample_assets/btn-next.png +0 -0
  6. data/app/assets/images/ample_assets/btn-prev.png +0 -0
  7. data/app/assets/images/ample_assets/btn-select-files.png +0 -0
  8. data/app/assets/images/ample_assets/cancel.png +0 -0
  9. data/app/assets/images/ample_assets/closelabel.png +0 -0
  10. data/app/assets/images/ample_assets/collapse.png +0 -0
  11. data/app/assets/images/ample_assets/gravity.png +0 -0
  12. data/app/assets/images/ample_assets/icon_other.gif +0 -0
  13. data/app/assets/images/ample_assets/icon_pdf.gif +0 -0
  14. data/app/assets/images/ample_assets/icon_swf.gif +0 -0
  15. data/app/assets/images/ample_assets/loading.gif +0 -0
  16. data/app/assets/images/ample_assets/play.png +0 -0
  17. data/app/assets/images/ample_assets/prev-next.png +0 -0
  18. data/app/assets/images/ample_assets/reload.png +0 -0
  19. data/app/assets/images/ample_assets/remove.png +0 -0
  20. data/app/assets/javascripts/ample_assets.js +1 -0
  21. data/app/assets/javascripts/ample_assets/application.js +18 -0
  22. data/app/assets/javascripts/ample_assets/classes/ample_assets_gravity.js.coffee +86 -0
  23. data/app/assets/javascripts/ample_assets/classes/ample_assets_toolbar.js.coffee +769 -0
  24. data/app/assets/javascripts/ample_assets/classes/ample_assets_uploadify.js.coffee +30 -0
  25. data/app/assets/javascripts/ample_assets/files.js.coffee +5 -0
  26. data/app/assets/stylesheets/ample_assets.css +3 -0
  27. data/app/assets/stylesheets/ample_assets/application.css +8 -0
  28. data/app/assets/stylesheets/ample_assets/bourbon/css3/_border-radius.scss +59 -0
  29. data/app/assets/stylesheets/ample_assets/bourbon/css3/_box-shadow.scss +11 -0
  30. data/app/assets/stylesheets/ample_assets/custom_mixins.scss +47 -0
  31. data/app/assets/stylesheets/ample_assets/facebox.css +79 -0
  32. data/app/assets/stylesheets/ample_assets/files.css.scss +750 -0
  33. data/app/assets/swf/ample_assets/expressInstall.swf +0 -0
  34. data/app/assets/swf/ample_assets/uploadify.swf +0 -0
  35. data/app/controllers/ample_assets/application_controller.rb +4 -0
  36. data/app/controllers/ample_assets/files_controller.rb +109 -0
  37. data/app/helpers/ample_assets/application_helper.rb +4 -0
  38. data/app/models/ample_assets/file.rb +79 -0
  39. data/app/views/ample_assets/files/_drop.html.erb +12 -0
  40. data/app/views/ample_assets/files/_file.html.erb +1 -0
  41. data/app/views/ample_assets/files/_file.js.erb +3 -0
  42. data/app/views/ample_assets/files/index.html.erb +6 -0
  43. data/app/views/ample_assets/files/new.html.erb +21 -0
  44. data/app/views/ample_assets/files/recent.html.erb +1 -0
  45. data/app/views/ample_assets/files/show.html.erb +1 -0
  46. data/app/views/layouts/ample_assets/application.html.erb +14 -0
  47. data/config/routes.rb +27 -0
  48. data/lib/ample_assets.rb +26 -0
  49. data/lib/ample_assets/configuration.rb +73 -0
  50. data/lib/ample_assets/custom_processor.rb +29 -0
  51. data/lib/ample_assets/devise_constraint.rb +9 -0
  52. data/lib/ample_assets/engine.rb +36 -0
  53. data/lib/ample_assets/form_builder.rb +19 -0
  54. data/lib/ample_assets/form_helper.rb +14 -0
  55. data/lib/ample_assets/plugin_methods.rb +11 -0
  56. data/lib/ample_assets/version.rb +3 -0
  57. data/lib/ample_assets/view_helper.rb +80 -0
  58. data/lib/generators/ample_assets/install_generator.rb +25 -0
  59. data/lib/generators/ample_assets/templates/migration.rb +16 -0
  60. data/lib/generators/ample_assets/utils.rb +15 -0
  61. data/test/dummy/Rakefile +7 -0
  62. data/test/dummy/app/assets/images/rails.png +0 -0
  63. data/test/dummy/app/assets/javascripts/application.js +11 -0
  64. data/test/dummy/app/assets/sample.pdf +0 -0
  65. data/test/dummy/app/assets/stylesheets/application.css +8 -0
  66. data/test/dummy/app/controllers/application_controller.rb +7 -0
  67. data/test/dummy/app/controllers/public/pages_controller.rb +32 -0
  68. data/test/dummy/app/controllers/public_controller.rb +6 -0
  69. data/test/dummy/app/helpers/application_helper.rb +11 -0
  70. data/test/dummy/app/models/page.rb +7 -0
  71. data/test/dummy/app/views/layouts/application.html.erb +17 -0
  72. data/test/dummy/app/views/public/index.html.erb +0 -0
  73. data/test/dummy/app/views/public/pages/_form.html.erb +18 -0
  74. data/test/dummy/app/views/public/pages/edit.html.erb +1 -0
  75. data/test/dummy/app/views/public/pages/index.html.erb +8 -0
  76. data/test/dummy/app/views/public/pages/new.html.erb +1 -0
  77. data/test/dummy/app/views/public/pages/show.html.erb +3 -0
  78. data/test/dummy/config.ru +4 -0
  79. data/test/dummy/config/application.rb +45 -0
  80. data/test/dummy/config/boot.rb +10 -0
  81. data/test/dummy/config/database.yml +25 -0
  82. data/test/dummy/config/environment.rb +5 -0
  83. data/test/dummy/config/environments/development.rb +30 -0
  84. data/test/dummy/config/environments/production.rb +60 -0
  85. data/test/dummy/config/environments/test.rb +39 -0
  86. data/test/dummy/config/initializers/ample_assets.rb +4 -0
  87. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  88. data/test/dummy/config/initializers/inflections.rb +10 -0
  89. data/test/dummy/config/initializers/mime_types.rb +5 -0
  90. data/test/dummy/config/initializers/secret_token.rb +7 -0
  91. data/test/dummy/config/initializers/session_store.rb +8 -0
  92. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  93. data/test/dummy/config/locales/en.yml +5 -0
  94. data/test/dummy/config/routes.rb +8 -0
  95. data/test/dummy/db/migrate/20120105034123_create_pages.rb +9 -0
  96. data/test/dummy/db/migrate/20120106192233_create_ample_assets_tables.rb +16 -0
  97. data/test/dummy/db/schema.rb +37 -0
  98. data/test/dummy/public/404.html +26 -0
  99. data/test/dummy/public/422.html +26 -0
  100. data/test/dummy/public/500.html +26 -0
  101. data/test/dummy/public/favicon.ico +0 -0
  102. data/test/dummy/script/rails +6 -0
  103. data/test/functional/ample_assets/files_controller_test.rb +49 -0
  104. data/test/integration/ample_assets/admin_test.rb +96 -0
  105. data/test/integration/ample_assets/public_test.rb +7 -0
  106. data/test/integration_test_helper.rb +24 -0
  107. data/test/test_helper.rb +25 -0
  108. data/test/unit/ample_assets/configuration_test.rb +35 -0
  109. data/test/unit/ample_assets/file_test.rb +14 -0
  110. data/test/unit/ample_assets/plugin_methods_test.rb +30 -0
  111. data/test/unit/helpers/ample_assets/form_builder_test.rb +11 -0
  112. data/test/unit/helpers/ample_assets/form_helper_test.rb +23 -0
  113. data/test/unit/helpers/ample_assets/view_helper_test.rb +128 -0
  114. metadata +395 -0
@@ -0,0 +1,96 @@
1
+ require 'integration_test_helper'
2
+
3
+ module AmpleAssets
4
+ class AdminTest < ActionDispatch::IntegrationTest
5
+
6
+ context 'The Asset Toolbar' do
7
+
8
+ setup do
9
+ visit '/ample_assets/files/new'
10
+ attach_file 'Attachment', ::Rails.root.join('app/assets/images/rails.png')
11
+ click_button 'Create File'
12
+ visit new_page_path
13
+ fill_in 'Title', :with => 'Test Page'
14
+ click_button 'Create Page'
15
+ click_link 'Test Page'
16
+ click_link 'Assets'
17
+ end
18
+
19
+ should 'allow uploads of new files' do
20
+ # Handled in the setup
21
+ end
22
+
23
+ should 'display a list of recently added files' do
24
+ within('#recent-assets') do
25
+ assert page.has_selector?('img')
26
+ end
27
+ end
28
+
29
+ should 'show a lightbox when a thumbnail is clicked' do
30
+ link = page.find_by_id('recent-assets').find('a').click
31
+ assert_equal link['data-filename'], page.find('#facebox h3').value
32
+ assert page.has_selector?('#facebox .asset-media img')
33
+ end
34
+
35
+ should 'allow users to search for assets by keyword' do
36
+ assert !page.has_selector?('#asset-results img')
37
+ fill_in 'asset-search', :with => 'rails'
38
+ page.find_by_id('asset-search').native.send_key(:enter)
39
+ assert page.has_selector?('#asset-results img')
40
+ end
41
+
42
+ should 'allow users to drag an asset into an assocation' do
43
+ assert page.find_by_id('page_file_id').value.blank?
44
+ image = page.find_by_id('recent-assets').find('img')
45
+ drop = page.find('.asset-drop .droppable')
46
+ image.drag_to(drop)
47
+ assert !page.find_by_id('page_file_id').value.blank?
48
+ end
49
+
50
+ should 'allow users to remove an asset from an association' do
51
+ assert page.find_by_id('page_file_id').value.blank?
52
+ image = page.find_by_id('recent-assets').find('img')
53
+ drop = page.find('.asset-drop .droppable')
54
+ image.drag_to(drop)
55
+ assert !page.find_by_id('page_file_id').value.blank?
56
+ within('.asset-drop') do
57
+ click_link('Remove')
58
+ end
59
+ assert page.find_by_id('page_file_id').value.blank?
60
+ end
61
+
62
+ should 'allow users to drag an asset into a textarea (Textile)' do
63
+ body = page.find_by_id('body')
64
+ assert body.value.blank?
65
+ image = page.find_by_id('recent-assets').find('img')
66
+ image.drag_to(body)
67
+ click_button 'Insert'
68
+ assert body.value.include?('!')
69
+ end
70
+
71
+ should 'allow users to drag an asset into a textarea (HTML)' do
72
+ page.execute_script("$('#body').removeClass('textile')")
73
+ body = page.find_by_id('body')
74
+ assert body.value.blank?
75
+ image = page.find_by_id('recent-assets').find('img')
76
+ image.drag_to(body)
77
+ click_button 'Insert'
78
+ assert body.value.include?('src')
79
+ end
80
+
81
+ should 'allow users to delete an asset' do
82
+ link = page.find_by_id('recent-assets').find('a').click
83
+ id = link['id']
84
+ within('#facebox') do
85
+ click_link 'Delete'
86
+ end
87
+ confirm_dialog if selenium?
88
+ within('#recent-assets') do
89
+ assert page.has_no_selector?("#file-#{id}")
90
+ end
91
+ end
92
+
93
+ end
94
+
95
+ end
96
+ end
@@ -0,0 +1,7 @@
1
+ require 'integration_test_helper'
2
+
3
+ module AmpleAssets
4
+ class PublicTest < ActionDispatch::IntegrationTest
5
+
6
+ end
7
+ end
@@ -0,0 +1,24 @@
1
+ require 'test_helper'
2
+ require 'capybara/rails'
3
+
4
+ class ActionController::IntegrationTest
5
+
6
+ include Capybara::DSL
7
+
8
+ Capybara.default_driver = :selenium
9
+ Capybara.default_wait_time = 10
10
+
11
+ def confirm_dialog
12
+ a = page.driver.browser.switch_to.alert
13
+ if a.text == 'OK'
14
+ a.dismiss
15
+ else
16
+ a.accept
17
+ end
18
+ end
19
+
20
+ def selenium?
21
+ Capybara.default_driver == :selenium
22
+ end
23
+
24
+ end
@@ -0,0 +1,25 @@
1
+ # Configure Rails Environment
2
+ ENV['RAILS_ENV'] = 'test'
3
+
4
+ require File.expand_path('../dummy/config/environment.rb', __FILE__)
5
+ require 'rails/test_help'
6
+ require 'shoulda'
7
+
8
+ Rails.backtrace_cleaner.remove_silencers!
9
+
10
+ # Load support files
11
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
12
+
13
+ module AmpleAssets
14
+ class ActiveSupport::TestCase
15
+
16
+ def current_page
17
+ @page ||= Page.create! :title => 'Test Page', :file_id => current_file.id
18
+ end
19
+
20
+ def current_file
21
+ @file ||= File.create! :attachment => ::File.read("#{Rails.root}/app/assets/images/rails.png")
22
+ end
23
+
24
+ end
25
+ end
@@ -0,0 +1,35 @@
1
+ require 'test_helper'
2
+
3
+ module AmpleAssets
4
+ class ConfigurationTest < ActiveSupport::TestCase
5
+
6
+ context 'The Configuration' do
7
+
8
+ context 'defaults' do
9
+
10
+ AmpleAssets::Configuration::VALID_OPTIONS_KEYS.each do |key|
11
+ should "be returned for #{key}" do
12
+ AmpleAssets.send(key) == eval("AmpleAssets::Configuration::DEFAULT_#{key.upcase}")
13
+ end
14
+
15
+ end
16
+
17
+ end
18
+
19
+ context 'via a configure block' do
20
+
21
+ AmpleAssets::Configuration::VALID_OPTIONS_KEYS.each do |key|
22
+ should "set the #{key}" do
23
+ AmpleAssets.configure do |config|
24
+ config.send("#{key}=", key)
25
+ assert AmpleAssets.send(key) == key
26
+ end
27
+ end
28
+ end
29
+
30
+ end
31
+
32
+ end
33
+
34
+ end
35
+ end
@@ -0,0 +1,14 @@
1
+ require 'test_helper'
2
+
3
+ module AmpleAssets
4
+ class FileTest < ActiveSupport::TestCase
5
+
6
+ should 'create keywords based on the uploaded filename' do
7
+ file = File.new :attachment_url => 'http://www.google.com/intl/en_com/images/srpr/logo3w.png'
8
+ file.save
9
+ file.reload
10
+ assert file.keywords.include?('Logo3w')
11
+ end
12
+
13
+ end
14
+ end
@@ -0,0 +1,30 @@
1
+ require 'test_helper'
2
+
3
+ class TestModel < Page
4
+ has_asset
5
+ end
6
+
7
+ class CustomTestModel < Page
8
+ self.abstract_class = true
9
+ has_asset 'thing', :class_name => 'CustomFileModel'
10
+ end
11
+
12
+ module AmpleAssets
13
+ class PluginMethodsTest < ActiveSupport::TestCase
14
+
15
+ context 'The has_asset method' do
16
+
17
+ should 'create a belongs_to association with the given model' do
18
+ test_model = TestModel.new
19
+ assert test_model.respond_to?(:file)
20
+ end
21
+
22
+ should 'allow a custom association name' do
23
+ test_model = CustomTestModel.new
24
+ assert test_model.respond_to?(:thing)
25
+ end
26
+
27
+ end
28
+
29
+ end
30
+ end
@@ -0,0 +1,11 @@
1
+ require 'test_helper'
2
+
3
+ module AmpleAssets
4
+ class FormBuilderTest < ActionView::TestCase
5
+
6
+ test "the truth" do
7
+ assert true
8
+ end
9
+
10
+ end
11
+ end
@@ -0,0 +1,23 @@
1
+ require 'test_helper'
2
+
3
+ module AmpleAssets
4
+ class FormHelperTest < ActionView::TestCase
5
+
6
+ context 'The asset_drop method' do
7
+
8
+ setup do
9
+ render :text => asset_drop(:f, :g)
10
+ end
11
+
12
+ should 'create a hidden field' do
13
+ assert_select 'input[type=hidden]'
14
+ end
15
+
16
+ should 'be named according to the object and attribute' do
17
+ assert_select 'input#f_g'
18
+ end
19
+
20
+ end
21
+
22
+ end
23
+ end
@@ -0,0 +1,128 @@
1
+ require 'test_helper'
2
+
3
+ module AmpleAssets
4
+ class ViewHelperTest < ActionView::TestCase
5
+
6
+ context 'The assets_toolbar method' do
7
+
8
+ setup do
9
+ # TODO: Why is this needed?
10
+ AmpleAssets.mount_at = '/ample_assets/'
11
+ AmpleAssets.tabs = [
12
+ { :id => 'recent-assets', :title => 'Recently Viewed', :url => '/ample_assets/files/recent', :panels => true, :data_type => 'json' },
13
+ { :id => 'image-assets', :title => 'Images', :url => '/ample_assets/files/images', :panels => true, :data_type => 'json' },
14
+ { :id => 'document-assets', :title => 'Documents', :url => '/ample_assets/files/documents', :panels => true, :data_type => 'json' },
15
+ { :id => 'upload', :title => 'Upload', :url => '/ample_assets/files/new' }
16
+ ]
17
+ render :text => assets_toolbar
18
+ end
19
+
20
+ should 'set the mount_at path' do
21
+ assert_select('script', :html => /mount_at = '#{AmpleAssets.mount_at.gsub('/', '\/')}'/)
22
+ end
23
+
24
+ should 'set the tabs based on configuration options' do
25
+ AmpleAssets.tabs.each do |tab|
26
+ assert_select('script', :html => /#{tab[:url].gsub('/', '\/')}/)
27
+ end
28
+ end
29
+
30
+ should 'not be html escaped' do
31
+ assert_select('script', :html => /&quot;/, :count => 0)
32
+ end
33
+
34
+ end
35
+
36
+ context 'The image_asset method' do
37
+
38
+ context 'without args' do
39
+
40
+ setup do
41
+ render :text => image_asset(current_page)
42
+ end
43
+
44
+ should 'not require dimensions to be set' do
45
+ assert_select("img[width=50]")
46
+ assert_select("img[height=64]")
47
+ end
48
+
49
+ end
50
+
51
+ context 'with some args' do
52
+
53
+ setup do
54
+ render :text => image_asset(current_page, { :size => false })
55
+ end
56
+
57
+ should 'have no dimensions if size is false' do
58
+ assert_select("img[width]", false)
59
+ assert_select("img[height]", false)
60
+ end
61
+
62
+ end
63
+
64
+ context 'with args' do
65
+
66
+ setup do
67
+ render :text => image_asset(current_page, {
68
+ :dimensions => '50x50#',
69
+ :style => 'border: 1px solid;',
70
+ :class => "some-selector",
71
+ :title => current_page.title,
72
+ :link => 'http://yahoo.com',
73
+ :video => true,
74
+ :video_dimensions => '1x1',
75
+ :encode => :jpg })
76
+ end
77
+
78
+ should 'output an img tag' do
79
+ assert_select("img")
80
+ end
81
+
82
+ should 'have an alt attribute' do
83
+ assert_select("img[alt]")
84
+ end
85
+
86
+ should 'not contain invalid attributes' do
87
+ assert_select("img[dimensions]", false)
88
+ assert_select("img[encode]", false)
89
+ assert_select("img[object]", false)
90
+ assert_select("img[video_dimensions]", false)
91
+ end
92
+
93
+ should 'have a title attribute if one is defined' do
94
+ assert_select("img[title]")
95
+ end
96
+
97
+ should 'have a style attribute if one is defined' do
98
+ assert_select("img[style*=border]")
99
+ end
100
+
101
+ should 'have a class attribute if one is defined' do
102
+ assert_select("img[class*=some-selector]")
103
+ end
104
+
105
+ should 'have width and height attributes if dimensions are defined' do
106
+ assert_select("img[width=50]")
107
+ assert_select("img[height=50]")
108
+ end
109
+
110
+ should 'be wrapped in a link tag if one is defined' do
111
+ assert_select("a[href=http://yahoo.com]")
112
+ end
113
+
114
+ should 'output facebox specific attrs if :video is true' do
115
+ assert_select("a[rel=facebox]")
116
+ assert_select("a[rev=iframe|1x1]")
117
+ end
118
+
119
+ should 'be encoded properly if an encoding is defined' do
120
+ assert_select("img[src*=jpg]")
121
+ end
122
+
123
+ end
124
+
125
+ end
126
+
127
+ end
128
+ end
metadata ADDED
@@ -0,0 +1,395 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ample_assets
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Taylor C. MacDonald
9
+ - Bobby Uhlenbrock
10
+ - Ryan Merrill
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2012-05-16 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: rails
18
+ requirement: &70154091319360 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ~>
22
+ - !ruby/object:Gem::Version
23
+ version: 3.2.0
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: *70154091319360
27
+ - !ruby/object:Gem::Dependency
28
+ name: dragonfly
29
+ requirement: &70154091318840 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ version: 0.9.11
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: *70154091318840
38
+ - !ruby/object:Gem::Dependency
39
+ name: jquery-rails
40
+ requirement: &70154091318440 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ type: :runtime
47
+ prerelease: false
48
+ version_requirements: *70154091318440
49
+ - !ruby/object:Gem::Dependency
50
+ name: rack-cache
51
+ requirement: &70154091317940 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ type: :runtime
58
+ prerelease: false
59
+ version_requirements: *70154091317940
60
+ - !ruby/object:Gem::Dependency
61
+ name: sass-rails
62
+ requirement: &70154091317440 !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ~>
66
+ - !ruby/object:Gem::Version
67
+ version: 3.2.3
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: *70154091317440
71
+ - !ruby/object:Gem::Dependency
72
+ name: coffee-rails
73
+ requirement: &70154091316840 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: 3.2.1
79
+ type: :runtime
80
+ prerelease: false
81
+ version_requirements: *70154091316840
82
+ - !ruby/object:Gem::Dependency
83
+ name: uglifier
84
+ requirement: &70154091316340 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: 1.0.3
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: *70154091316340
93
+ - !ruby/object:Gem::Dependency
94
+ name: therubyracer
95
+ requirement: &70154091315920 !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ! '>='
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
101
+ type: :runtime
102
+ prerelease: false
103
+ version_requirements: *70154091315920
104
+ - !ruby/object:Gem::Dependency
105
+ name: will_paginate
106
+ requirement: &70154091315300 !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ! '>='
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ type: :runtime
113
+ prerelease: false
114
+ version_requirements: *70154091315300
115
+ - !ruby/object:Gem::Dependency
116
+ name: acts_as_indexed
117
+ requirement: &70154091314740 !ruby/object:Gem::Requirement
118
+ none: false
119
+ requirements:
120
+ - - ! '>='
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ type: :runtime
124
+ prerelease: false
125
+ version_requirements: *70154091314740
126
+ - !ruby/object:Gem::Dependency
127
+ name: coffee_cup
128
+ requirement: &70154091313960 !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :runtime
135
+ prerelease: false
136
+ version_requirements: *70154091313960
137
+ - !ruby/object:Gem::Dependency
138
+ name: sqlite3
139
+ requirement: &70154091309900 !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - ! '>='
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ type: :development
146
+ prerelease: false
147
+ version_requirements: *70154091309900
148
+ - !ruby/object:Gem::Dependency
149
+ name: turn
150
+ requirement: &70154091309400 !ruby/object:Gem::Requirement
151
+ none: false
152
+ requirements:
153
+ - - ~>
154
+ - !ruby/object:Gem::Version
155
+ version: 0.9.3
156
+ type: :development
157
+ prerelease: false
158
+ version_requirements: *70154091309400
159
+ - !ruby/object:Gem::Dependency
160
+ name: shoulda
161
+ requirement: &70154091308900 !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: 3.0.0.beta
167
+ type: :development
168
+ prerelease: false
169
+ version_requirements: *70154091308900
170
+ - !ruby/object:Gem::Dependency
171
+ name: capybara
172
+ requirement: &70154091976440 !ruby/object:Gem::Requirement
173
+ none: false
174
+ requirements:
175
+ - - ! '>='
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
178
+ type: :development
179
+ prerelease: false
180
+ version_requirements: *70154091976440
181
+ - !ruby/object:Gem::Dependency
182
+ name: launchy
183
+ requirement: &70154091980540 !ruby/object:Gem::Requirement
184
+ none: false
185
+ requirements:
186
+ - - ! '>='
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ type: :development
190
+ prerelease: false
191
+ version_requirements: *70154091980540
192
+ description:
193
+ email:
194
+ - developers@helloample.com
195
+ executables: []
196
+ extensions: []
197
+ extra_rdoc_files: []
198
+ files:
199
+ - app/assets/images/ample_assets/bg-noise.png
200
+ - app/assets/images/ample_assets/btn-next.png
201
+ - app/assets/images/ample_assets/btn-prev.png
202
+ - app/assets/images/ample_assets/btn-select-files.png
203
+ - app/assets/images/ample_assets/cancel.png
204
+ - app/assets/images/ample_assets/closelabel.png
205
+ - app/assets/images/ample_assets/collapse.png
206
+ - app/assets/images/ample_assets/gravity.png
207
+ - app/assets/images/ample_assets/icon_other.gif
208
+ - app/assets/images/ample_assets/icon_pdf.gif
209
+ - app/assets/images/ample_assets/icon_swf.gif
210
+ - app/assets/images/ample_assets/loading.gif
211
+ - app/assets/images/ample_assets/play.png
212
+ - app/assets/images/ample_assets/prev-next.png
213
+ - app/assets/images/ample_assets/reload.png
214
+ - app/assets/images/ample_assets/remove.png
215
+ - app/assets/javascripts/ample_assets/application.js
216
+ - app/assets/javascripts/ample_assets/classes/ample_assets_gravity.js.coffee
217
+ - app/assets/javascripts/ample_assets/classes/ample_assets_toolbar.js.coffee
218
+ - app/assets/javascripts/ample_assets/classes/ample_assets_uploadify.js.coffee
219
+ - app/assets/javascripts/ample_assets/files.js.coffee
220
+ - app/assets/javascripts/ample_assets.js
221
+ - app/assets/stylesheets/ample_assets/application.css
222
+ - app/assets/stylesheets/ample_assets/bourbon/css3/_border-radius.scss
223
+ - app/assets/stylesheets/ample_assets/bourbon/css3/_box-shadow.scss
224
+ - app/assets/stylesheets/ample_assets/custom_mixins.scss
225
+ - app/assets/stylesheets/ample_assets/facebox.css
226
+ - app/assets/stylesheets/ample_assets/files.css.scss
227
+ - app/assets/stylesheets/ample_assets.css
228
+ - app/assets/swf/ample_assets/expressInstall.swf
229
+ - app/assets/swf/ample_assets/uploadify.swf
230
+ - app/controllers/ample_assets/application_controller.rb
231
+ - app/controllers/ample_assets/files_controller.rb
232
+ - app/helpers/ample_assets/application_helper.rb
233
+ - app/models/ample_assets/file.rb
234
+ - app/views/ample_assets/files/_drop.html.erb
235
+ - app/views/ample_assets/files/_file.html.erb
236
+ - app/views/ample_assets/files/_file.js.erb
237
+ - app/views/ample_assets/files/index.html.erb
238
+ - app/views/ample_assets/files/new.html.erb
239
+ - app/views/ample_assets/files/recent.html.erb
240
+ - app/views/ample_assets/files/show.html.erb
241
+ - app/views/layouts/ample_assets/application.html.erb
242
+ - config/routes.rb
243
+ - lib/ample_assets/configuration.rb
244
+ - lib/ample_assets/custom_processor.rb
245
+ - lib/ample_assets/devise_constraint.rb
246
+ - lib/ample_assets/engine.rb
247
+ - lib/ample_assets/form_builder.rb
248
+ - lib/ample_assets/form_helper.rb
249
+ - lib/ample_assets/plugin_methods.rb
250
+ - lib/ample_assets/version.rb
251
+ - lib/ample_assets/view_helper.rb
252
+ - lib/ample_assets.rb
253
+ - lib/generators/ample_assets/install_generator.rb
254
+ - lib/generators/ample_assets/templates/migration.rb
255
+ - lib/generators/ample_assets/utils.rb
256
+ - MIT-LICENSE
257
+ - Rakefile
258
+ - README.textile
259
+ - test/dummy/app/assets/images/rails.png
260
+ - test/dummy/app/assets/javascripts/application.js
261
+ - test/dummy/app/assets/sample.pdf
262
+ - test/dummy/app/assets/stylesheets/application.css
263
+ - test/dummy/app/controllers/application_controller.rb
264
+ - test/dummy/app/controllers/public/pages_controller.rb
265
+ - test/dummy/app/controllers/public_controller.rb
266
+ - test/dummy/app/helpers/application_helper.rb
267
+ - test/dummy/app/models/page.rb
268
+ - test/dummy/app/views/layouts/application.html.erb
269
+ - test/dummy/app/views/public/index.html.erb
270
+ - test/dummy/app/views/public/pages/_form.html.erb
271
+ - test/dummy/app/views/public/pages/edit.html.erb
272
+ - test/dummy/app/views/public/pages/index.html.erb
273
+ - test/dummy/app/views/public/pages/new.html.erb
274
+ - test/dummy/app/views/public/pages/show.html.erb
275
+ - test/dummy/config/application.rb
276
+ - test/dummy/config/boot.rb
277
+ - test/dummy/config/database.yml
278
+ - test/dummy/config/environment.rb
279
+ - test/dummy/config/environments/development.rb
280
+ - test/dummy/config/environments/production.rb
281
+ - test/dummy/config/environments/test.rb
282
+ - test/dummy/config/initializers/ample_assets.rb
283
+ - test/dummy/config/initializers/backtrace_silencers.rb
284
+ - test/dummy/config/initializers/inflections.rb
285
+ - test/dummy/config/initializers/mime_types.rb
286
+ - test/dummy/config/initializers/secret_token.rb
287
+ - test/dummy/config/initializers/session_store.rb
288
+ - test/dummy/config/initializers/wrap_parameters.rb
289
+ - test/dummy/config/locales/en.yml
290
+ - test/dummy/config/routes.rb
291
+ - test/dummy/config.ru
292
+ - test/dummy/db/migrate/20120105034123_create_pages.rb
293
+ - test/dummy/db/migrate/20120106192233_create_ample_assets_tables.rb
294
+ - test/dummy/db/schema.rb
295
+ - test/dummy/public/404.html
296
+ - test/dummy/public/422.html
297
+ - test/dummy/public/500.html
298
+ - test/dummy/public/favicon.ico
299
+ - test/dummy/Rakefile
300
+ - test/dummy/script/rails
301
+ - test/functional/ample_assets/files_controller_test.rb
302
+ - test/integration/ample_assets/admin_test.rb
303
+ - test/integration/ample_assets/public_test.rb
304
+ - test/integration_test_helper.rb
305
+ - test/test_helper.rb
306
+ - test/unit/ample_assets/configuration_test.rb
307
+ - test/unit/ample_assets/file_test.rb
308
+ - test/unit/ample_assets/plugin_methods_test.rb
309
+ - test/unit/helpers/ample_assets/form_builder_test.rb
310
+ - test/unit/helpers/ample_assets/form_helper_test.rb
311
+ - test/unit/helpers/ample_assets/view_helper_test.rb
312
+ homepage: http://helloample.com
313
+ licenses: []
314
+ post_install_message:
315
+ rdoc_options: []
316
+ require_paths:
317
+ - lib
318
+ required_ruby_version: !ruby/object:Gem::Requirement
319
+ none: false
320
+ requirements:
321
+ - - ! '>='
322
+ - !ruby/object:Gem::Version
323
+ version: '0'
324
+ segments:
325
+ - 0
326
+ hash: 679894056682084323
327
+ required_rubygems_version: !ruby/object:Gem::Requirement
328
+ none: false
329
+ requirements:
330
+ - - ! '>='
331
+ - !ruby/object:Gem::Version
332
+ version: '0'
333
+ segments:
334
+ - 0
335
+ hash: 679894056682084323
336
+ requirements: []
337
+ rubyforge_project:
338
+ rubygems_version: 1.8.10
339
+ signing_key:
340
+ specification_version: 3
341
+ summary: Drag and Drop Asset Management
342
+ test_files:
343
+ - test/dummy/app/assets/images/rails.png
344
+ - test/dummy/app/assets/javascripts/application.js
345
+ - test/dummy/app/assets/sample.pdf
346
+ - test/dummy/app/assets/stylesheets/application.css
347
+ - test/dummy/app/controllers/application_controller.rb
348
+ - test/dummy/app/controllers/public/pages_controller.rb
349
+ - test/dummy/app/controllers/public_controller.rb
350
+ - test/dummy/app/helpers/application_helper.rb
351
+ - test/dummy/app/models/page.rb
352
+ - test/dummy/app/views/layouts/application.html.erb
353
+ - test/dummy/app/views/public/index.html.erb
354
+ - test/dummy/app/views/public/pages/_form.html.erb
355
+ - test/dummy/app/views/public/pages/edit.html.erb
356
+ - test/dummy/app/views/public/pages/index.html.erb
357
+ - test/dummy/app/views/public/pages/new.html.erb
358
+ - test/dummy/app/views/public/pages/show.html.erb
359
+ - test/dummy/config/application.rb
360
+ - test/dummy/config/boot.rb
361
+ - test/dummy/config/database.yml
362
+ - test/dummy/config/environment.rb
363
+ - test/dummy/config/environments/development.rb
364
+ - test/dummy/config/environments/production.rb
365
+ - test/dummy/config/environments/test.rb
366
+ - test/dummy/config/initializers/ample_assets.rb
367
+ - test/dummy/config/initializers/backtrace_silencers.rb
368
+ - test/dummy/config/initializers/inflections.rb
369
+ - test/dummy/config/initializers/mime_types.rb
370
+ - test/dummy/config/initializers/secret_token.rb
371
+ - test/dummy/config/initializers/session_store.rb
372
+ - test/dummy/config/initializers/wrap_parameters.rb
373
+ - test/dummy/config/locales/en.yml
374
+ - test/dummy/config/routes.rb
375
+ - test/dummy/config.ru
376
+ - test/dummy/db/migrate/20120105034123_create_pages.rb
377
+ - test/dummy/db/migrate/20120106192233_create_ample_assets_tables.rb
378
+ - test/dummy/db/schema.rb
379
+ - test/dummy/public/404.html
380
+ - test/dummy/public/422.html
381
+ - test/dummy/public/500.html
382
+ - test/dummy/public/favicon.ico
383
+ - test/dummy/Rakefile
384
+ - test/dummy/script/rails
385
+ - test/functional/ample_assets/files_controller_test.rb
386
+ - test/integration/ample_assets/admin_test.rb
387
+ - test/integration/ample_assets/public_test.rb
388
+ - test/integration_test_helper.rb
389
+ - test/test_helper.rb
390
+ - test/unit/ample_assets/configuration_test.rb
391
+ - test/unit/ample_assets/file_test.rb
392
+ - test/unit/ample_assets/plugin_methods_test.rb
393
+ - test/unit/helpers/ample_assets/form_builder_test.rb
394
+ - test/unit/helpers/ample_assets/form_helper_test.rb
395
+ - test/unit/helpers/ample_assets/view_helper_test.rb