content_flagging 1.0.1 → 1.0.2

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 (73) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +43 -0
  3. data/README.md +21 -2
  4. data/content_flagging.gemspec +14 -6
  5. data/lib/content_flagging/version.rb +1 -1
  6. metadata +15 -77
  7. data/dummy_app/.dockerignore +0 -37
  8. data/dummy_app/.ruby-version +0 -1
  9. data/dummy_app/Dockerfile +0 -62
  10. data/dummy_app/Gemfile +0 -65
  11. data/dummy_app/Gemfile.lock +0 -286
  12. data/dummy_app/README.md +0 -24
  13. data/dummy_app/Rakefile +0 -6
  14. data/dummy_app/app/assets/config/manifest.js +0 -2
  15. data/dummy_app/app/assets/images/.keep +0 -0
  16. data/dummy_app/app/assets/stylesheets/application.css +0 -15
  17. data/dummy_app/app/channels/application_cable/channel.rb +0 -4
  18. data/dummy_app/app/channels/application_cable/connection.rb +0 -4
  19. data/dummy_app/app/controllers/application_controller.rb +0 -2
  20. data/dummy_app/app/controllers/concerns/.keep +0 -0
  21. data/dummy_app/app/helpers/application_helper.rb +0 -2
  22. data/dummy_app/app/jobs/application_job.rb +0 -7
  23. data/dummy_app/app/mailers/application_mailer.rb +0 -4
  24. data/dummy_app/app/models/application_record.rb +0 -3
  25. data/dummy_app/app/models/concerns/.keep +0 -0
  26. data/dummy_app/app/models/post.rb +0 -3
  27. data/dummy_app/app/models/user.rb +0 -2
  28. data/dummy_app/app/views/layouts/application.html.erb +0 -15
  29. data/dummy_app/app/views/layouts/mailer.html.erb +0 -13
  30. data/dummy_app/app/views/layouts/mailer.text.erb +0 -1
  31. data/dummy_app/bin/docker-entrypoint +0 -8
  32. data/dummy_app/bin/rails +0 -4
  33. data/dummy_app/bin/rake +0 -4
  34. data/dummy_app/bin/setup +0 -33
  35. data/dummy_app/config/application.rb +0 -42
  36. data/dummy_app/config/boot.rb +0 -4
  37. data/dummy_app/config/cable.yml +0 -10
  38. data/dummy_app/config/credentials.yml.enc +0 -1
  39. data/dummy_app/config/database.yml +0 -25
  40. data/dummy_app/config/environment.rb +0 -5
  41. data/dummy_app/config/environments/development.rb +0 -76
  42. data/dummy_app/config/environments/production.rb +0 -97
  43. data/dummy_app/config/environments/test.rb +0 -64
  44. data/dummy_app/config/initializers/assets.rb +0 -12
  45. data/dummy_app/config/initializers/content_security_policy.rb +0 -25
  46. data/dummy_app/config/initializers/filter_parameter_logging.rb +0 -8
  47. data/dummy_app/config/initializers/inflections.rb +0 -16
  48. data/dummy_app/config/initializers/permissions_policy.rb +0 -13
  49. data/dummy_app/config/locales/en.yml +0 -31
  50. data/dummy_app/config/master.key +0 -1
  51. data/dummy_app/config/puma.rb +0 -44
  52. data/dummy_app/config/routes.rb +0 -10
  53. data/dummy_app/config/storage.yml +0 -34
  54. data/dummy_app/config.ru +0 -6
  55. data/dummy_app/db/migrate/20250920174734_create_content_flags.rb +0 -13
  56. data/dummy_app/db/migrate/20250920174750_create_posts.rb +0 -10
  57. data/dummy_app/db/migrate/20250920174757_create_users.rb +0 -9
  58. data/dummy_app/db/schema.rb +0 -40
  59. data/dummy_app/db/seeds.rb +0 -9
  60. data/dummy_app/lib/assets/.keep +0 -0
  61. data/dummy_app/lib/tasks/.keep +0 -0
  62. data/dummy_app/public/404.html +0 -67
  63. data/dummy_app/public/422.html +0 -67
  64. data/dummy_app/public/500.html +0 -66
  65. data/dummy_app/public/apple-touch-icon-precomposed.png +0 -0
  66. data/dummy_app/public/apple-touch-icon.png +0 -0
  67. data/dummy_app/public/favicon.ico +0 -0
  68. data/dummy_app/public/robots.txt +0 -1
  69. data/dummy_app/storage/.keep +0 -0
  70. data/dummy_app/test_console.rb +0 -46
  71. data/dummy_app/vendor/.keep +0 -0
  72. data/example_usage.rb +0 -46
  73. data/test_manual.rb +0 -36
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 989ba4d8e7515a4fbe869dd301b2e459d5ae0c113b05f3fa8546f2fcafa34b11
4
- data.tar.gz: 54300023cf6b77854f16280925fa135737717c1c80cb8918843469b75de72203
3
+ metadata.gz: 1f20bcb28705d0dc67a3a18f10f65de22c65863f19092bbb17784cef7380e6f4
4
+ data.tar.gz: e6619f9ae4852ec3b6768b3530352d2ece5b202752a815f368677d4d65e5cc98
5
5
  SHA512:
6
- metadata.gz: d56202456bdc39041384a6dd310f6ab3faa5528bce1d5d8be3db7af40d8b4f9d76d716b23ff8573a340de0e89433dee7e94f5693d73fff1dd86ed9af950f6033
7
- data.tar.gz: 26001c27897fcf3b217e3f321dbc91505f954b4e63aa6a9459995e69917034409a1e2e8c1f0d0da0a23dfe252e22324ff85216e5f4a6af31914d764c686927a3
6
+ metadata.gz: 7a4fe90159d01ef82b4f6b936a4d24fbb4525cf8d5e861be8ca20ae223f841a19ca740f3b9fd35c65327b2f12581a35c3303e445446915df5d09d2210fc7036f
7
+ data.tar.gz: 5ee4498e1d61a36c085aa4164c12ed4a2b9eb6f8d52554ca23da5d54d2ab090af5c0782b7e54803d11867d5eb416b5eda1a5cca2f1bb539d26654c2c8c48a620
data/CHANGELOG.md ADDED
@@ -0,0 +1,43 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ ## [1.0.2] - 2025-01-15
6
+
7
+ ### Added
8
+ - Professional website at https://content-flagging.netlify.app
9
+ - Interactive demo and comprehensive documentation
10
+ - Dark mode support for website
11
+ - Modern green/teal color scheme
12
+
13
+ ### Updated
14
+ - Homepage URL to point to live website
15
+ - Documentation links to interactive site
16
+ - README with proper links to website and RubyGems
17
+
18
+ ## [1.0.1] - 2025-09-20
19
+
20
+ ### Fixed
21
+ - Updated repository URLs to correct GitHub location
22
+
23
+ ## [1.0.0] - 2025-09-20
24
+
25
+ ### Added
26
+ - Initial release of ContentFlagging gem
27
+ - `acts_as_flaggable` method for Rails models
28
+ - Configurable flag thresholds
29
+ - Automatic scope filtering
30
+ - Polymorphic flagging system
31
+ - Thread-safe counter management
32
+ - Support for PostgreSQL, MySQL, SQLite
33
+ - Rails generator for easy installation
34
+ - Comprehensive test suite
35
+ - Admin-friendly scopes and methods
36
+
37
+ ### Features
38
+ - Flag content with `flag!(flagged_by: user)`
39
+ - Unflag content with `unflag!(flagged_by: user)`
40
+ - Check flagging status with `flagged?` and `flag_count`
41
+ - Track when content was first flagged with `flagged_at`
42
+ - Scopes: `flagged`, `not_flagged`, `with_flagged`
43
+ - Configurable thresholds per model or globally
data/README.md CHANGED
@@ -1,8 +1,14 @@
1
1
  # 🚩 ContentFlagging
2
2
 
3
- > **The `acts_as_paranoid` for content moderation**
3
+ [![Gem Version](https://badge.fury.io/rb/content_flagging.svg)](https://rubygems.org/gems/content_flagging)
4
+ [![Ruby](https://img.shields.io/badge/ruby-%3E%3D%202.7.0-ruby.svg)](https://ruby-lang.org)
5
+ [![Rails](https://img.shields.io/badge/rails-%3E%3D%206.0-red.svg)](https://rubyonrails.org)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+ [![Website](https://img.shields.io/badge/website-content--flagging.netlify.app-blue)](https://content-flagging.netlify.app)
4
8
 
5
- A powerful Rails gem that automatically hides inappropriate content when it gets flagged too many times. Just like `acts_as_paranoid` hides deleted records, `acts_as_flaggable` hides flagged content from your default scopes.
9
+ > **Smart community-driven content moderation**
10
+
11
+ A powerful Rails gem that lets your users moderate themselves. When content gets flagged enough times, it automatically disappears from your default scopes - keeping your platform clean without manual intervention.
6
12
 
7
13
  ## ⚡ Quick Start
8
14
 
@@ -138,6 +144,19 @@ end
138
144
 
139
145
  Found a bug? Want a feature? PRs welcome!
140
146
 
147
+ ## 🌐 Links
148
+
149
+ - **Website**: [content-flagging.netlify.app](https://content-flagging.netlify.app)
150
+ - **RubyGems**: [rubygems.org/gems/content_flagging](https://rubygems.org/gems/content_flagging)
151
+ - **GitHub**: [github.com/ArshdeepGrover/content_flagging](https://github.com/ArshdeepGrover/content_flagging)
152
+
153
+ ### 🚀 Interactive Demo
154
+ Visit [content-flagging.netlify.app](https://content-flagging.netlify.app) for:
155
+ - 📖 Complete documentation
156
+ - 🎯 Live interactive demo
157
+ - 🎪 Real-world examples
158
+ - 💡 Best practices
159
+
141
160
  ## 📄 License
142
161
 
143
162
  MIT License - go wild! 🎉
@@ -5,19 +5,27 @@ Gem::Specification.new do |spec|
5
5
  spec.version = ContentFlagging::VERSION
6
6
  spec.authors = ['Arshdeep Singh']
7
7
  spec.email = ['arsh199820@gmail.com']
8
- spec.summary = 'The acts_as_paranoid for content moderation - automatic flagging system for Rails'
9
- spec.description = 'A powerful Rails gem that automatically hides inappropriate content when flagged. Like acts_as_paranoid for deleted records, acts_as_flaggable hides flagged content from default scopes with configurable thresholds.'
10
- spec.homepage = 'https://github.com/ArshdeepGrover/content_flagging'
8
+ spec.summary = 'Community-driven content moderation for Rails applications'
9
+ spec.description = <<~DESC
10
+ ContentFlagging provides automatic content moderation for Rails applications through community flagging.
11
+ When content receives too many flags, it's automatically hidden from default scopes - just like acts_as_paranoid
12
+ for deleted records. Features configurable thresholds, thread-safe counters, polymorphic flagging, and
13
+ comprehensive admin tools. Perfect for user-generated content platforms.
14
+ DESC
15
+ spec.homepage = 'https://content-flagging.netlify.app'
11
16
  spec.license = 'MIT'
12
17
  spec.required_ruby_version = '>= 2.7.0'
13
18
 
14
19
  spec.metadata = {
15
- 'homepage_uri' => 'https://github.com/ArshdeepGrover/content_flagging',
20
+ 'homepage_uri' => 'https://content-flagging.netlify.app',
16
21
  'source_code_uri' => 'https://github.com/ArshdeepGrover/content_flagging',
17
22
  'changelog_uri' => 'https://github.com/ArshdeepGrover/content_flagging/blob/main/CHANGELOG.md',
18
23
  'bug_tracker_uri' => 'https://github.com/ArshdeepGrover/content_flagging/issues',
19
- 'documentation_uri' => 'https://github.com/ArshdeepGrover/content_flagging/blob/main/README.md',
20
- 'rubygems_mfa_required' => 'true'
24
+ 'documentation_uri' => 'https://content-flagging.netlify.app',
25
+ 'wiki_uri' => 'https://github.com/ArshdeepGrover/content_flagging/wiki',
26
+ 'funding_uri' => 'https://github.com/sponsors/ArshdeepGrover',
27
+ 'rubygems_mfa_required' => 'true',
28
+ 'allowed_push_host' => 'https://rubygems.org'
21
29
  }
22
30
 
23
31
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
@@ -1,3 +1,3 @@
1
1
  module ContentFlagging
2
- VERSION = '1.0.1'
2
+ VERSION = '1.0.2'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: content_flagging
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arshdeep Singh
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-09-20 00:00:00.000000000 Z
11
+ date: 2025-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -220,9 +220,11 @@ dependencies:
220
220
  - - "~>"
221
221
  - !ruby/object:Gem::Version
222
222
  version: '0.21'
223
- description: A powerful Rails gem that automatically hides inappropriate content when
224
- flagged. Like acts_as_paranoid for deleted records, acts_as_flaggable hides flagged
225
- content from default scopes with configurable thresholds.
223
+ description: |
224
+ ContentFlagging provides automatic content moderation for Rails applications through community flagging.
225
+ When content receives too many flags, it's automatically hidden from default scopes - just like acts_as_paranoid
226
+ for deleted records. Features configurable thresholds, thread-safe counters, polymorphic flagging, and
227
+ comprehensive admin tools. Perfect for user-generated content platforms.
226
228
  email:
227
229
  - arsh199820@gmail.com
228
230
  executables: []
@@ -230,76 +232,11 @@ extensions: []
230
232
  extra_rdoc_files: []
231
233
  files:
232
234
  - ".gitignore"
235
+ - CHANGELOG.md
233
236
  - LICENSE
234
237
  - README.md
235
238
  - Rakefile
236
239
  - content_flagging.gemspec
237
- - dummy_app/.dockerignore
238
- - dummy_app/.ruby-version
239
- - dummy_app/Dockerfile
240
- - dummy_app/Gemfile
241
- - dummy_app/Gemfile.lock
242
- - dummy_app/README.md
243
- - dummy_app/Rakefile
244
- - dummy_app/app/assets/config/manifest.js
245
- - dummy_app/app/assets/images/.keep
246
- - dummy_app/app/assets/stylesheets/application.css
247
- - dummy_app/app/channels/application_cable/channel.rb
248
- - dummy_app/app/channels/application_cable/connection.rb
249
- - dummy_app/app/controllers/application_controller.rb
250
- - dummy_app/app/controllers/concerns/.keep
251
- - dummy_app/app/helpers/application_helper.rb
252
- - dummy_app/app/jobs/application_job.rb
253
- - dummy_app/app/mailers/application_mailer.rb
254
- - dummy_app/app/models/application_record.rb
255
- - dummy_app/app/models/concerns/.keep
256
- - dummy_app/app/models/post.rb
257
- - dummy_app/app/models/user.rb
258
- - dummy_app/app/views/layouts/application.html.erb
259
- - dummy_app/app/views/layouts/mailer.html.erb
260
- - dummy_app/app/views/layouts/mailer.text.erb
261
- - dummy_app/bin/docker-entrypoint
262
- - dummy_app/bin/rails
263
- - dummy_app/bin/rake
264
- - dummy_app/bin/setup
265
- - dummy_app/config.ru
266
- - dummy_app/config/application.rb
267
- - dummy_app/config/boot.rb
268
- - dummy_app/config/cable.yml
269
- - dummy_app/config/credentials.yml.enc
270
- - dummy_app/config/database.yml
271
- - dummy_app/config/environment.rb
272
- - dummy_app/config/environments/development.rb
273
- - dummy_app/config/environments/production.rb
274
- - dummy_app/config/environments/test.rb
275
- - dummy_app/config/initializers/assets.rb
276
- - dummy_app/config/initializers/content_security_policy.rb
277
- - dummy_app/config/initializers/filter_parameter_logging.rb
278
- - dummy_app/config/initializers/inflections.rb
279
- - dummy_app/config/initializers/permissions_policy.rb
280
- - dummy_app/config/locales/en.yml
281
- - dummy_app/config/master.key
282
- - dummy_app/config/puma.rb
283
- - dummy_app/config/routes.rb
284
- - dummy_app/config/storage.yml
285
- - dummy_app/db/migrate/20250920174734_create_content_flags.rb
286
- - dummy_app/db/migrate/20250920174750_create_posts.rb
287
- - dummy_app/db/migrate/20250920174757_create_users.rb
288
- - dummy_app/db/schema.rb
289
- - dummy_app/db/seeds.rb
290
- - dummy_app/lib/assets/.keep
291
- - dummy_app/lib/tasks/.keep
292
- - dummy_app/public/404.html
293
- - dummy_app/public/422.html
294
- - dummy_app/public/500.html
295
- - dummy_app/public/apple-touch-icon-precomposed.png
296
- - dummy_app/public/apple-touch-icon.png
297
- - dummy_app/public/favicon.ico
298
- - dummy_app/public/robots.txt
299
- - dummy_app/storage/.keep
300
- - dummy_app/test_console.rb
301
- - dummy_app/vendor/.keep
302
- - example_usage.rb
303
240
  - lib/content_flagging.rb
304
241
  - lib/content_flagging/configuration.rb
305
242
  - lib/content_flagging/flag.rb
@@ -308,17 +245,19 @@ files:
308
245
  - lib/generators/content_flagging/install_generator.rb
309
246
  - lib/generators/content_flagging/templates/content_flagging.rb
310
247
  - lib/generators/content_flagging/templates/create_content_flags.rb.erb
311
- - test_manual.rb
312
- homepage: https://github.com/ArshdeepGrover/content_flagging
248
+ homepage: https://content-flagging.netlify.app
313
249
  licenses:
314
250
  - MIT
315
251
  metadata:
316
- homepage_uri: https://github.com/ArshdeepGrover/content_flagging
252
+ homepage_uri: https://content-flagging.netlify.app
317
253
  source_code_uri: https://github.com/ArshdeepGrover/content_flagging
318
254
  changelog_uri: https://github.com/ArshdeepGrover/content_flagging/blob/main/CHANGELOG.md
319
255
  bug_tracker_uri: https://github.com/ArshdeepGrover/content_flagging/issues
320
- documentation_uri: https://github.com/ArshdeepGrover/content_flagging/blob/main/README.md
256
+ documentation_uri: https://content-flagging.netlify.app
257
+ wiki_uri: https://github.com/ArshdeepGrover/content_flagging/wiki
258
+ funding_uri: https://github.com/sponsors/ArshdeepGrover
321
259
  rubygems_mfa_required: 'true'
260
+ allowed_push_host: https://rubygems.org
322
261
  post_install_message:
323
262
  rdoc_options: []
324
263
  require_paths:
@@ -337,6 +276,5 @@ requirements: []
337
276
  rubygems_version: 3.5.16
338
277
  signing_key:
339
278
  specification_version: 4
340
- summary: The acts_as_paranoid for content moderation - automatic flagging system for
341
- Rails
279
+ summary: Community-driven content moderation for Rails applications
342
280
  test_files: []
@@ -1,37 +0,0 @@
1
- # See https://docs.docker.com/engine/reference/builder/#dockerignore-file for more about ignoring files.
2
-
3
- # Ignore git directory.
4
- /.git/
5
-
6
- # Ignore bundler config.
7
- /.bundle
8
-
9
- # Ignore all environment files (except templates).
10
- /.env*
11
- !/.env*.erb
12
-
13
- # Ignore all default key files.
14
- /config/master.key
15
- /config/credentials/*.key
16
-
17
- # Ignore all logfiles and tempfiles.
18
- /log/*
19
- /tmp/*
20
- !/log/.keep
21
- !/tmp/.keep
22
-
23
- # Ignore pidfiles, but keep the directory.
24
- /tmp/pids/*
25
- !/tmp/pids/.keep
26
-
27
- # Ignore storage (uploaded files in development and any SQLite databases).
28
- /storage/*
29
- !/storage/.keep
30
- /tmp/storage/*
31
- !/tmp/storage/.keep
32
-
33
- # Ignore assets.
34
- /node_modules/
35
- /app/assets/builds/*
36
- !/app/assets/builds/.keep
37
- /public/assets
@@ -1 +0,0 @@
1
- 3.0.6
data/dummy_app/Dockerfile DELETED
@@ -1,62 +0,0 @@
1
- # syntax = docker/dockerfile:1
2
-
3
- # Make sure RUBY_VERSION matches the Ruby version in .ruby-version and Gemfile
4
- ARG RUBY_VERSION=3.0.6
5
- FROM registry.docker.com/library/ruby:$RUBY_VERSION-slim as base
6
-
7
- # Rails app lives here
8
- WORKDIR /rails
9
-
10
- # Set production environment
11
- ENV RAILS_ENV="production" \
12
- BUNDLE_DEPLOYMENT="1" \
13
- BUNDLE_PATH="/usr/local/bundle" \
14
- BUNDLE_WITHOUT="development"
15
-
16
-
17
- # Throw-away build stage to reduce size of final image
18
- FROM base as build
19
-
20
- # Install packages needed to build gems
21
- RUN apt-get update -qq && \
22
- apt-get install --no-install-recommends -y build-essential git libvips pkg-config
23
-
24
- # Install application gems
25
- COPY Gemfile Gemfile.lock ./
26
- RUN bundle install && \
27
- rm -rf ~/.bundle/ "${BUNDLE_PATH}"/ruby/*/cache "${BUNDLE_PATH}"/ruby/*/bundler/gems/*/.git && \
28
- bundle exec bootsnap precompile --gemfile
29
-
30
- # Copy application code
31
- COPY . .
32
-
33
- # Precompile bootsnap code for faster boot times
34
- RUN bundle exec bootsnap precompile app/ lib/
35
-
36
- # Precompiling assets for production without requiring secret RAILS_MASTER_KEY
37
- RUN SECRET_KEY_BASE_DUMMY=1 ./bin/rails assets:precompile
38
-
39
-
40
- # Final stage for app image
41
- FROM base
42
-
43
- # Install packages needed for deployment
44
- RUN apt-get update -qq && \
45
- apt-get install --no-install-recommends -y curl libsqlite3-0 libvips && \
46
- rm -rf /var/lib/apt/lists /var/cache/apt/archives
47
-
48
- # Copy built artifacts: gems, application
49
- COPY --from=build /usr/local/bundle /usr/local/bundle
50
- COPY --from=build /rails /rails
51
-
52
- # Run and own only the runtime files as a non-root user for security
53
- RUN useradd rails --create-home --shell /bin/bash && \
54
- chown -R rails:rails db log storage tmp
55
- USER rails:rails
56
-
57
- # Entrypoint prepares the database.
58
- ENTRYPOINT ["/rails/bin/docker-entrypoint"]
59
-
60
- # Start the server by default, this can be overwritten at runtime
61
- EXPOSE 3000
62
- CMD ["./bin/rails", "server"]
data/dummy_app/Gemfile DELETED
@@ -1,65 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- ruby "3.0.6"
4
-
5
- # Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main"
6
- gem "rails", "~> 7.1.4"
7
-
8
- # The original asset pipeline for Rails [https://github.com/rails/sprockets-rails]
9
- gem "sprockets-rails"
10
-
11
- # Use sqlite3 as the database for Active Record
12
- gem "sqlite3", ">= 1.4"
13
-
14
- # Content flagging gem
15
- gem "content_flagging", path: ".."
16
-
17
- # Use the Puma web server [https://github.com/puma/puma]
18
- gem "puma", ">= 5.0"
19
-
20
- # Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails]
21
- gem "importmap-rails"
22
-
23
- # Hotwire's SPA-like page accelerator [https://turbo.hotwired.dev]
24
- gem "turbo-rails"
25
-
26
- # Hotwire's modest JavaScript framework [https://stimulus.hotwired.dev]
27
- gem "stimulus-rails"
28
-
29
- # Build JSON APIs with ease [https://github.com/rails/jbuilder]
30
- gem "jbuilder"
31
-
32
- # Use Redis adapter to run Action Cable in production
33
- # gem "redis", ">= 4.0.1"
34
-
35
- # Use Kredis to get higher-level data types in Redis [https://github.com/rails/kredis]
36
- # gem "kredis"
37
-
38
- # Use Active Model has_secure_password [https://guides.rubyonrails.org/active_model_basics.html#securepassword]
39
- # gem "bcrypt", "~> 3.1.7"
40
-
41
- # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
42
- gem "tzinfo-data", platforms: %i[ windows jruby ]
43
-
44
- # Reduces boot times through caching; required in config/boot.rb
45
- gem "bootsnap", require: false
46
-
47
- # Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images]
48
- # gem "image_processing", "~> 1.2"
49
-
50
- group :development, :test do
51
- # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem
52
- gem "debug", platforms: %i[ mri windows ]
53
- end
54
-
55
- group :development do
56
- # Use console on exceptions pages [https://github.com/rails/web-console]
57
- gem "web-console"
58
-
59
- # Add speed badges [https://github.com/MiniProfiler/rack-mini-profiler]
60
- # gem "rack-mini-profiler"
61
-
62
- # Speed up commands on slow machines / big apps [https://github.com/rails/spring]
63
- # gem "spring"
64
- end
65
-