activestorage_legacy 0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. checksums.yaml +7 -0
  2. data/.babelrc +5 -0
  3. data/.codeclimate.yml +7 -0
  4. data/.eslintrc +19 -0
  5. data/.github/workflows/gem-push.yml +29 -0
  6. data/.github/workflows/ruby-tests.yml +37 -0
  7. data/.gitignore +9 -0
  8. data/.rubocop.yml +125 -0
  9. data/.travis.yml +25 -0
  10. data/Gemfile +33 -0
  11. data/Gemfile.lock +271 -0
  12. data/MIT-LICENSE +20 -0
  13. data/README.md +160 -0
  14. data/Rakefile +12 -0
  15. data/activestorage.gemspec +27 -0
  16. data/app/assets/javascripts/activestorage.js +1 -0
  17. data/app/controllers/active_storage/blobs_controller.rb +22 -0
  18. data/app/controllers/active_storage/direct_uploads_controller.rb +21 -0
  19. data/app/controllers/active_storage/disk_controller.rb +52 -0
  20. data/app/controllers/active_storage/variants_controller.rb +28 -0
  21. data/app/helpers/active_storage/file_field_with_direct_upload_helper.rb +18 -0
  22. data/app/javascript/activestorage/blob_record.js +54 -0
  23. data/app/javascript/activestorage/blob_upload.js +34 -0
  24. data/app/javascript/activestorage/direct_upload.js +42 -0
  25. data/app/javascript/activestorage/direct_upload_controller.js +67 -0
  26. data/app/javascript/activestorage/direct_uploads_controller.js +50 -0
  27. data/app/javascript/activestorage/file_checksum.js +53 -0
  28. data/app/javascript/activestorage/helpers.js +42 -0
  29. data/app/javascript/activestorage/index.js +11 -0
  30. data/app/javascript/activestorage/ujs.js +74 -0
  31. data/app/jobs/active_storage/purge_attachment_worker.rb +9 -0
  32. data/app/jobs/active_storage/purge_blob_worker.rb +9 -0
  33. data/app/models/active_storage/attachment.rb +33 -0
  34. data/app/models/active_storage/blob.rb +198 -0
  35. data/app/models/active_storage/filename.rb +49 -0
  36. data/app/models/active_storage/variant.rb +82 -0
  37. data/app/models/active_storage/variation.rb +53 -0
  38. data/config/routes.rb +9 -0
  39. data/config/storage_services.yml +34 -0
  40. data/lib/active_storage/attached/macros.rb +86 -0
  41. data/lib/active_storage/attached/many.rb +51 -0
  42. data/lib/active_storage/attached/one.rb +56 -0
  43. data/lib/active_storage/attached.rb +38 -0
  44. data/lib/active_storage/engine.rb +81 -0
  45. data/lib/active_storage/gem_version.rb +15 -0
  46. data/lib/active_storage/log_subscriber.rb +48 -0
  47. data/lib/active_storage/messages_metadata.rb +64 -0
  48. data/lib/active_storage/migration.rb +27 -0
  49. data/lib/active_storage/patches/active_record.rb +19 -0
  50. data/lib/active_storage/patches/delegation.rb +98 -0
  51. data/lib/active_storage/patches/secure_random.rb +26 -0
  52. data/lib/active_storage/patches.rb +4 -0
  53. data/lib/active_storage/service/azure_service.rb +115 -0
  54. data/lib/active_storage/service/configurator.rb +28 -0
  55. data/lib/active_storage/service/disk_service.rb +124 -0
  56. data/lib/active_storage/service/gcs_service.rb +79 -0
  57. data/lib/active_storage/service/mirror_service.rb +46 -0
  58. data/lib/active_storage/service/s3_service.rb +96 -0
  59. data/lib/active_storage/service.rb +113 -0
  60. data/lib/active_storage/verifier.rb +113 -0
  61. data/lib/active_storage/version.rb +8 -0
  62. data/lib/active_storage.rb +34 -0
  63. data/lib/tasks/activestorage.rake +20 -0
  64. data/package.json +33 -0
  65. data/test/controllers/direct_uploads_controller_test.rb +123 -0
  66. data/test/controllers/disk_controller_test.rb +57 -0
  67. data/test/controllers/variants_controller_test.rb +21 -0
  68. data/test/database/create_users_migration.rb +7 -0
  69. data/test/database/setup.rb +6 -0
  70. data/test/dummy/Rakefile +3 -0
  71. data/test/dummy/app/assets/config/manifest.js +5 -0
  72. data/test/dummy/app/assets/images/.keep +0 -0
  73. data/test/dummy/app/assets/javascripts/application.js +13 -0
  74. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  75. data/test/dummy/app/controllers/application_controller.rb +3 -0
  76. data/test/dummy/app/controllers/concerns/.keep +0 -0
  77. data/test/dummy/app/helpers/application_helper.rb +2 -0
  78. data/test/dummy/app/jobs/application_job.rb +2 -0
  79. data/test/dummy/app/models/application_record.rb +3 -0
  80. data/test/dummy/app/models/concerns/.keep +0 -0
  81. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  82. data/test/dummy/bin/bundle +3 -0
  83. data/test/dummy/bin/rails +4 -0
  84. data/test/dummy/bin/rake +4 -0
  85. data/test/dummy/bin/yarn +11 -0
  86. data/test/dummy/config/application.rb +22 -0
  87. data/test/dummy/config/boot.rb +5 -0
  88. data/test/dummy/config/database.yml +25 -0
  89. data/test/dummy/config/environment.rb +5 -0
  90. data/test/dummy/config/environments/development.rb +49 -0
  91. data/test/dummy/config/environments/production.rb +82 -0
  92. data/test/dummy/config/environments/test.rb +33 -0
  93. data/test/dummy/config/initializers/application_controller_renderer.rb +6 -0
  94. data/test/dummy/config/initializers/assets.rb +14 -0
  95. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  96. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  97. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  98. data/test/dummy/config/initializers/inflections.rb +16 -0
  99. data/test/dummy/config/initializers/mime_types.rb +4 -0
  100. data/test/dummy/config/initializers/secret_key.rb +3 -0
  101. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  102. data/test/dummy/config/routes.rb +2 -0
  103. data/test/dummy/config/secrets.yml +32 -0
  104. data/test/dummy/config/spring.rb +6 -0
  105. data/test/dummy/config/storage_services.yml +3 -0
  106. data/test/dummy/config.ru +5 -0
  107. data/test/dummy/db/.keep +0 -0
  108. data/test/dummy/lib/assets/.keep +0 -0
  109. data/test/dummy/log/.keep +0 -0
  110. data/test/dummy/package.json +5 -0
  111. data/test/dummy/public/404.html +67 -0
  112. data/test/dummy/public/422.html +67 -0
  113. data/test/dummy/public/500.html +66 -0
  114. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  115. data/test/dummy/public/apple-touch-icon.png +0 -0
  116. data/test/dummy/public/favicon.ico +0 -0
  117. data/test/filename_test.rb +36 -0
  118. data/test/fixtures/files/racecar.jpg +0 -0
  119. data/test/models/attachments_test.rb +122 -0
  120. data/test/models/blob_test.rb +47 -0
  121. data/test/models/variant_test.rb +27 -0
  122. data/test/service/.gitignore +1 -0
  123. data/test/service/azure_service_test.rb +14 -0
  124. data/test/service/configurations-example.yml +31 -0
  125. data/test/service/configurator_test.rb +14 -0
  126. data/test/service/disk_service_test.rb +12 -0
  127. data/test/service/gcs_service_test.rb +42 -0
  128. data/test/service/mirror_service_test.rb +62 -0
  129. data/test/service/s3_service_test.rb +52 -0
  130. data/test/service/shared_service_tests.rb +66 -0
  131. data/test/sidekiq/minitest_support.rb +6 -0
  132. data/test/support/assertions.rb +20 -0
  133. data/test/test_helper.rb +69 -0
  134. data/webpack.config.js +27 -0
  135. data/yarn.lock +3164 -0
  136. metadata +330 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 641d8ce0e8c7828cdd8ccd3b41f5994d75698e46
4
+ data.tar.gz: 66f621576457137902df0a1817f9909040f02e01
5
+ SHA512:
6
+ metadata.gz: db0f82ec409b926125cc67609bd0c6e644d246a0ed07a2327b7c84bc80a24f39a3f4ce1ce7dd3384ab9b7ac692f2b9d37b1bea9ecce16e68d03aa2ad3f38d6a6
7
+ data.tar.gz: ede2c0c22ab30843eb579ce988c9781962886effebde370853b9e109107ab06936325405ae8446873427ab6aa036cbb95ac67f6db4f7cada53e8cb58ee7cbd5f
data/.babelrc ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "presets": [
3
+ ["env", { "modules": false } ]
4
+ ]
5
+ }
data/.codeclimate.yml ADDED
@@ -0,0 +1,7 @@
1
+ engines:
2
+ rubocop:
3
+ enabled: true
4
+
5
+ ratings:
6
+ paths:
7
+ - "**.rb"
data/.eslintrc ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "extends": "eslint:recommended",
3
+ "rules": {
4
+ "semi": ["error", "never"],
5
+ "quotes": ["error", "double"],
6
+ "no-unused-vars": ["error", { "vars": "all", "args": "none" }]
7
+ },
8
+ "plugins": [
9
+ "import"
10
+ ],
11
+ "env": {
12
+ "browser": true,
13
+ "es6": true
14
+ },
15
+ "parserOptions": {
16
+ "ecmaVersion": 6,
17
+ "sourceType": "module"
18
+ }
19
+ }
@@ -0,0 +1,29 @@
1
+ name: Ruby Gem
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ branches: [ main ]
7
+
8
+ jobs:
9
+ build:
10
+ name: Build + Publish
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - uses: actions/checkout@v3
15
+ - name: Set up Ruby 2.3.8
16
+ uses: ruby/setup-ruby@ec02537da5712d66d4d50a0f33b7eb52773b5ed1
17
+ with:
18
+ ruby-version: 2.3.8
19
+ bundler-cache: true
20
+ - name: Publish to RubyGems
21
+ run: |
22
+ mkdir -p $HOME/.gem
23
+ touch $HOME/.gem/credentials
24
+ chmod 0600 $HOME/.gem/credentials
25
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
26
+ gem build *.gemspec
27
+ gem push *.gem
28
+ env:
29
+ GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
@@ -0,0 +1,37 @@
1
+ name: Run tests
2
+
3
+ on:
4
+ push:
5
+ branches: [ "main" ]
6
+ pull_request:
7
+ branches: [ "main" ]
8
+
9
+ jobs:
10
+ build:
11
+ name: Build + Publish
12
+ runs-on: ubuntu-latest
13
+ permissions:
14
+ contents: read
15
+ packages: write
16
+
17
+ steps:
18
+ - uses: actions/checkout@v3
19
+ - name: Set up Ruby 2.3.8
20
+ uses: ruby/setup-ruby@ec02537da5712d66d4d50a0f33b7eb52773b5ed1
21
+ with:
22
+ ruby-version: 2.3.8
23
+ bundler-cache: true
24
+ - name: Install dependencies
25
+ run: bundle install
26
+ - name: Setup Code Climate test-reporter
27
+ run: |
28
+ curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
29
+ chmod +x ./cc-test-reporter
30
+ ./cc-test-reporter before-build
31
+ - name: Run tests
32
+ run: bundle exec rake
33
+ - name: Publish code coverage
34
+ if: github.ref_name == 'main'
35
+ run: |
36
+ export GIT_BRANCH="${GITHUB_REF/refs\/heads\//}"
37
+ ./cc-test-reporter after-build -r ${{secrets.CC_TEST_REPORTER_ID}}
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ .byebug_history
2
+ /node_modules
3
+ test/dummy/db/*.sqlite3
4
+ test/dummy/db/*.sqlite3-journal
5
+ test/dummy/log/*.log
6
+ test/dummy/tmp/
7
+
8
+ .idea
9
+ coverage
data/.rubocop.yml ADDED
@@ -0,0 +1,125 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.3
3
+ # RuboCop has a bunch of cops enabled by default. This setting tells RuboCop
4
+ # to ignore them, so only the ones explicitly set in this file are enabled.
5
+ DisabledByDefault: true
6
+ Exclude:
7
+ - '**/templates/**/*'
8
+ - '**/vendor/**/*'
9
+ - 'actionpack/lib/action_dispatch/journey/parser.rb'
10
+
11
+ # Align `when` with `case`.
12
+ Layout/CaseIndentation:
13
+ Enabled: true
14
+
15
+ # Align comments with method definitions.
16
+ Layout/CommentIndentation:
17
+ Enabled: true
18
+
19
+ # No extra empty lines.
20
+ Layout/EmptyLines:
21
+ Enabled: false
22
+
23
+ # In a regular class definition, no empty lines around the body.
24
+ Layout/EmptyLinesAroundClassBody:
25
+ Enabled: true
26
+
27
+ # In a regular method definition, no empty lines around the body.
28
+ Layout/EmptyLinesAroundMethodBody:
29
+ Enabled: true
30
+
31
+ # In a regular module definition, no empty lines around the body.
32
+ Layout/EmptyLinesAroundModuleBody:
33
+ Enabled: true
34
+
35
+ # Method definitions after `private` or `protected` isolated calls need one
36
+ # extra level of indentation.
37
+ Layout/IndentationConsistency:
38
+ Enabled: true
39
+ EnforcedStyle: rails
40
+
41
+ # Two spaces, no tabs (for indentation).
42
+ Layout/IndentationWidth:
43
+ Enabled: true
44
+
45
+ Layout/SpaceAfterColon:
46
+ Enabled: true
47
+
48
+ Layout/SpaceAfterComma:
49
+ Enabled: true
50
+
51
+ Layout/SpaceAroundEqualsInParameterDefault:
52
+ Enabled: true
53
+
54
+ Layout/SpaceAroundKeyword:
55
+ Enabled: true
56
+
57
+ Layout/SpaceAroundOperators:
58
+ Enabled: true
59
+
60
+ Layout/SpaceBeforeFirstArg:
61
+ Enabled: true
62
+
63
+ # Use `foo {}` not `foo{}`.
64
+ Layout/SpaceBeforeBlockBraces:
65
+ Enabled: true
66
+
67
+ # Use `foo { bar }` not `foo {bar}`.
68
+ Layout/SpaceInsideBlockBraces:
69
+ Enabled: true
70
+
71
+ # Use `{ a: 1 }` not `{a:1}`.
72
+ Layout/SpaceInsideHashLiteralBraces:
73
+ Enabled: true
74
+
75
+ Layout/SpaceInsideParens:
76
+ Enabled: true
77
+
78
+ # Detect hard tabs, no hard tabs.
79
+ Layout/Tab:
80
+ Enabled: true
81
+
82
+ # Blank lines should not have any spaces.
83
+ Layout/TrailingBlankLines:
84
+ Enabled: true
85
+
86
+ # No trailing whitespace.
87
+ Layout/TrailingWhitespace:
88
+ Enabled: true
89
+
90
+ # Prefer &&/|| over and/or.
91
+ Style/AndOr:
92
+ Enabled: true
93
+
94
+ # Do not use braces for hash literals when they are the last argument of a
95
+ # method call.
96
+ Style/BracesAroundHashParameters:
97
+ Enabled: true
98
+ EnforcedStyle: context_dependent
99
+
100
+ # Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }.
101
+ Style/HashSyntax:
102
+ Enabled: true
103
+
104
+ # Defining a method with parameters needs parentheses.
105
+ Style/MethodDefParentheses:
106
+ Enabled: true
107
+
108
+ # Check quotes usage according to lint rule below.
109
+ Style/StringLiterals:
110
+ Enabled: true
111
+ EnforcedStyle: double_quotes
112
+
113
+ # Use quotes for string literals when they are enough.
114
+ Style/UnneededPercentQ:
115
+ Enabled: true
116
+
117
+ # Align `end` with the matching keyword or starting expression except for
118
+ # assignments, where it should be aligned with the LHS.
119
+ Lint/EndAlignment:
120
+ Enabled: true
121
+ EnforcedStyleAlignWith: variable
122
+
123
+ # Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
124
+ Lint/RequireParentheses:
125
+ Enabled: true
data/.travis.yml ADDED
@@ -0,0 +1,25 @@
1
+ language: ruby
2
+ sudo: false
3
+ bundler: true
4
+
5
+ rvm:
6
+ - 2.3
7
+ - 2.4
8
+ - ruby-head
9
+
10
+ cache:
11
+ bundler: true
12
+ yarn: true
13
+
14
+ matrix:
15
+ allow_failures:
16
+ - rvm: ruby-head
17
+ fast_finish: true
18
+
19
+ install:
20
+ - bundle install
21
+ - yarn install
22
+
23
+ script:
24
+ - bundle exec rake
25
+ - yarn lint
data/Gemfile ADDED
@@ -0,0 +1,33 @@
1
+ source "https://rubygems.org"
2
+
3
+ git_source(:github) { |repo_path| "https://github.com/#{repo_path}.git" }
4
+
5
+ gemspec
6
+
7
+ gem "rails", "~> 3.2.22.4"
8
+
9
+ gem "rake"
10
+ gem "byebug"
11
+
12
+ group :test do
13
+ gem "simplecov"
14
+ end
15
+
16
+ gem "sqlite3"
17
+ gem "httparty"
18
+
19
+ gem "aws-sdk", "~> 2", require: false
20
+ gem "google-cloud-storage", require: false
21
+ # Contains fix to be able to test using StringIO
22
+ gem 'azure-core', git: "https://github.com/dixpac/azure-ruby-asm-core.git"
23
+ gem 'azure-storage', require: false
24
+
25
+ gem "mini_magick"
26
+
27
+ gem "rubocop", require: false
28
+
29
+ gem "test-unit", "~> 3.6"
30
+
31
+ gem "minitest", "~> 5.15"
32
+
33
+ gem "test-unit-rails", "~> 1.0"
data/Gemfile.lock ADDED
@@ -0,0 +1,271 @@
1
+ GIT
2
+ remote: https://github.com/dixpac/azure-ruby-asm-core.git
3
+ revision: 4403389747f44a94b73e7a7522d1ea11f8b1a266
4
+ specs:
5
+ azure-core (0.1.8)
6
+ faraday (~> 0.9)
7
+ faraday_middleware (~> 0.10)
8
+ nokogiri (~> 1.7)
9
+
10
+ PATH
11
+ remote: .
12
+ specs:
13
+ activestorage_legacy (0.1)
14
+ marcel (>= 1.0)
15
+ mini_magick (>= 4.0)
16
+ rails (>= 3.2.22.4)
17
+ sidekiq (>= 4.2.0)
18
+ strong_parameters
19
+
20
+ GEM
21
+ remote: https://rubygems.org/
22
+ specs:
23
+ actionmailer (3.2.22.5)
24
+ actionpack (= 3.2.22.5)
25
+ mail (~> 2.5.4)
26
+ actionpack (3.2.22.5)
27
+ activemodel (= 3.2.22.5)
28
+ activesupport (= 3.2.22.5)
29
+ builder (~> 3.0.0)
30
+ erubis (~> 2.7.0)
31
+ journey (~> 1.0.4)
32
+ rack (~> 1.4.5)
33
+ rack-cache (~> 1.2)
34
+ rack-test (~> 0.6.1)
35
+ sprockets (~> 2.2.1)
36
+ activemodel (3.2.22.5)
37
+ activesupport (= 3.2.22.5)
38
+ builder (~> 3.0.0)
39
+ activerecord (3.2.22.5)
40
+ activemodel (= 3.2.22.5)
41
+ activesupport (= 3.2.22.5)
42
+ arel (~> 3.0.2)
43
+ tzinfo (~> 0.3.29)
44
+ activeresource (3.2.22.5)
45
+ activemodel (= 3.2.22.5)
46
+ activesupport (= 3.2.22.5)
47
+ activesupport (3.2.22.5)
48
+ i18n (~> 0.6, >= 0.6.4)
49
+ multi_json (~> 1.0)
50
+ addressable (2.8.4)
51
+ public_suffix (>= 2.0.2, < 6.0)
52
+ arel (3.0.3)
53
+ ast (2.3.0)
54
+ aws-sdk (2.10.7)
55
+ aws-sdk-resources (= 2.10.7)
56
+ aws-sdk-core (2.10.7)
57
+ aws-sigv4 (~> 1.0)
58
+ jmespath (~> 1.0)
59
+ aws-sdk-resources (2.10.7)
60
+ aws-sdk-core (= 2.10.7)
61
+ aws-sigv4 (1.0.0)
62
+ azure-storage (0.11.4.preview)
63
+ azure-core (~> 0.1)
64
+ faraday (~> 0.9)
65
+ faraday_middleware (~> 0.10)
66
+ nokogiri (~> 1.6)
67
+ builder (3.0.4)
68
+ byebug (9.0.6)
69
+ capybara (2.18.0)
70
+ addressable
71
+ mini_mime (>= 0.1.3)
72
+ nokogiri (>= 1.3.3)
73
+ rack (>= 1.0.0)
74
+ rack-test (>= 0.5.4)
75
+ xpath (>= 2.0, < 4.0)
76
+ concurrent-ruby (1.2.2)
77
+ connection_pool (2.2.5)
78
+ declarative (0.0.20)
79
+ declarative-option (0.1.0)
80
+ digest-crc (0.6.4)
81
+ rake (>= 12.0.0, < 14.0.0)
82
+ docile (1.3.5)
83
+ erubis (2.7.0)
84
+ faraday (0.12.1)
85
+ multipart-post (>= 1.2, < 3)
86
+ faraday_middleware (0.12.0)
87
+ faraday (>= 0.7.4, < 1.0)
88
+ google-api-client (0.32.1)
89
+ addressable (~> 2.5, >= 2.5.1)
90
+ googleauth (>= 0.5, < 0.10.0)
91
+ httpclient (>= 2.8.1, < 3.0)
92
+ mini_mime (~> 1.0)
93
+ representable (~> 3.0)
94
+ retriable (>= 2.0, < 4.0)
95
+ signet (~> 0.10)
96
+ google-cloud-core (1.3.2)
97
+ google-cloud-env (~> 1.0)
98
+ google-cloud-env (1.2.1)
99
+ faraday (~> 0.11)
100
+ google-cloud-storage (1.21.1)
101
+ addressable (~> 2.5)
102
+ digest-crc (~> 0.4)
103
+ google-api-client (~> 0.26)
104
+ google-cloud-core (~> 1.2)
105
+ googleauth (>= 0.6.2, < 0.10.0)
106
+ mini_mime (~> 1.0)
107
+ googleauth (0.9.0)
108
+ faraday (~> 0.12)
109
+ jwt (>= 1.4, < 3.0)
110
+ memoist (~> 0.16)
111
+ multi_json (~> 1.11)
112
+ os (>= 0.9, < 2.0)
113
+ signet (~> 0.7)
114
+ hike (1.2.3)
115
+ httparty (0.15.5)
116
+ multi_xml (>= 0.5.2)
117
+ httpclient (2.8.3)
118
+ i18n (0.9.5)
119
+ concurrent-ruby (~> 1.0)
120
+ jmespath (1.3.1)
121
+ journey (1.0.4)
122
+ json (1.8.6)
123
+ jwt (2.3.0)
124
+ mail (2.5.5)
125
+ mime-types (~> 1.16)
126
+ treetop (~> 1.4.8)
127
+ marcel (1.0.2)
128
+ memoist (0.16.2)
129
+ mime-types (1.25.1)
130
+ mini_magick (4.8.0)
131
+ mini_mime (1.1.2)
132
+ mini_portile2 (2.2.0)
133
+ minitest (5.15.0)
134
+ multi_json (1.15.0)
135
+ multi_xml (0.6.0)
136
+ multipart-post (2.0.0)
137
+ nokogiri (1.8.0)
138
+ mini_portile2 (~> 2.2.0)
139
+ os (1.1.4)
140
+ parallel (1.11.2)
141
+ parser (2.4.0.0)
142
+ ast (~> 2.2)
143
+ polyglot (0.3.5)
144
+ power_assert (2.0.3)
145
+ powerpack (0.1.1)
146
+ public_suffix (4.0.7)
147
+ rack (1.4.7)
148
+ rack-cache (1.13.0)
149
+ rack (>= 0.4)
150
+ rack-protection (2.2.4)
151
+ rack
152
+ rack-ssl (1.3.4)
153
+ rack
154
+ rack-test (0.6.3)
155
+ rack (>= 1.0)
156
+ rails (3.2.22.5)
157
+ actionmailer (= 3.2.22.5)
158
+ actionpack (= 3.2.22.5)
159
+ activerecord (= 3.2.22.5)
160
+ activeresource (= 3.2.22.5)
161
+ activesupport (= 3.2.22.5)
162
+ bundler (~> 1.0)
163
+ railties (= 3.2.22.5)
164
+ railties (3.2.22.5)
165
+ actionpack (= 3.2.22.5)
166
+ activesupport (= 3.2.22.5)
167
+ rack-ssl (~> 1.3.2)
168
+ rake (>= 0.8.7)
169
+ rdoc (~> 3.4)
170
+ thor (>= 0.14.6, < 2.0)
171
+ rainbow (2.2.2)
172
+ rake
173
+ rake (12.0.0)
174
+ rdoc (3.12.2)
175
+ json (~> 1.4)
176
+ redis (4.4.0)
177
+ representable (3.0.4)
178
+ declarative (< 0.1.0)
179
+ declarative-option (< 0.2.0)
180
+ uber (< 0.2.0)
181
+ retriable (3.1.2)
182
+ rr (3.1.0)
183
+ rubocop (0.49.1)
184
+ parallel (~> 1.10)
185
+ parser (>= 2.3.3.1, < 3.0)
186
+ powerpack (~> 0.1)
187
+ rainbow (>= 1.99.1, < 3.0)
188
+ ruby-progressbar (~> 1.7)
189
+ unicode-display_width (~> 1.0, >= 1.0.1)
190
+ ruby-progressbar (1.8.1)
191
+ sidekiq (5.2.8)
192
+ connection_pool (~> 2.2, >= 2.2.2)
193
+ rack (< 2.1.0)
194
+ rack-protection (>= 1.5.0)
195
+ redis (>= 3.3.5, < 5)
196
+ signet (0.11.0)
197
+ addressable (~> 2.3)
198
+ faraday (~> 0.9)
199
+ jwt (>= 1.5, < 3.0)
200
+ multi_json (~> 1.10)
201
+ simplecov (0.17.1)
202
+ docile (~> 1.1)
203
+ json (>= 1.8, < 3)
204
+ simplecov-html (~> 0.10.0)
205
+ simplecov-html (0.10.2)
206
+ sprockets (2.2.3)
207
+ hike (~> 1.2)
208
+ multi_json (~> 1.0)
209
+ rack (~> 1.0)
210
+ tilt (~> 1.1, != 1.3.0)
211
+ sqlite3 (1.3.13)
212
+ strong_parameters (0.2.3)
213
+ actionpack (~> 3.0)
214
+ activemodel (~> 3.0)
215
+ activesupport (~> 3.0)
216
+ railties (~> 3.0)
217
+ test-unit (3.6.1)
218
+ power_assert
219
+ test-unit-activesupport (1.1.1)
220
+ activesupport
221
+ test-unit
222
+ test-unit-capybara (1.1.1)
223
+ capybara (>= 2.1.0)
224
+ json
225
+ test-unit (>= 2.5.3)
226
+ test-unit-notify (1.0.4)
227
+ test-unit (>= 2.4.9)
228
+ test-unit-rails (1.0.4)
229
+ rails
230
+ test-unit-activesupport (>= 1.0.2)
231
+ test-unit-capybara
232
+ test-unit-notify
233
+ test-unit-rr
234
+ test-unit-rr (1.0.5)
235
+ rr (>= 1.1.1)
236
+ test-unit (>= 2.5.2)
237
+ thor (1.2.2)
238
+ tilt (1.4.1)
239
+ treetop (1.4.15)
240
+ polyglot
241
+ polyglot (>= 0.3.1)
242
+ tzinfo (0.3.62)
243
+ uber (0.1.0)
244
+ unicode-display_width (1.3.0)
245
+ xpath (3.2.0)
246
+ nokogiri (~> 1.8)
247
+
248
+ PLATFORMS
249
+ ruby
250
+
251
+ DEPENDENCIES
252
+ activestorage_legacy!
253
+ aws-sdk (~> 2)
254
+ azure-core!
255
+ azure-storage
256
+ bundler (~> 1.15)
257
+ byebug
258
+ google-cloud-storage
259
+ httparty
260
+ mini_magick
261
+ minitest (~> 5.15)
262
+ rails (~> 3.2.22.4)
263
+ rake
264
+ rubocop
265
+ simplecov
266
+ sqlite3
267
+ test-unit (~> 3.6)
268
+ test-unit-rails (~> 1.0)
269
+
270
+ BUNDLED WITH
271
+ 1.17.3
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2017 David Heinemeier Hansson, Basecamp
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.