jr-paperclip 8.0.1 → 8.0.3

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.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/NEWS +9 -0
  3. data/lib/paperclip/thumbnail.rb +18 -15
  4. data/lib/paperclip/version.rb +1 -1
  5. metadata +3 -245
  6. data/.github/FUNDING.yml +0 -3
  7. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -18
  8. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  9. data/.github/workflows/reviewdog.yml +0 -23
  10. data/.github/workflows/tests.yml +0 -56
  11. data/.gitignore +0 -19
  12. data/.qlty/.gitignore +0 -7
  13. data/.qlty/qlty.toml +0 -89
  14. data/Appraisals +0 -29
  15. data/Gemfile +0 -18
  16. data/bin/console +0 -11
  17. data/features/basic_integration.feature +0 -112
  18. data/features/migration.feature +0 -29
  19. data/features/rake_tasks.feature +0 -62
  20. data/features/step_definitions/attachment_steps.rb +0 -138
  21. data/features/step_definitions/html_steps.rb +0 -15
  22. data/features/step_definitions/rails_steps.rb +0 -271
  23. data/features/step_definitions/s3_steps.rb +0 -16
  24. data/features/step_definitions/web_steps.rb +0 -106
  25. data/features/support/env.rb +0 -12
  26. data/features/support/file_helpers.rb +0 -34
  27. data/features/support/fixtures/boot_config.txt +0 -15
  28. data/features/support/fixtures/gemfile.txt +0 -5
  29. data/features/support/fixtures/preinitializer.txt +0 -20
  30. data/features/support/paths.rb +0 -28
  31. data/features/support/rails.rb +0 -39
  32. data/features/support/selectors.rb +0 -19
  33. data/features/support/webmock_setup.rb +0 -8
  34. data/gemfiles/7.0.gemfile +0 -21
  35. data/gemfiles/7.1.gemfile +0 -21
  36. data/gemfiles/7.2.gemfile +0 -21
  37. data/gemfiles/8.0.gemfile +0 -21
  38. data/gemfiles/8.1.gemfile +0 -21
  39. data/paperclip.gemspec +0 -52
  40. data/spec/database.yml +0 -4
  41. data/spec/paperclip/attachment_definitions_spec.rb +0 -313
  42. data/spec/paperclip/attachment_processing_spec.rb +0 -79
  43. data/spec/paperclip/attachment_registry_spec.rb +0 -158
  44. data/spec/paperclip/attachment_spec.rb +0 -1617
  45. data/spec/paperclip/content_type_detector_spec.rb +0 -58
  46. data/spec/paperclip/file_command_content_type_detector_spec.rb +0 -40
  47. data/spec/paperclip/filename_cleaner_spec.rb +0 -13
  48. data/spec/paperclip/geometry_detector_spec.rb +0 -96
  49. data/spec/paperclip/geometry_parser_spec.rb +0 -73
  50. data/spec/paperclip/geometry_spec.rb +0 -270
  51. data/spec/paperclip/glue_spec.rb +0 -63
  52. data/spec/paperclip/has_attached_file_spec.rb +0 -78
  53. data/spec/paperclip/helpers_spec.rb +0 -49
  54. data/spec/paperclip/integration_spec.rb +0 -702
  55. data/spec/paperclip/interpolations_spec.rb +0 -270
  56. data/spec/paperclip/io_adapters/abstract_adapter_spec.rb +0 -160
  57. data/spec/paperclip/io_adapters/attachment_adapter_spec.rb +0 -167
  58. data/spec/paperclip/io_adapters/data_uri_adapter_spec.rb +0 -88
  59. data/spec/paperclip/io_adapters/empty_string_adapter_spec.rb +0 -17
  60. data/spec/paperclip/io_adapters/file_adapter_spec.rb +0 -134
  61. data/spec/paperclip/io_adapters/http_url_proxy_adapter_spec.rb +0 -142
  62. data/spec/paperclip/io_adapters/identity_adapter_spec.rb +0 -8
  63. data/spec/paperclip/io_adapters/nil_adapter_spec.rb +0 -25
  64. data/spec/paperclip/io_adapters/registry_spec.rb +0 -35
  65. data/spec/paperclip/io_adapters/stringio_adapter_spec.rb +0 -64
  66. data/spec/paperclip/io_adapters/uploaded_file_adapter_spec.rb +0 -146
  67. data/spec/paperclip/io_adapters/uri_adapter_spec.rb +0 -231
  68. data/spec/paperclip/lazy_thumbnail_compatibility_spec.rb +0 -266
  69. data/spec/paperclip/matchers/have_attached_file_matcher_spec.rb +0 -19
  70. data/spec/paperclip/matchers/validate_attachment_content_type_matcher_spec.rb +0 -108
  71. data/spec/paperclip/matchers/validate_attachment_presence_matcher_spec.rb +0 -69
  72. data/spec/paperclip/matchers/validate_attachment_size_matcher_spec.rb +0 -88
  73. data/spec/paperclip/media_type_spoof_detector_spec.rb +0 -126
  74. data/spec/paperclip/meta_class_spec.rb +0 -30
  75. data/spec/paperclip/migration_guide_example_spec.rb +0 -44
  76. data/spec/paperclip/paperclip_missing_attachment_styles_spec.rb +0 -88
  77. data/spec/paperclip/paperclip_spec.rb +0 -196
  78. data/spec/paperclip/plural_cache_spec.rb +0 -37
  79. data/spec/paperclip/processor_helpers_spec.rb +0 -57
  80. data/spec/paperclip/processor_spec.rb +0 -60
  81. data/spec/paperclip/rails_environment_spec.rb +0 -30
  82. data/spec/paperclip/rake_spec.rb +0 -103
  83. data/spec/paperclip/schema_spec.rb +0 -298
  84. data/spec/paperclip/storage/filesystem_spec.rb +0 -102
  85. data/spec/paperclip/storage/fog_spec.rb +0 -606
  86. data/spec/paperclip/storage/s3_live_spec.rb +0 -188
  87. data/spec/paperclip/storage/s3_spec.rb +0 -1974
  88. data/spec/paperclip/style_spec.rb +0 -309
  89. data/spec/paperclip/tempfile_factory_spec.rb +0 -33
  90. data/spec/paperclip/tempfile_spec.rb +0 -35
  91. data/spec/paperclip/thumbnail_custom_options_spec.rb +0 -225
  92. data/spec/paperclip/thumbnail_loader_options_spec.rb +0 -53
  93. data/spec/paperclip/thumbnail_security_spec.rb +0 -42
  94. data/spec/paperclip/thumbnail_spec.rb +0 -1460
  95. data/spec/paperclip/url_generator_spec.rb +0 -231
  96. data/spec/paperclip/validators/attachment_content_type_validator_spec.rb +0 -410
  97. data/spec/paperclip/validators/attachment_file_name_validator_spec.rb +0 -249
  98. data/spec/paperclip/validators/attachment_presence_validator_spec.rb +0 -85
  99. data/spec/paperclip/validators/attachment_size_validator_spec.rb +0 -325
  100. data/spec/paperclip/validators/media_type_spoof_detection_validator_spec.rb +0 -48
  101. data/spec/paperclip/validators_spec.rb +0 -179
  102. data/spec/spec_helper.rb +0 -52
  103. data/spec/support/assertions.rb +0 -84
  104. data/spec/support/fake_model.rb +0 -24
  105. data/spec/support/fake_rails.rb +0 -12
  106. data/spec/support/fixtures/12k.png +0 -0
  107. data/spec/support/fixtures/50x50.png +0 -0
  108. data/spec/support/fixtures/5k.png +0 -0
  109. data/spec/support/fixtures/animated +0 -0
  110. data/spec/support/fixtures/animated.gif +0 -0
  111. data/spec/support/fixtures/animated.unknown +0 -0
  112. data/spec/support/fixtures/aws_s3.yml +0 -13
  113. data/spec/support/fixtures/bad.png +0 -1
  114. data/spec/support/fixtures/empty.html +0 -1
  115. data/spec/support/fixtures/empty.xlsx +0 -0
  116. data/spec/support/fixtures/fog.yml +0 -8
  117. data/spec/support/fixtures/rotated.jpg +0 -0
  118. data/spec/support/fixtures/s3.yml +0 -8
  119. data/spec/support/fixtures/sample.xlsm +0 -0
  120. data/spec/support/fixtures/spaced file.jpg +0 -0
  121. data/spec/support/fixtures/spaced file.png +0 -0
  122. data/spec/support/fixtures/text.txt +0 -1
  123. data/spec/support/fixtures/twopage.pdf +0 -0
  124. data/spec/support/fixtures/uppercase.PNG +0 -0
  125. data/spec/support/matchers/accept.rb +0 -5
  126. data/spec/support/matchers/exist.rb +0 -5
  127. data/spec/support/matchers/have_column.rb +0 -23
  128. data/spec/support/mock_attachment.rb +0 -24
  129. data/spec/support/mock_interpolator.rb +0 -24
  130. data/spec/support/mock_url_generator_builder.rb +0 -26
  131. data/spec/support/model_reconstruction.rb +0 -72
  132. data/spec/support/reporting.rb +0 -11
  133. data/spec/support/test_data.rb +0 -13
  134. data/spec/support/version_helper.rb +0 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 50f7b552819fd770fc0efc3724f496f5a4bc10f8d4ac6fe9bc0591eeeceb57af
4
- data.tar.gz: c3feece4b2623116fe6eb3816133a84b0115231dfec1709cecb72fc66269f442
3
+ metadata.gz: 33e2d6c7454262f7f7dbd9f3f90e9f3a02d7ac8322dce12d2207fbb49394d47c
4
+ data.tar.gz: 3e5a22977575ff03ab26f09df063b2bad92d8dd615bf398aaa01eb626427188b
5
5
  SHA512:
6
- metadata.gz: 1d6ccee68da6e052ff437398bee524ef8243e23cae44ffecb2e277240dd710a5a0b06927638caab4c720920e90d628284f8df8a20d6674dedde46478ecec9c57
7
- data.tar.gz: 48ccea235059d3d732e1353c718e204c90a73ee10b9e37c79edda4b651c64ff0cff81a57dbf11af77aa724ee871868dad6555b15563c5cd2d5470675c7987e85
6
+ metadata.gz: defdf5784f3c2325a2b3b9c7748e30070ec2612a6d506d0c0b79c836eee1f851e5c35c61e44fead22572e11d444ea681ef9048c4efb6842d6b77feafb293deef
7
+ data.tar.gz: f74bf5b90c340259a3fc521913b943245c8802ba650dbff107ef77379c45ebb6ce558f0f83aec0a56e577a6f06d5e9755429204f12140afe6b5e55583c559294
data/NEWS CHANGED
@@ -1,3 +1,12 @@
1
+ 8.0.3 (2026-01-20)
2
+
3
+ * Improvement: Reduce gem package size by excluding non-runtime files
4
+
5
+ 8.0.2 (2026-01-19)
6
+
7
+ * Performance: Optimized image thumbnail processing pipeline to handle EXIF orientation more efficiently when using vips backend.
8
+ * Bugix: Vips backend now uses copy_memory for operations that need random access.
9
+
1
10
  8.0.1 (2026-01-19)
2
11
 
3
12
  * Performance: Vips backend now uses sequential access by default for better memory efficiency.
@@ -183,6 +183,15 @@ module Paperclip
183
183
  def build_pipeline(source_path)
184
184
  pipeline = image_processing_module.source(source_path)
185
185
 
186
+ # Auto-orient based on EXIF data
187
+ if auto_orient
188
+ if backend == :vips
189
+ pipeline = pipeline.loader(autorotate: true)
190
+ elsif backend == :image_magick
191
+ pipeline = pipeline.auto_orient
192
+ end
193
+ end
194
+
186
195
  # For vips backend, default to sequential access for better memory efficiency.
187
196
  # Sequential access streams the image from top to bottom, keeping only a few
188
197
  # scanlines in memory. Users can override via source_file_options: { access: :random }
@@ -217,15 +226,6 @@ module Paperclip
217
226
  end
218
227
  end
219
228
 
220
- # Auto-orient based on EXIF data
221
- if auto_orient
222
- pipeline = if backend == :vips
223
- pipeline.autorot
224
- else
225
- pipeline.auto_orient
226
- end
227
- end
228
-
229
229
  # Apply resize operation
230
230
  if target_geometry
231
231
  pipeline = apply_resize(pipeline)
@@ -474,13 +474,15 @@ module Paperclip
474
474
  # Vips rotate via similarity for arbitrary angles
475
475
  if value
476
476
  angle = value.to_f
477
- pipeline.custom { |img| img.similarity(angle: angle) }
477
+ # Similarity requires random access (or memory copy) for non-trivial angles
478
+ pipeline.custom { |img| img.copy_memory.similarity(angle: angle) }
478
479
  else
479
480
  pipeline
480
481
  end
481
482
  when "flip"
482
483
  # Vips uses flip with direction
483
- pipeline.custom(&:flipver)
484
+ # Vertical flip requires random access (needs full image)
485
+ pipeline.custom { |img| img.copy_memory.flipver }
484
486
  when "flop"
485
487
  pipeline.custom(&:fliphor)
486
488
  when "blur", "gaussian_blur", "gaussblur"
@@ -511,14 +513,15 @@ module Paperclip
511
513
  when "median"
512
514
  value ? pipeline.median(value.to_i) : pipeline
513
515
  when "rot90"
514
- pipeline.rot90
516
+ # Rotations change scanline order, requiring random access
517
+ pipeline.custom { |img| img.copy_memory.rot90 }
515
518
  when "rot180"
516
- pipeline.rot180
519
+ pipeline.custom { |img| img.copy_memory.rot180 }
517
520
  when "rot270"
518
- pipeline.rot270
521
+ pipeline.custom { |img| img.copy_memory.rot270 }
519
522
  when "similarity"
520
523
  # similarity for arbitrary rotation/scale
521
- value ? pipeline.custom { |img| img.similarity(angle: value.to_f) } : pipeline
524
+ value ? pipeline.custom { |img| img.copy_memory.similarity(angle: value.to_f) } : pipeline
522
525
  # Edge detection filters (no arguments)
523
526
  when "canny"
524
527
  pipeline.canny
@@ -1,3 +1,3 @@
1
1
  module Paperclip
2
- VERSION = "8.0.1".freeze
2
+ VERSION = "8.0.3".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jr-paperclip
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.0.1
4
+ version: 8.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jukka Rautanen
@@ -382,23 +382,12 @@ dependencies:
382
382
  description: Easy upload management for ActiveRecord
383
383
  email:
384
384
  - jukka.rautanen@gmail.com
385
- executables:
386
- - console
385
+ executables: []
387
386
  extensions: []
388
387
  extra_rdoc_files: []
389
388
  files:
390
- - ".github/FUNDING.yml"
391
- - ".github/ISSUE_TEMPLATE/bug_report.md"
392
- - ".github/ISSUE_TEMPLATE/feature_request.md"
393
- - ".github/workflows/reviewdog.yml"
394
- - ".github/workflows/tests.yml"
395
- - ".gitignore"
396
- - ".qlty/.gitignore"
397
- - ".qlty/qlty.toml"
398
389
  - ".rubocop.yml"
399
- - Appraisals
400
390
  - CONTRIBUTING.md
401
- - Gemfile
402
391
  - LICENSE
403
392
  - NEWS
404
393
  - README.md
@@ -406,29 +395,6 @@ files:
406
395
  - Rakefile
407
396
  - UPGRADING
408
397
  - VIPS_MIGRATION_GUIDE.md
409
- - bin/console
410
- - features/basic_integration.feature
411
- - features/migration.feature
412
- - features/rake_tasks.feature
413
- - features/step_definitions/attachment_steps.rb
414
- - features/step_definitions/html_steps.rb
415
- - features/step_definitions/rails_steps.rb
416
- - features/step_definitions/s3_steps.rb
417
- - features/step_definitions/web_steps.rb
418
- - features/support/env.rb
419
- - features/support/file_helpers.rb
420
- - features/support/fixtures/boot_config.txt
421
- - features/support/fixtures/gemfile.txt
422
- - features/support/fixtures/preinitializer.txt
423
- - features/support/paths.rb
424
- - features/support/rails.rb
425
- - features/support/selectors.rb
426
- - features/support/webmock_setup.rb
427
- - gemfiles/7.0.gemfile
428
- - gemfiles/7.1.gemfile
429
- - gemfiles/7.2.gemfile
430
- - gemfiles/8.0.gemfile
431
- - gemfiles/8.1.gemfile
432
398
  - lib/generators/paperclip/USAGE
433
399
  - lib/generators/paperclip/paperclip_generator.rb
434
400
  - lib/generators/paperclip/templates/paperclip_migration.rb.erb
@@ -495,103 +461,7 @@ files:
495
461
  - lib/paperclip/validators/media_type_spoof_detection_validator.rb
496
462
  - lib/paperclip/version.rb
497
463
  - lib/tasks/paperclip.rake
498
- - paperclip.gemspec
499
464
  - shoulda_macros/paperclip.rb
500
- - spec/database.yml
501
- - spec/paperclip/attachment_definitions_spec.rb
502
- - spec/paperclip/attachment_processing_spec.rb
503
- - spec/paperclip/attachment_registry_spec.rb
504
- - spec/paperclip/attachment_spec.rb
505
- - spec/paperclip/content_type_detector_spec.rb
506
- - spec/paperclip/file_command_content_type_detector_spec.rb
507
- - spec/paperclip/filename_cleaner_spec.rb
508
- - spec/paperclip/geometry_detector_spec.rb
509
- - spec/paperclip/geometry_parser_spec.rb
510
- - spec/paperclip/geometry_spec.rb
511
- - spec/paperclip/glue_spec.rb
512
- - spec/paperclip/has_attached_file_spec.rb
513
- - spec/paperclip/helpers_spec.rb
514
- - spec/paperclip/integration_spec.rb
515
- - spec/paperclip/interpolations_spec.rb
516
- - spec/paperclip/io_adapters/abstract_adapter_spec.rb
517
- - spec/paperclip/io_adapters/attachment_adapter_spec.rb
518
- - spec/paperclip/io_adapters/data_uri_adapter_spec.rb
519
- - spec/paperclip/io_adapters/empty_string_adapter_spec.rb
520
- - spec/paperclip/io_adapters/file_adapter_spec.rb
521
- - spec/paperclip/io_adapters/http_url_proxy_adapter_spec.rb
522
- - spec/paperclip/io_adapters/identity_adapter_spec.rb
523
- - spec/paperclip/io_adapters/nil_adapter_spec.rb
524
- - spec/paperclip/io_adapters/registry_spec.rb
525
- - spec/paperclip/io_adapters/stringio_adapter_spec.rb
526
- - spec/paperclip/io_adapters/uploaded_file_adapter_spec.rb
527
- - spec/paperclip/io_adapters/uri_adapter_spec.rb
528
- - spec/paperclip/lazy_thumbnail_compatibility_spec.rb
529
- - spec/paperclip/matchers/have_attached_file_matcher_spec.rb
530
- - spec/paperclip/matchers/validate_attachment_content_type_matcher_spec.rb
531
- - spec/paperclip/matchers/validate_attachment_presence_matcher_spec.rb
532
- - spec/paperclip/matchers/validate_attachment_size_matcher_spec.rb
533
- - spec/paperclip/media_type_spoof_detector_spec.rb
534
- - spec/paperclip/meta_class_spec.rb
535
- - spec/paperclip/migration_guide_example_spec.rb
536
- - spec/paperclip/paperclip_missing_attachment_styles_spec.rb
537
- - spec/paperclip/paperclip_spec.rb
538
- - spec/paperclip/plural_cache_spec.rb
539
- - spec/paperclip/processor_helpers_spec.rb
540
- - spec/paperclip/processor_spec.rb
541
- - spec/paperclip/rails_environment_spec.rb
542
- - spec/paperclip/rake_spec.rb
543
- - spec/paperclip/schema_spec.rb
544
- - spec/paperclip/storage/filesystem_spec.rb
545
- - spec/paperclip/storage/fog_spec.rb
546
- - spec/paperclip/storage/s3_live_spec.rb
547
- - spec/paperclip/storage/s3_spec.rb
548
- - spec/paperclip/style_spec.rb
549
- - spec/paperclip/tempfile_factory_spec.rb
550
- - spec/paperclip/tempfile_spec.rb
551
- - spec/paperclip/thumbnail_custom_options_spec.rb
552
- - spec/paperclip/thumbnail_loader_options_spec.rb
553
- - spec/paperclip/thumbnail_security_spec.rb
554
- - spec/paperclip/thumbnail_spec.rb
555
- - spec/paperclip/url_generator_spec.rb
556
- - spec/paperclip/validators/attachment_content_type_validator_spec.rb
557
- - spec/paperclip/validators/attachment_file_name_validator_spec.rb
558
- - spec/paperclip/validators/attachment_presence_validator_spec.rb
559
- - spec/paperclip/validators/attachment_size_validator_spec.rb
560
- - spec/paperclip/validators/media_type_spoof_detection_validator_spec.rb
561
- - spec/paperclip/validators_spec.rb
562
- - spec/spec_helper.rb
563
- - spec/support/assertions.rb
564
- - spec/support/fake_model.rb
565
- - spec/support/fake_rails.rb
566
- - spec/support/fixtures/12k.png
567
- - spec/support/fixtures/50x50.png
568
- - spec/support/fixtures/5k.png
569
- - spec/support/fixtures/animated
570
- - spec/support/fixtures/animated.gif
571
- - spec/support/fixtures/animated.unknown
572
- - spec/support/fixtures/aws_s3.yml
573
- - spec/support/fixtures/bad.png
574
- - spec/support/fixtures/empty.html
575
- - spec/support/fixtures/empty.xlsx
576
- - spec/support/fixtures/fog.yml
577
- - spec/support/fixtures/rotated.jpg
578
- - spec/support/fixtures/s3.yml
579
- - spec/support/fixtures/sample.xlsm
580
- - spec/support/fixtures/spaced file.jpg
581
- - spec/support/fixtures/spaced file.png
582
- - spec/support/fixtures/text.txt
583
- - spec/support/fixtures/twopage.pdf
584
- - spec/support/fixtures/uppercase.PNG
585
- - spec/support/matchers/accept.rb
586
- - spec/support/matchers/exist.rb
587
- - spec/support/matchers/have_column.rb
588
- - spec/support/mock_attachment.rb
589
- - spec/support/mock_interpolator.rb
590
- - spec/support/mock_url_generator_builder.rb
591
- - spec/support/model_reconstruction.rb
592
- - spec/support/reporting.rb
593
- - spec/support/test_data.rb
594
- - spec/support/version_helper.rb
595
465
  homepage: https://github.com/jukra/jr-paperclip
596
466
  licenses:
597
467
  - MIT
@@ -620,116 +490,4 @@ requirements:
620
490
  rubygems_version: 3.7.0
621
491
  specification_version: 4
622
492
  summary: File attachments as attributes for ActiveRecord
623
- test_files:
624
- - features/basic_integration.feature
625
- - features/migration.feature
626
- - features/rake_tasks.feature
627
- - features/step_definitions/attachment_steps.rb
628
- - features/step_definitions/html_steps.rb
629
- - features/step_definitions/rails_steps.rb
630
- - features/step_definitions/s3_steps.rb
631
- - features/step_definitions/web_steps.rb
632
- - features/support/env.rb
633
- - features/support/file_helpers.rb
634
- - features/support/fixtures/boot_config.txt
635
- - features/support/fixtures/gemfile.txt
636
- - features/support/fixtures/preinitializer.txt
637
- - features/support/paths.rb
638
- - features/support/rails.rb
639
- - features/support/selectors.rb
640
- - features/support/webmock_setup.rb
641
- - spec/database.yml
642
- - spec/paperclip/attachment_definitions_spec.rb
643
- - spec/paperclip/attachment_processing_spec.rb
644
- - spec/paperclip/attachment_registry_spec.rb
645
- - spec/paperclip/attachment_spec.rb
646
- - spec/paperclip/content_type_detector_spec.rb
647
- - spec/paperclip/file_command_content_type_detector_spec.rb
648
- - spec/paperclip/filename_cleaner_spec.rb
649
- - spec/paperclip/geometry_detector_spec.rb
650
- - spec/paperclip/geometry_parser_spec.rb
651
- - spec/paperclip/geometry_spec.rb
652
- - spec/paperclip/glue_spec.rb
653
- - spec/paperclip/has_attached_file_spec.rb
654
- - spec/paperclip/helpers_spec.rb
655
- - spec/paperclip/integration_spec.rb
656
- - spec/paperclip/interpolations_spec.rb
657
- - spec/paperclip/io_adapters/abstract_adapter_spec.rb
658
- - spec/paperclip/io_adapters/attachment_adapter_spec.rb
659
- - spec/paperclip/io_adapters/data_uri_adapter_spec.rb
660
- - spec/paperclip/io_adapters/empty_string_adapter_spec.rb
661
- - spec/paperclip/io_adapters/file_adapter_spec.rb
662
- - spec/paperclip/io_adapters/http_url_proxy_adapter_spec.rb
663
- - spec/paperclip/io_adapters/identity_adapter_spec.rb
664
- - spec/paperclip/io_adapters/nil_adapter_spec.rb
665
- - spec/paperclip/io_adapters/registry_spec.rb
666
- - spec/paperclip/io_adapters/stringio_adapter_spec.rb
667
- - spec/paperclip/io_adapters/uploaded_file_adapter_spec.rb
668
- - spec/paperclip/io_adapters/uri_adapter_spec.rb
669
- - spec/paperclip/lazy_thumbnail_compatibility_spec.rb
670
- - spec/paperclip/matchers/have_attached_file_matcher_spec.rb
671
- - spec/paperclip/matchers/validate_attachment_content_type_matcher_spec.rb
672
- - spec/paperclip/matchers/validate_attachment_presence_matcher_spec.rb
673
- - spec/paperclip/matchers/validate_attachment_size_matcher_spec.rb
674
- - spec/paperclip/media_type_spoof_detector_spec.rb
675
- - spec/paperclip/meta_class_spec.rb
676
- - spec/paperclip/migration_guide_example_spec.rb
677
- - spec/paperclip/paperclip_missing_attachment_styles_spec.rb
678
- - spec/paperclip/paperclip_spec.rb
679
- - spec/paperclip/plural_cache_spec.rb
680
- - spec/paperclip/processor_helpers_spec.rb
681
- - spec/paperclip/processor_spec.rb
682
- - spec/paperclip/rails_environment_spec.rb
683
- - spec/paperclip/rake_spec.rb
684
- - spec/paperclip/schema_spec.rb
685
- - spec/paperclip/storage/filesystem_spec.rb
686
- - spec/paperclip/storage/fog_spec.rb
687
- - spec/paperclip/storage/s3_live_spec.rb
688
- - spec/paperclip/storage/s3_spec.rb
689
- - spec/paperclip/style_spec.rb
690
- - spec/paperclip/tempfile_factory_spec.rb
691
- - spec/paperclip/tempfile_spec.rb
692
- - spec/paperclip/thumbnail_custom_options_spec.rb
693
- - spec/paperclip/thumbnail_loader_options_spec.rb
694
- - spec/paperclip/thumbnail_security_spec.rb
695
- - spec/paperclip/thumbnail_spec.rb
696
- - spec/paperclip/url_generator_spec.rb
697
- - spec/paperclip/validators/attachment_content_type_validator_spec.rb
698
- - spec/paperclip/validators/attachment_file_name_validator_spec.rb
699
- - spec/paperclip/validators/attachment_presence_validator_spec.rb
700
- - spec/paperclip/validators/attachment_size_validator_spec.rb
701
- - spec/paperclip/validators/media_type_spoof_detection_validator_spec.rb
702
- - spec/paperclip/validators_spec.rb
703
- - spec/spec_helper.rb
704
- - spec/support/assertions.rb
705
- - spec/support/fake_model.rb
706
- - spec/support/fake_rails.rb
707
- - spec/support/fixtures/12k.png
708
- - spec/support/fixtures/50x50.png
709
- - spec/support/fixtures/5k.png
710
- - spec/support/fixtures/animated
711
- - spec/support/fixtures/animated.gif
712
- - spec/support/fixtures/animated.unknown
713
- - spec/support/fixtures/aws_s3.yml
714
- - spec/support/fixtures/bad.png
715
- - spec/support/fixtures/empty.html
716
- - spec/support/fixtures/empty.xlsx
717
- - spec/support/fixtures/fog.yml
718
- - spec/support/fixtures/rotated.jpg
719
- - spec/support/fixtures/s3.yml
720
- - spec/support/fixtures/sample.xlsm
721
- - spec/support/fixtures/spaced file.jpg
722
- - spec/support/fixtures/spaced file.png
723
- - spec/support/fixtures/text.txt
724
- - spec/support/fixtures/twopage.pdf
725
- - spec/support/fixtures/uppercase.PNG
726
- - spec/support/matchers/accept.rb
727
- - spec/support/matchers/exist.rb
728
- - spec/support/matchers/have_column.rb
729
- - spec/support/mock_attachment.rb
730
- - spec/support/mock_interpolator.rb
731
- - spec/support/mock_url_generator_builder.rb
732
- - spec/support/model_reconstruction.rb
733
- - spec/support/reporting.rb
734
- - spec/support/test_data.rb
735
- - spec/support/version_helper.rb
493
+ test_files: []
data/.github/FUNDING.yml DELETED
@@ -1,3 +0,0 @@
1
- # These are supported funding model platforms
2
-
3
- github: [ssinghi, sbhawsingka]
@@ -1,18 +0,0 @@
1
- ---
2
- name: Bug report
3
- about: Create a report to help us improve
4
- title: ''
5
- labels: ''
6
- assignees: ''
7
-
8
- ---
9
-
10
- Ruby version:
11
- Rails version:
12
- Paperclip version:
13
- ImageMagick version:
14
- libvips version:
15
-
16
- Please include your initializer, Paperclip related options, and any error message with the full backtrace.
17
-
18
- If you are using an old version, have you checked the changelogs to see if your issue has been fixed in a later version?
@@ -1,20 +0,0 @@
1
- ---
2
- name: Feature request
3
- about: Suggest an idea for this project
4
- title: ''
5
- labels: ''
6
- assignees: ''
7
-
8
- ---
9
-
10
- **Is your feature request related to a problem? Please describe.**
11
- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
-
13
- **Describe the solution you'd like**
14
- A clear and concise description of what you want to happen.
15
-
16
- **Describe alternatives you've considered**
17
- A clear and concise description of any alternative solutions or features you've considered.
18
-
19
- **Additional context**
20
- Add any other context or screenshots about the feature request here.
@@ -1,23 +0,0 @@
1
- name: reviewdog
2
- on:
3
- pull_request:
4
- permissions:
5
- contents: read
6
- pull-requests: write
7
- jobs:
8
- rubocop:
9
- name: runner / rubocop
10
- runs-on: ubuntu-latest
11
- env:
12
- BUNDLE_ONLY: development
13
- steps:
14
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
15
- - uses: ruby/setup-ruby@1a615958ad9d422dd932dc1d5823942ee002799f # v1.227.0
16
- with:
17
- ruby-version: '3.3'
18
- bundler-cache: true
19
- - uses: reviewdog/action-rubocop@fcb74ba274da10b18d038d0bcddaae3518739634 # v2.21.2
20
- with:
21
- reporter: github-pr-review # Default is github-pr-check
22
- skip_install: true
23
- use_bundler: true
@@ -1,56 +0,0 @@
1
- name: Tests
2
-
3
- on:
4
- push:
5
- branches: [master]
6
- pull_request:
7
- branches: [master]
8
-
9
- jobs:
10
- test:
11
- runs-on: ubuntu-latest
12
-
13
- strategy:
14
- fail-fast: false
15
- matrix:
16
- include:
17
- - ruby: '3.0'
18
- gemfile: gemfiles/7.0.gemfile
19
- - ruby: '3.1'
20
- gemfile: gemfiles/7.1.gemfile
21
- - ruby: '3.2'
22
- gemfile: gemfiles/7.2.gemfile
23
- - ruby: '3.3'
24
- gemfile: gemfiles/8.0.gemfile
25
- - ruby: '3.4'
26
- gemfile: gemfiles/7.2.gemfile
27
- - ruby: '3.4'
28
- gemfile: gemfiles/8.0.gemfile
29
- - ruby: '3.4'
30
- gemfile: gemfiles/8.1.gemfile
31
- - ruby: '4.0'
32
- gemfile: gemfiles/8.1.gemfile
33
-
34
- env:
35
- BUNDLE_GEMFILE: ${{ matrix.gemfile }}
36
-
37
- steps:
38
- - uses: actions/checkout@v4
39
-
40
- - name: Set up Ruby ${{ matrix.ruby }}
41
- uses: ruby/setup-ruby@v1
42
- with:
43
- ruby-version: ${{ matrix.ruby }}
44
- bundler-cache: true
45
-
46
- - name: Install dependencies
47
- run: |
48
- sudo apt-get update
49
- sudo apt-get install -y ghostscript imagemagick libvips libvips-tools
50
- sudo rm -f /etc/ImageMagick-6/policy.xml
51
-
52
- - name: Run tests
53
- run: bundle exec rake spec
54
-
55
- - name: Run cucumber
56
- run: bundle exec rake cucumber
data/.gitignore DELETED
@@ -1,19 +0,0 @@
1
- *~
2
- *.swp
3
- .rvmrc
4
- .bundle
5
- tmp
6
- .DS_Store
7
-
8
- *.log
9
-
10
- public
11
- paperclip*.gem
12
- capybara*.html
13
-
14
- *.rbc
15
- .rbx
16
-
17
- *SPIKE*
18
- *emfile.lock
19
- tags
data/.qlty/.gitignore DELETED
@@ -1,7 +0,0 @@
1
- *
2
- !configs
3
- !configs/**
4
- !hooks
5
- !hooks/**
6
- !qlty.toml
7
- !.gitignore
data/.qlty/qlty.toml DELETED
@@ -1,89 +0,0 @@
1
- # This file was automatically generated by `qlty init`.
2
- # You can modify it to suit your needs.
3
- # We recommend you to commit this file to your repository.
4
- #
5
- # This configuration is used by both Qlty CLI and Qlty Cloud.
6
- #
7
- # Qlty CLI -- Code quality toolkit for developers
8
- # Qlty Cloud -- Fully automated Code Health Platform
9
- #
10
- # Try Qlty Cloud: https://qlty.sh
11
- #
12
- # For a guide to configuration, visit https://qlty.sh/d/config
13
- # Or for a full reference, visit https://qlty.sh/d/qlty-toml
14
- config_version = "0"
15
-
16
- exclude_patterns = [
17
- "*_min.*",
18
- "*-min.*",
19
- "*.min.*",
20
- "**/.yarn/**",
21
- "**/*.d.ts",
22
- "**/assets/**",
23
- "**/bower_components/**",
24
- "**/build/**",
25
- "**/cache/**",
26
- "**/config/**",
27
- "**/db/**",
28
- "**/deps/**",
29
- "**/dist/**",
30
- "**/extern/**",
31
- "**/external/**",
32
- "**/generated/**",
33
- "**/Godeps/**",
34
- "**/gradlew/**",
35
- "**/mvnw/**",
36
- "**/node_modules/**",
37
- "**/protos/**",
38
- "**/seed/**",
39
- "**/target/**",
40
- "**/templates/**",
41
- "**/testdata/**",
42
- "**/vendor/**",
43
- "features/**"
44
- ]
45
-
46
- test_patterns = [
47
- "**/test/**",
48
- "**/spec/**",
49
- "**/*.test.*",
50
- "**/*.spec.*",
51
- "**/*_test.*",
52
- "**/*_spec.*",
53
- "**/test_*.*",
54
- "**/spec_*.*",
55
- ]
56
-
57
- [smells]
58
- mode = "comment"
59
-
60
- [smells.boolean_logic]
61
- threshold = 4
62
-
63
- [smells.file_complexity]
64
- threshold = 55
65
-
66
- [smells.return_statements]
67
- threshold = 4
68
-
69
- [smells.nested_control_flow]
70
- threshold = 4
71
-
72
- [smells.function_parameters]
73
- threshold = 4
74
-
75
- [smells.function_complexity]
76
- threshold = 5
77
-
78
- [smells.duplication]
79
- threshold = 22
80
-
81
- [[source]]
82
- name = "default"
83
- default = true
84
-
85
- [[plugin]]
86
- name = "rubocop"
87
- version = "1.81.7"
88
- package_file = "Gemfile"
89
- package_filters = ["rubocop"]
data/Appraisals DELETED
@@ -1,29 +0,0 @@
1
- appraise "7.0" do
2
- gem "sqlite3", "~> 1.4", platforms: :ruby
3
- gem "aruba", "~> 2.0"
4
- gem "rails", "~> 7.0.0"
5
- end
6
-
7
- appraise "7.1" do
8
- gem "sqlite3", "~> 1.4", platforms: :ruby
9
- gem "aruba", "~> 2.0"
10
- gem "rails", "~> 7.1.0"
11
- end
12
-
13
- appraise "7.2" do
14
- gem "sqlite3", "~> 2.0", platforms: :ruby
15
- gem "aruba", "~> 2.0"
16
- gem "rails", "~> 7.2.0"
17
- end
18
-
19
- appraise "8.0" do
20
- gem "sqlite3", "~> 2.0", platforms: :ruby
21
- gem "aruba", "~> 2.0"
22
- gem "rails", "~> 8.0.0"
23
- end
24
-
25
- appraise "8.1" do
26
- gem "sqlite3", "~> 2.0", platforms: :ruby
27
- gem "aruba", "~> 2.0"
28
- gem "rails", "~> 8.1.0"
29
- end
data/Gemfile DELETED
@@ -1,18 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem "pry"
6
-
7
- # Hinting at development dependencies
8
- # Prevents bundler from taking a long-time to resolve
9
- group :development, :test do
10
- gem "activerecord-import"
11
- gem "bootsnap", require: false
12
- gem "builder"
13
- gem "image_processing", "~> 1.14"
14
- gem "listen"
15
- gem "rspec"
16
- gem "rubocop", require: false
17
- gem "rubocop-rails"
18
- end