Skip to content

Commit 0b792f3

Browse files
authored
Merge branch 'main' into feature/oauth-integration
Signed-off-by: Robert Smith <[email protected]>
2 parents bf3fcf0 + e378260 commit 0b792f3

File tree

581 files changed

+25041
-2713
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

581 files changed

+25041
-2713
lines changed

.github/copilot-instructions.md

Lines changed: 103 additions & 178 deletions
Large diffs are not rendered by default.

.github/instructions/view-helpers.instructions.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,20 @@ end
8080
- `truncate`, `pluralize`, `excerpt`, `word_wrap`, `simple_format`.
8181
- For rich text (Action Text), use `record.body` and `to_plain_text` for indexing/search.
8282

83+
### Privacy Display
84+
- Use `privacy_display_value(entity)` for consistent, translated privacy level display across the application.
85+
- This helper automatically looks up the proper translation from `attributes.privacy_list` and falls back to humanized values.
86+
- Supports all privacy levels: `public`, `private`, `community`, `unlisted`.
87+
88+
```ruby
89+
# Instead of: entity.privacy.humanize or entity.privacy.capitalize
90+
<%= privacy_display_value(@event) %> # "Public" / "Público" / "Public"
91+
<%= privacy_display_value(@community) %> # "Private" / "Privado" / "Privé"
92+
93+
# Works in badges too (automatically used)
94+
<%= privacy_badge(@entity) %> # Uses privacy_display_value internally
95+
```
96+
8397
---
8498
8599
## 4. Navigation & Link Helpers

.github/workflows/rubyonrails.yml

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,8 @@ jobs:
1111
matrix:
1212
include:
1313
- ruby: '3.4.4'
14-
rails: '7.1.5.2'
14+
rails: '7.2.2.2'
1515
allowed_failure: false # ✅ required
16-
- ruby: '3.4.4'
17-
rails: '7.2.2.1'
18-
allowed_failure: false # ⚠️ allowed to fail
1916
- ruby: '3.4.4'
2017
rails: '8.0.2'
2118
allowed_failure: true # ⚠️ allowed to fail
@@ -52,18 +49,18 @@ jobs:
5249
with:
5350
ruby-version: ${{ matrix.ruby }}
5451

55-
# Run the automatic bundle-install only on 7.1.
52+
# Run the automatic bundle-install only on 7.2.
5653
# For 7.2 / 8.0 it just sets up Ruby *and* restores a cache layer
5754
# that we’ll reuse in the later manual install.
58-
bundler-cache: ${{ matrix.rails == '7.1.5.2' }}
55+
bundler-cache: ${{ matrix.rails == '7.2.2.2' }}
5956

6057
# One cache bucket per Rails version so they don’t clobber each other.
6158
cache-version: rails-${{ matrix.rails }}
6259

6360
# Updating Rails can legitimately blow up on the experimental tracks,
6461
# so we allow that *step* to error out without failing the job.
6562
- name: Update Rails & install gems
66-
if: matrix.rails != '7.1.5.2'
63+
if: matrix.rails != '7.2.2.2'
6764
id: update
6865
run: |
6966
# turn off deployment mode
@@ -75,21 +72,21 @@ jobs:
7572
continue-on-error: ${{ matrix.allowed_failure }}
7673

7774
- name: Prepare DB schema
78-
if: (matrix.rails == '7.1.5.2') || steps.update.outcome == 'success'
75+
if: (matrix.rails == '7.2.2.2') || steps.update.outcome == 'success'
7976
run: |
8077
rm -f spec/dummy/tmp/pids/server.pid
8178
bundle exec rake -f spec/dummy/Rakefile db:schema:load
8279
continue-on-error: ${{ matrix.allowed_failure }}
8380

8481
- name: Wait for Elasticsearch
85-
if: (matrix.rails == '7.1.5.2') || steps.update.outcome == 'success'
82+
if: (matrix.rails == '7.2.2.2') || steps.update.outcome == 'success'
8683
run: |
8784
echo "Waiting for Elasticsearch to be healthy..."
8885
curl -s "http://localhost:9200/_cluster/health?wait_for_status=yellow&timeout=60s" || (echo "Elasticsearch not healthy" && exit 1)
8986
9087
9188
- name: Run RSpec
92-
if: (matrix.rails == '7.1.5.2') || steps.update.outcome == 'success'
89+
if: (matrix.rails == '7.2.2.2') || steps.update.outcome == 'success'
9390
env:
9491
RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }}
9592
run: |

.rubocop.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ AllCops:
33
- 'bin/*'
44
- 'node_modules/**/*'
55
- 'spec/dummy/db/schema.rb'
6+
- 'db/schema.rb'
67
- 'vendor/**/*'
78
NewCops: enable
89
TargetRubyVersion: 3.4
@@ -12,6 +13,21 @@ plugins:
1213
- rubocop-rspec_rails
1314
- rubocop-capybara
1415
- rubocop-factory_bot
16+
17+
# Disable all RSpec cops that affect test quality but not production code
18+
RSpec/ExampleLength:
19+
Enabled: false
20+
RSpec/MultipleExpectations:
21+
Enabled: false
22+
RSpec/MultipleMemoizedHelpers:
23+
Enabled: false
24+
RSpec/ContextWording:
25+
Enabled: false
26+
RSpec/MessageSpies:
27+
Enabled: false
28+
RSpec/LetSetup:
29+
Enabled: false
30+
1531
Style/StringLiterals:
1632
Exclude:
1733
- 'db/migrate/*'

AGENTS.md

Lines changed: 150 additions & 15 deletions
Large diffs are not rendered by default.

Gemfile

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ gem 'fog-aws'
2020
# Database adapter for PostgreSQL
2121
gem 'pg', '>= 0.18', '< 2.0'
2222
# Puma as the app server
23-
gem 'puma', '~> 6.6'
23+
gem 'puma', '~> 7.0'
2424

2525
# Pundit for authorization, custom fork for Better Together
2626
gem 'pundit-resources', '~> 1.1.4', github: 'better-together-org/pundit-resources'
2727

2828
# Core Rails gem
2929
gem 'rack-protection'
30-
gem 'rails', ENV.fetch('RAILS_VERSION', '7.1.5.2')
30+
gem 'rails', ENV.fetch('RAILS_VERSION', '7.2.2.2')
3131

3232
# Redis for ActionCable and background jobs
3333
gem 'redis', '~> 5.4'
@@ -98,13 +98,17 @@ group :test do
9898
# Capybara for integration testing
9999
gem 'capybara', '>= 2.15'
100100
gem 'capybara-screenshot'
101+
# WebMock for stubbing external HTTP requests in specs
102+
gem 'webmock'
101103
# Coveralls for test coverage reporting
102104
gem 'coveralls_reborn', require: false
103105
# Database cleaner for test database cleaning
104106
gem 'database_cleaner'
105107
gem 'database_cleaner-active_record'
106108
# # Easy installation and use of chromedriver to run system tests with Chrome
107109
# gem 'webdrivers'
110+
# Rails controller testing for assigns method
111+
gem 'rails-controller-testing'
108112
# RuboCop RSpec for RSpec-specific code analysis
109113
gem 'rubocop-capybara'
110114
gem 'rubocop-factory_bot'
@@ -113,6 +117,7 @@ group :test do
113117
gem 'rubocop-rspec_rails'
114118
# RSpec for unit testing
115119
gem 'rspec'
120+
gem 'rspec-rebound'
116121
# RSpec Rails integration
117122
gem 'rspec-rails'
118123
# Selenium WebDriver for browser automation

0 commit comments

Comments
 (0)