require 'activerecord-import'
class BulkImportPostsService
BATCH_SIZE = 1000
def initialize(csv_file_path)
pin "application"
pin "@hotwired/turbo-rails", to: "turbo.min.js", preload: true
pin "@hotwired/stimulus", to: "stimulus.min.js", preload: true
pin "@hotwired/stimulus-loading", to: "stimulus-loading.js", preload: true
pin_all_from "app/javascript/controllers", under: "controllers"
<%= link_to 'Delete', task_path(task),
data: { turbo_method: :delete, turbo_confirm: 'Delete this task?' },
class: 'text-red-700 hover:underline' %>
class RedisMutex
def initialize(redis: Redis.current)
@redis = redis
end
def with_lock(key, ttl: 60)
class Presence
TTL = 60
def initialize(redis: Redis.current)
@redis = redis
end
class QueryBudget
def initialize(app, max_queries: 50)
@app = app
@max_queries = max_queries
end
class AddSearchVectorToSnips < ActiveRecord::Migration[6.1]
def change
add_column :snips, :search_vector, :tsvector
add_index :snips, :search_vector, using: :gin
end
end
class AddLockVersionToPosts < ActiveRecord::Migration[6.1]
def change
add_column :posts, :lock_version, :integer, default: 0, null: false
end
end
class PaymentService
def initialize
Stripe.api_key = Rails.application.credentials.stripe[:secret_key]
end
def create_payment_intent(amount:, currency: 'usd')
class Profile < ApplicationRecord
has_one_attached :avatar
validate :avatar_type_and_size
private
class StepsController < ApplicationController
def move_up
@step = Step.find(params[:id])
@step.move_higher
respond_to do |format|
class RateLimiter
def initialize(redis: Redis.current)
@redis = redis
end
def allow?(key, limit:, period:)