discourse/lib
Martin Brennan 60ad836313
DEV: Chat service object initial implementation (#19814)
This is a combined work of Martin Brennan, Loïc Guitaut, and Joffrey Jaffeux.

---

This commit implements a base service object when working in chat. The documentation is available at https://discourse.github.io/discourse/chat/backend/Chat/Service.html

Generating documentation has been made as part of this commit with a bigger goal in mind of generally making it easier to dive into the chat project.

Working with services generally involves 3 parts:

- The service object itself, which is a series of steps where few of them are specialized (model, transaction, policy)

```ruby
class UpdateAge
  include Chat::Service::Base

  model :user, :fetch_user
  policy :can_see_user
  contract
  step :update_age

  class Contract
    attribute :age, :integer
  end

  def fetch_user(user_id:, **)
    User.find_by(id: user_id)
  end

  def can_see_user(guardian:, **)
    guardian.can_see_user(user)
  end

  def update_age(age:, **)
    user.update!(age: age)
  end
end
```

- The `with_service` controller helper, handling success and failure of the service within a service and making easy to return proper response to it from the controller

```ruby
def update
  with_service(UpdateAge) do
    on_success { render_serialized(result.user, BasicUserSerializer, root: "user") }
  end
end
```

- Rspec matchers and steps inspector, improving the dev experience while creating specs for a service

```ruby
RSpec.describe(UpdateAge) do
  subject(:result) do
    described_class.call(guardian: guardian, user_id: user.id, age: age)
  end

  fab!(:user) { Fabricate(:user) }
  fab!(:current_user) { Fabricate(:admin) }

  let(:guardian) { Guardian.new(current_user) }
  let(:age) { 1 }

   it { expect(user.reload.age).to eq(age) }
end
```

Note in case of unexpected failure in your spec, the output will give all the relevant information:

```
  1) UpdateAge when no channel_id is given is expected to fail to find a model named 'user'
     Failure/Error: it { is_expected.to fail_to_find_a_model(:user) }

       Expected model 'foo' (key: 'result.model.user') was not found in the result object.

       [1/4] [model] 'user' 
       [2/4] [policy] 'can_see_user'
       [3/4] [contract] 'default'
       [4/4] [step] 'update_age'

       /Users/joffreyjaffeux/Code/pr-discourse/plugins/chat/app/services/update_age.rb:32:in `fetch_user': missing keyword: :user_id (ArgumentError)
       	from /Users/joffreyjaffeux/Code/pr-discourse/plugins/chat/app/services/base.rb:202:in `instance_exec'
       	from /Users/joffreyjaffeux/Code/pr-discourse/plugins/chat/app/services/base.rb:202:in `call'
       	from /Users/joffreyjaffeux/Code/pr-discourse/plugins/chat/app/services/base.rb:219:in `call'
       	from /Users/joffreyjaffeux/Code/pr-discourse/plugins/chat/app/services/base.rb:417:in `block in run!'
       	from /Users/joffreyjaffeux/Code/pr-discourse/plugins/chat/app/services/base.rb:417:in `each'
       	from /Users/joffreyjaffeux/Code/pr-discourse/plugins/chat/app/services/base.rb:417:in `run!'
       	from /Users/joffreyjaffeux/Code/pr-discourse/plugins/chat/app/services/base.rb:411:in `run'
       	from <internal:kernel>:90:in `tap'
       	from /Users/joffreyjaffeux/Code/pr-discourse/plugins/chat/app/services/base.rb:302:in `call'
       	from /Users/joffreyjaffeux/Code/pr-discourse/plugins/chat/spec/services/update_age_spec.rb:15:in `block (3 levels) in <main>'
```
2023-02-13 13:09:57 +01:00
..
action_dispatch/session DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
auth DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
autospec DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
backup_restore FEATURE: Create SQL-only backup if there are no uploads (#20221) 2023-02-08 21:40:15 +01:00
common_passwords DEV: Upgrade to Rails 7 2022-04-28 11:51:03 +02:00
compression DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
content_security_policy DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
demon DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
discourse_dev FIX: Improve error reporting and failure modes for channel archiving (#19791) 2023-01-12 10:04:46 +10:00
email DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
email_controller_helper DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
emoji FEATURE: Add missing emojis (#15582) 2022-01-14 17:51:13 -03:00
faker DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
file_store DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
final_destination DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
freedom_patches DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
generators/rails DEV: removes plugin generator (#14101) 2021-08-20 11:29:06 +02:00
guardian FIX: error anonymous when tl4_delete_posts_and_topics setting (#20257) 2023-02-13 15:34:04 +11:00
i18n DEV: i18n:check rake task was broken on Ruby 3.1 (#20103) 2023-01-31 16:53:24 +01:00
imap DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
import DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
import_export DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
javascripts DEV: Enable parallel babel processing in ember-cli (#20215) 2023-02-09 16:24:24 +00:00
middleware FIX: Ensure anon-cached values are never returned for API requests (#20021) 2023-01-26 13:26:29 +00:00
migration DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
onebox DEV: Make it obvious that joined translation is used by onebox (#20158) 2023-02-03 10:02:14 +08:00
plugin DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
pretty_text DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
rate_limiter DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
reviewable DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
scheduler DEV: Prevent defer stats exception when thread aborted (#19863) 2023-01-16 09:08:44 +11:00
search DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
second_factor DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
seed_data DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
sidekiq DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
site_settings DEV: Remove older ruby version logic (#19971) 2023-01-24 10:42:56 +00:00
stylesheet DEV: Move to Sass compilation to dart-sass (#19910) 2023-02-07 12:24:57 -03:00
tasks DEV: Chat service object initial implementation (#19814) 2023-02-13 13:09:57 +01:00
theme_store DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
topic_query DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
turbo_tests DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
validators DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
webauthn DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
wizard DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
admin_confirmation.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
admin_constraint.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
admin_user_index_query.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
age_words.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
archetype.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
auth.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
backup_restore.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
badge_posts_view_manager.rb
badge_queries.rb FIX: Fixed getting badges from inviting youself (#19778) 2023-01-27 12:28:47 +08:00
base62.rb DEV: Correct typos and spelling mistakes (#12812) 2021-05-21 11:43:47 +10:00
bookmark_manager.rb FIX: Bookmark auto delete preference usage and default value (#19707) 2023-01-05 08:43:58 +10:00
bookmark_query.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
bookmark_reminder_notification_handler.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
browser_detection.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
cache.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
canonical_url.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
category_badge.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
chrome_installed_checker.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
color_math.rb UX: Calculate missing hover/selected colors from existing colors (#20105) 2023-02-01 09:55:21 +00:00
comment_migration.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
common_passwords.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
composer_messages_finder.rb DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
configurable_urls.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
content_buffer.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
content_security_policy.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
cooked_post_processor.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
cooked_processor_mixin.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
crawler_detection.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
csrf_token_verifier.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
current_user.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
custom_renderer.rb
db_helper.rb FIX: Make DBHelper.find build valid query (#19408) 2023-01-10 22:38:52 +02:00
directory_helper.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
discourse_connect_base.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
discourse_connect_provider.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
discourse_dev.rb DEV: move discourse_dev gem to the core. (#13360) 2021-06-14 20:34:44 +05:30
discourse_diff.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
discourse_event.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
discourse_hub.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
discourse_ip_info.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
discourse_js_processor.rb DEV: Enable parallel babel processing in ember-cli (#20215) 2023-02-09 16:24:24 +00:00
discourse_logstash_logger.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
discourse_plugin_registry.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
discourse_redis.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
discourse_sourcemapping_url_processor.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
discourse_tagging.rb SECURITY: Default tags to show count of topics in unrestricted categories (#19916) 2023-01-20 09:50:24 +08:00
discourse_updates.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
discourse.rb FEATURE: Introduce pg_force_readonly_mode GlobalSetting (#19612) 2023-01-19 13:59:11 +00:00
disk_space.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
distributed_cache.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
distributed_memoizer.rb DEV: Make DistributedMemoizer use DistributedMutex (#16229) 2022-04-05 19:29:58 +02:00
distributed_mutex.rb DEV: Limit concurrency of NotifyReviewables job (#19968) 2023-01-25 15:19:11 -05:00
edit_rate_limiter.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
email_backup_token.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
email_cook.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
email_updater.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
email.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
ember_cli.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
encodings.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
enum_site_setting.rb
enum.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
excerpt_parser.rb FIX: Do not add empty use/svg tags in ExcerptParser (#19969) 2023-01-24 14:40:24 +10:00
external_upload_helpers.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
feed_element_installer.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
feed_item_accessor.rb FIX: Select best link from Atom feed (#15663) 2022-01-21 17:54:18 +02:00
file_helper.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
filter_best_posts.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
final_destination.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
flag_query.rb DEV: Remove deprecated methods (#14885) 2021-11-11 12:21:25 -06:00
flag_settings.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
gaps.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
git_url.rb SECURITY: Prevent ReDOS by making the SSH url regex unambiguous (#20000) 2023-01-25 18:55:01 +02:00
global_path.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
group_email_credentials_check.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
guardian.rb DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
has_errors.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
highlight_js.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
hijack.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
homepage_constraint.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
html_prettify.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
html_to_markdown.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
http_language_parser.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
image_sizer.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
import_export.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
inline_oneboxer.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
js_locale_helper.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
json_error.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
letter_avatar.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
markdown_linker.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
mem_info.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
message_bus_diags.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
method_profiler.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
mini_sql_multisite_connection.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
mobile_detection.rb SECURITY: Prevent ReDoS in user agent parsing (#20002) 2023-01-25 18:55:33 +02:00
new_post_manager.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
new_post_result.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
notification_levels.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
onebox.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
oneboxer.rb DEV: Make it obvious that joined translation is used by onebox (#20158) 2023-02-03 10:02:14 +08:00
onpdiff.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
pbkdf2.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
permalink_constraint.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
pinned_check.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
plain_text_to_markdown.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
plugin_gem.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
plugin.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
post_action_creator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
post_action_destroyer.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
post_action_result.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
post_creator.rb DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
post_destroyer.rb FIX: Ensure soft-deleted topics can be deleted (#19802) 2023-01-27 16:15:33 +02:00
post_jobs_enqueuer.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
post_locker.rb
post_merger.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
post_revisor.rb DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
presence_channel.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
pretty_text.rb FIX: vimeo iframe url when data-original-href is missing (#18894) 2023-01-31 12:00:27 +01:00
promotion.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
quote_comparer.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
rake_helpers.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
rate_limiter.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
read_only_mixin.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
redis_snapshot.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
require_dependency_backward_compatibility.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
retrieve_title.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
route_format.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
route_matcher.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
rtl.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
s3_cors_rulesets.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
s3_helper.rb DEV: Remove defunct TODOs (#19825) 2023-01-12 09:41:39 +10:00
s3_inventory.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
score_calculator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
screening_model.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
search.rb DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
secure_session.rb
shrink_uploaded_image.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
sidekiq_logster_reporter.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
site_icon_manager.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
site_setting_extension.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
slug.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
socket_server.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
spam_handler.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
staff_constraint.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
staff_message_format.rb
suggested_topics_builder.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
svg_sprite.rb FIX: IconPicker option to display only available icons (#20235) 2023-02-13 09:24:47 +11:00
system_message.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
temporary_db.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
temporary_redis.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
text_cleaner.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
text_sentinel.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
theme_javascript_compiler.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
theme_modifier_helper.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
theme_settings_manager.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
theme_settings_parser.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
theme_translation_manager.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
theme_translation_parser.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
timeline_lookup.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
tiny_japanese_segmenter.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
topic_creator.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
topic_list_responder.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
topic_publisher.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
topic_query_params.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
topic_query.rb DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
topic_retriever.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
topic_subtype.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
topic_upload_security_manager.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
topic_view.rb DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
topics_bulk_action.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
trust_level.rb DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
turbo_tests.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
twitter_api.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
unicorn_logstash_patch.rb
unread.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
upload_creator.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
upload_fixer.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
upload_markdown.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
upload_recovery.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
upload_security.rb FIX: Do not count deleted post for upload ref security (#19949) 2023-01-24 10:01:48 +10:00
url_helper.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
user_comm_screener.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
user_lookup.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
user_name_suggester.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
vary_header.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
version.rb Version bump to v3.1.0.beta2 (#19999) 2023-01-25 13:47:16 -05:00
webauthn.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
wizard.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00