Compare commits

...

302 Commits

Author SHA1 Message Date
Daniel O'Connor
9c4238e601 Merge branch 'dev' into feature-use-test-queue 2026-04-26 02:03:56 +09:30
Daniel O'Connor
bbe75df0ad Merge pull request #4550 from Growstuff/Style/FrozenStringLiteralComment
Rubocop: Style/FrozenStringLiteralComment
2026-04-24 08:41:23 +09:30
Daniel O'Connor
279cc88162 Update growstuff_markdown_spec.rb 2026-04-24 00:15:18 +09:30
Daniel O'Connor
fe4dd5c185 Merge pull request #4549 from Growstuff/Rails/WhereMissing
Rubocop: Rails/WhereMissing
2026-04-24 00:13:37 +09:30
Daniel O'Connor
75a2ec89e0 Merge branch 'dev' into feature-use-test-queue 2026-04-24 00:02:00 +09:30
Daniel O'Connor
d625eb2dbd Rubocop: Style/FrozenStringLiteralComment 2026-04-23 14:30:02 +00:00
Daniel O'Connor
2019d0e952 Rubocop: Rails/WhereMissing 2026-04-23 14:27:10 +00:00
Daniel O'Connor
e7659a75a4 Merge pull request #4548 from Growstuff/RSpecRails/HaveHttpStatus
Rubocop: RSpecRails/HaveHttpStatus
2026-04-23 23:52:40 +09:30
Daniel O'Connor
4a66bdc9fe Merge pull request #4546 from Growstuff/Rails/RedundantActiveRecordAllMethod
Rubocop: Rails/RedundantActiveRecordAllMethod
2026-04-23 23:46:39 +09:30
Daniel O'Connor
8de6b083f9 Rubocop: RSpecRails/HaveHttpStatus 2026-04-23 14:13:47 +00:00
Daniel O'Connor
accab7f84c Merge pull request #4545 from Growstuff/RSpecRails/InferredSpecType
Rubocop: RSpecRails/InferredSpecType
2026-04-23 23:29:17 +09:30
Daniel O'Connor
3f6dd59dfa Rubocop: Rails/RedundantActiveRecordAllMethod 2026-04-23 13:48:17 +00:00
Daniel O'Connor
0a71b44dea Merge pull request #4542 from Growstuff/RSpec/ContextMethod
Rubocop: RSpec/ContextMethod
2026-04-23 23:10:33 +09:30
Daniel O'Connor
ba75afb3f5 Rubocop: RSpecRails/InferredSpecType 2026-04-23 13:39:46 +00:00
Daniel O'Connor
aa1c9ceb05 Merge pull request #4543 from Growstuff/RSpec/ExpectChange
Rubocop: RSpec/ExpectChange
2026-04-23 23:02:03 +09:30
Daniel O'Connor
ea5f93f929 Merge pull request #4541 from Growstuff/Lint/EmptyBlock
Rubocop: Lint/EmptyBlock
2026-04-23 22:53:40 +09:30
Daniel O'Connor
6f59635ca7 Rubocop: RSpec/ExpectChange 2026-04-23 13:23:14 +00:00
Daniel O'Connor
6736ae3142 Rubocop: RSpec/ContextMethod 2026-04-23 13:20:47 +00:00
Daniel O'Connor
8d8ee7069c Merge pull request #4540 from Growstuff/Bundler/OrderedGems
Rubocop: Bundler/OrderedGems
2026-04-23 22:46:10 +09:30
Daniel O'Connor
5d112e9134 Rubocop: Capybara/RSpec/HaveSelector (#4539)
* Rubocop: Capybara/RSpec/HaveSelector

* Rubocop: Capybara/RSpec/HaveSelector
2026-04-23 22:45:58 +09:30
Daniel O'Connor
6ba4f39b4a Rubocop: Lint/EmptyBlock 2026-04-23 13:14:39 +00:00
Daniel O'Connor
a38d99ed4a Rubocop: Bundler/OrderedGems 2026-04-23 13:07:38 +00:00
Daniel O'Connor
f1acb35520 Merge pull request #4537 from Growstuff/FactoryBot/SyntaxMethods
Rubocop: FactoryBot/SyntaxMethods
2026-04-23 22:29:24 +09:30
Daniel O'Connor
267560aff1 Merge pull request #4494 from Growstuff/dependabot/bundler/puma-8.0.0
Bump puma from 7.2.0 to 8.0.0
2026-04-23 22:26:31 +09:30
dependabot[bot]
e862a5c5b8 Bump puma from 7.2.0 to 8.0.0
Bumps [puma](https://github.com/puma/puma) from 7.2.0 to 8.0.0.
- [Release notes](https://github.com/puma/puma/releases)
- [Changelog](https://github.com/puma/puma/blob/main/History.md)
- [Commits](https://github.com/puma/puma/compare/v7.2.0...v8.0.0)

---
updated-dependencies:
- dependency-name: puma
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-23 12:47:21 +00:00
Daniel O'Connor
c0edfb9eed Merge pull request #4536 from Growstuff/Capybara/NegationMatcher
Rubocop: Capybara/NegationMatcher
2026-04-23 22:15:53 +09:30
Daniel O'Connor
a8d0c6e32e Rubocop: Layout/TrailingWhitespace (#4535) 2026-04-23 22:15:42 +09:30
Daniel O'Connor
f381ba29cc Merge pull request #4534 from Growstuff/Layout/HeredocIndentation
Rubocop: Layout/HeredocIndentation
2026-04-23 22:07:41 +09:30
Daniel O'Connor
c1f171b09e Rubocop: Capybara/NegationMatcher 2026-04-23 12:30:06 +00:00
Daniel O'Connor
b9dcd95c00 Rubocop: Layout/TrailingWhitespace 2026-04-23 12:27:06 +00:00
Daniel O'Connor
400db178e4 Merge pull request #4533 from Growstuff/Rails/RedirectBackOrTo
Rubocop: Rails/RedirectBackOrTo
2026-04-23 21:54:19 +09:30
Daniel O'Connor
aecde837cc Merge pull request #4459 from Growstuff/dependabot/github_actions/actions/upload-artifact-7
Bump actions/upload-artifact from 5 to 7
2026-04-23 21:52:13 +09:30
Daniel O'Connor
316351fb1c Merge pull request #4532 from Growstuff/Layout/IndentationWidth
Rubocop: Layout/IndentationWidth
2026-04-23 21:51:15 +09:30
Daniel O'Connor
34ce4e216f Merge pull request #4531 from Growstuff/EmptyLinesAroundClassBody
Rubocop: Layout/EmptyLinesAroundClassBody
2026-04-23 21:49:49 +09:30
Daniel O'Connor
7b8c7f4ff5 Rubocop: Rails/RedirectBackOrTo 2026-04-23 12:15:30 +00:00
Daniel O'Connor
6fe9f7f5d3 Merge pull request #4530 from Growstuff/drop-jshint
Drop jshint
2026-04-23 21:40:46 +09:30
Daniel O'Connor
ae5c125a96 Rubocop: Layout/IndentationWidth 2026-04-23 12:10:09 +00:00
Daniel O'Connor
8a70156b61 Rubocop: Layout/EmptyLinesAroundClassBody 2026-04-23 12:07:56 +00:00
dependabot[bot]
f1fde20500 Bump actions/upload-artifact from 5 to 7
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-23 12:05:35 +00:00
Daniel O'Connor
d32d28c5de Merge branch 'dev' of https://github.com/Growstuff/growstuff into drop-jshint 2026-04-23 11:59:08 +00:00
Daniel O'Connor
ed884c5ac6 Merge pull request #4527 from Growstuff/eslint-10
ESLint 10
2026-04-23 21:26:35 +09:30
Daniel O'Connor
84d61a7596 Merge pull request #4529 from Growstuff/eslint-9
ESLint 9
2026-04-23 21:26:22 +09:30
Daniel O'Connor
181431ce94 Merge pull request #4528 from Growstuff/eslint-8
ESLint 8
2026-04-23 21:26:14 +09:30
Daniel O'Connor
da73548695 Drop jshint 2026-04-23 11:48:07 +00:00
Daniel O'Connor
3e95581c06 Merge pull request #4526 from Growstuff/eslint
Eslint 7
2026-04-23 21:14:09 +09:30
Daniel O'Connor
37ce3d28aa ESLint 10 2026-04-23 11:42:44 +00:00
Daniel O'Connor
b7bf5d932a ESLint 9 2026-04-23 11:41:27 +00:00
Daniel O'Connor
247106d10f ESLint 8 2026-04-23 11:40:03 +00:00
Daniel O'Connor
39534eab02 eslint 7 2026-04-23 11:36:16 +00:00
Daniel O'Connor
076ba9844a Merge pull request #4525 from Growstuff/eslint
Upgrade eslint
2026-04-23 21:00:29 +09:30
Daniel O'Connor
727c754499 Upgrade eslint 2026-04-23 11:23:16 +00:00
Daniel O'Connor
ce17ec1620 Merge pull request #4522 from Growstuff/node-24
Node 24
2026-04-23 20:13:50 +09:30
Daniel O'Connor
9500de3815 Merge pull request #4521 from Growstuff/node-22
Node 22
2026-04-23 20:10:20 +09:30
Daniel O'Connor
d89e284c3a Merge pull request #4516 from Growstuff/upgrade-eslint
Bump eslint
2026-04-23 20:09:46 +09:30
Daniel O'Connor
4e7a719787 Merge pull request #4520 from Growstuff/node-20
Node 20
2026-04-23 20:04:37 +09:30
Daniel O'Connor
40e402d06a Merge pull request #4519 from Growstuff/node-18
Node 18
2026-04-23 20:04:25 +09:30
Daniel O'Connor
5cada51fad Node 24 2026-04-23 10:31:28 +00:00
Daniel O'Connor
b1c1955ed3 Merge branch 'dev' into upgrade-eslint 2026-04-23 19:59:27 +09:30
Daniel O'Connor
4fbdd2a92b Merge pull request #4518 from Growstuff/node-16
Node 16
2026-04-23 19:58:16 +09:30
Daniel O'Connor
3379526be3 Node 22 2026-04-23 10:27:01 +00:00
Daniel O'Connor
6d2a5884cb Node 20 2026-04-23 10:24:31 +00:00
Daniel O'Connor
2971bd61dd Node 18 2026-04-23 10:23:06 +00:00
Daniel O'Connor
3553165ebe Node 16 2026-04-23 10:20:50 +00:00
Daniel O'Connor
410ee0050f Merge branch 'dev' into upgrade-eslint 2026-04-23 19:47:15 +09:30
Daniel O'Connor
6ba21bd280 Merge pull request #4517 from Growstuff/node-14
Node 14
2026-04-23 19:46:54 +09:30
Daniel O'Connor
96d290d3fe Node 14 2026-04-23 10:10:16 +00:00
Daniel O'Connor
a24548defb Bump eslint 2026-04-23 09:59:45 +00:00
Daniel O'Connor
5493ecfc5e Merge pull request #4515 from Growstuff/lodash
Bump jshint
2026-04-23 19:28:01 +09:30
Daniel O'Connor
b21111e4ce Merge pull request #4514 from Growstuff/bump-addressable
Bump addressable
2026-04-23 19:25:27 +09:30
Daniel O'Connor
702ec2c47c Merge pull request #4513 from Growstuff/bump-rack
Bump rack
2026-04-23 19:24:17 +09:30
Daniel O'Connor
742bc12c89 Upgrade jshint 2026-04-23 09:50:54 +00:00
Daniel O'Connor
27b552aa8e Bump addressable 2026-04-23 09:42:43 +00:00
Daniel O'Connor
5cb6d8afba Bump rack 2026-04-23 09:41:56 +00:00
Daniel O'Connor
0729e07e55 Merge pull request #4511 from Growstuff/dependabot/bundler/bullet-8.1.1
Bump bullet from 8.1.0 to 8.1.1
2026-04-23 19:06:41 +09:30
Daniel O'Connor
28997f6053 Merge pull request #4512 from Growstuff/dependabot/bundler/aws-sdk-s3-1.220.0
Bump aws-sdk-s3 from 1.219.0 to 1.220.0
2026-04-23 19:06:31 +09:30
dependabot[bot]
732604d507 Bump aws-sdk-s3 from 1.219.0 to 1.220.0
Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.219.0 to 1.220.0.
- [Release notes](https://github.com/aws/aws-sdk-ruby/releases)
- [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-ruby/commits)

---
updated-dependencies:
- dependency-name: aws-sdk-s3
  dependency-version: 1.220.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-23 07:07:01 +00:00
dependabot[bot]
e461fdd27e Bump bullet from 8.1.0 to 8.1.1
Bumps [bullet](https://github.com/flyerhzm/bullet) from 8.1.0 to 8.1.1.
- [Changelog](https://github.com/flyerhzm/bullet/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyerhzm/bullet/compare/8.1.0...8.1.1)

---
updated-dependencies:
- dependency-name: bullet
  dependency-version: 8.1.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-23 07:03:51 +00:00
Daniel O'Connor
3b40c28288 Merge pull request #4510 from Growstuff/dependabot/bundler/oj-3.17.0
Bump oj from 3.16.17 to 3.17.0
2026-04-20 17:03:57 +09:30
dependabot[bot]
a50b9dcb2a Bump oj from 3.16.17 to 3.17.0
Bumps [oj](https://github.com/ohler55/oj) from 3.16.17 to 3.17.0.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.16.17...v3.17.0)

---
updated-dependencies:
- dependency-name: oj
  dependency-version: 3.17.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-20 07:18:18 +00:00
Daniel O'Connor
ea0a5bfad4 Merge pull request #4508 from Growstuff/dependabot/bundler/scout_apm-6.2.0
Bump scout_apm from 6.1.1 to 6.2.0
2026-04-17 22:57:03 +09:30
dependabot[bot]
77e3db1924 Bump scout_apm from 6.1.1 to 6.2.0
Bumps [scout_apm](https://github.com/scoutapp/scout_apm_ruby) from 6.1.1 to 6.2.0.
- [Changelog](https://github.com/scoutapp/scout_apm_ruby/blob/master/CHANGELOG.markdown)
- [Commits](https://github.com/scoutapp/scout_apm_ruby/compare/v6.1.1...v6.2.0)

---
updated-dependencies:
- dependency-name: scout_apm
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-17 07:37:59 +00:00
Daniel O'Connor
34290be6be Merge pull request #4507 from Growstuff/dependabot/bundler/faker-3.8.0
Bump faker from 3.7.1 to 3.8.0
2026-04-17 17:06:30 +09:30
Daniel O'Connor
02e0473faa Merge pull request #4509 from Growstuff/dependabot/bundler/axe-core-rspec-4.11.2
Bump axe-core-rspec from 4.11.1 to 4.11.2
2026-04-17 17:06:14 +09:30
dependabot[bot]
95f7cefe0f Bump axe-core-rspec from 4.11.1 to 4.11.2
Bumps [axe-core-rspec](https://github.com/dequelabs/axe-core-gems) from 4.11.1 to 4.11.2.
- [Release notes](https://github.com/dequelabs/axe-core-gems/releases)
- [Changelog](https://github.com/dequelabs/axe-core-gems/blob/v4.11.2/CHANGELOG.md)
- [Commits](https://github.com/dequelabs/axe-core-gems/compare/v4.11.1...v4.11.2)

---
updated-dependencies:
- dependency-name: axe-core-rspec
  dependency-version: 4.11.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-17 07:09:39 +00:00
dependabot[bot]
bcf6690a0d Bump faker from 3.7.1 to 3.8.0
Bumps [faker](https://github.com/faker-ruby/faker) from 3.7.1 to 3.8.0.
- [Release notes](https://github.com/faker-ruby/faker/releases)
- [Changelog](https://github.com/faker-ruby/faker/blob/main/CHANGELOG.md)
- [Commits](https://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.0)

---
updated-dependencies:
- dependency-name: faker
  dependency-version: 3.8.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-17 07:05:21 +00:00
Daniel O'Connor
734aa4795a Merge pull request #4505 from Growstuff/dependabot/bundler/rake-13.4.2
Bump rake from 13.4.1 to 13.4.2
2026-04-16 18:56:07 +09:30
dependabot[bot]
3729016770 Bump rake from 13.4.1 to 13.4.2
Bumps [rake](https://github.com/ruby/rake) from 13.4.1 to 13.4.2.
- [Release notes](https://github.com/ruby/rake/releases)
- [Changelog](https://github.com/ruby/rake/blob/master/History.rdoc)
- [Commits](https://github.com/ruby/rake/compare/v13.4.1...v13.4.2)

---
updated-dependencies:
- dependency-name: rake
  dependency-version: 13.4.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-16 07:08:45 +00:00
Daniel O'Connor
a37589cdc6 Merge pull request #4504 from Growstuff/dependabot/bundler/faker-3.7.1
Bump faker from 3.6.1 to 3.7.1
2026-04-15 21:16:41 +09:30
dependabot[bot]
e86e834d94 Bump faker from 3.6.1 to 3.7.1
Bumps [faker](https://github.com/faker-ruby/faker) from 3.6.1 to 3.7.1.
- [Release notes](https://github.com/faker-ruby/faker/releases)
- [Changelog](https://github.com/faker-ruby/faker/blob/main/CHANGELOG.md)
- [Commits](https://github.com/faker-ruby/faker/compare/v3.6.1...v3.7.1)

---
updated-dependencies:
- dependency-name: faker
  dependency-version: 3.7.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-15 09:06:05 +00:00
Daniel O'Connor
c73c435d01 Merge pull request #4500 from Growstuff/dependabot/bundler/timecop-0.9.11
Bump timecop from 0.9.10 to 0.9.11
2026-04-15 18:35:01 +09:30
Daniel O'Connor
0375299ec8 Merge pull request #4499 from Growstuff/dependabot/bundler/oj-3.16.17
Bump oj from 3.16.16 to 3.16.17
2026-04-15 18:34:49 +09:30
Daniel O'Connor
27fe8d58dd Merge pull request #4501 from Growstuff/dependabot/bundler/xmlrpc-0.3.4
Bump xmlrpc from 0.3.3 to 0.3.4
2026-04-15 18:34:36 +09:30
Daniel O'Connor
171792b6fd Merge pull request #4503 from Growstuff/dependabot/bundler/rake-13.4.1
Bump rake from 13.3.1 to 13.4.1
2026-04-15 18:34:23 +09:30
dependabot[bot]
83eae50449 Bump rake from 13.3.1 to 13.4.1
Bumps [rake](https://github.com/ruby/rake) from 13.3.1 to 13.4.1.
- [Release notes](https://github.com/ruby/rake/releases)
- [Changelog](https://github.com/ruby/rake/blob/master/History.rdoc)
- [Commits](https://github.com/ruby/rake/compare/v13.3.1...v13.4.1)

---
updated-dependencies:
- dependency-name: rake
  dependency-version: 13.4.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-15 07:03:18 +00:00
dependabot[bot]
bf65e77700 Bump xmlrpc from 0.3.3 to 0.3.4
Bumps [xmlrpc](https://github.com/ruby/xmlrpc) from 0.3.3 to 0.3.4.
- [Release notes](https://github.com/ruby/xmlrpc/releases)
- [Changelog](https://github.com/ruby/xmlrpc/blob/master/NEWS.md)
- [Commits](https://github.com/ruby/xmlrpc/compare/v0.3.3...v0.3.4)

---
updated-dependencies:
- dependency-name: xmlrpc
  dependency-version: 0.3.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 07:09:10 +00:00
dependabot[bot]
fd3e81a059 Bump timecop from 0.9.10 to 0.9.11
Bumps [timecop](https://github.com/travisjeffery/timecop) from 0.9.10 to 0.9.11.
- [Changelog](https://github.com/travisjeffery/timecop/blob/master/History.md)
- [Commits](https://github.com/travisjeffery/timecop/compare/v0.9.10...v0.9.11)

---
updated-dependencies:
- dependency-name: timecop
  dependency-version: 0.9.11
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 07:08:25 +00:00
dependabot[bot]
5ffbcd4e63 Bump oj from 3.16.16 to 3.16.17
Bumps [oj](https://github.com/ohler55/oj) from 3.16.16 to 3.16.17.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.16.16...v3.16.17)

---
updated-dependencies:
- dependency-name: oj
  dependency-version: 3.16.17
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 07:05:35 +00:00
Daniel O'Connor
5d3118f833 Update nutritional data link to new URL 2026-04-11 15:12:18 +09:30
Daniel O'Connor
2073b443fa Merge pull request #4498 from Growstuff/CloCkWeRX-patch-2
Add conditional rendering for harvest thumbnail image
2026-04-11 14:57:57 +09:30
Daniel O'Connor
55934bcc4a Add conditional rendering for harvest thumbnail image 2026-04-11 14:57:36 +09:30
Daniel O'Connor
ba25755fdc Merge pull request #4495 from Growstuff/dependabot/bundler/rubocop-1.86.1
Bump rubocop from 1.86.0 to 1.86.1
2026-04-10 19:47:09 +09:30
dependabot[bot]
7d29724fd8 Bump rubocop from 1.86.0 to 1.86.1
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.86.0 to 1.86.1.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.86.0...v1.86.1)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-version: 1.86.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-10 10:16:56 +00:00
Daniel O'Connor
d9c387d4f9 Merge pull request #4496 from Growstuff/dependabot/bundler/selenium-webdriver-4.43.0
Bump selenium-webdriver from 4.41.0 to 4.43.0
2026-04-10 19:46:39 +09:30
Daniel O'Connor
73487456f3 Merge pull request #4497 from Growstuff/dependabot/bundler/recaptcha-5.21.2
Bump recaptcha from 5.21.1 to 5.21.2
2026-04-10 19:45:19 +09:30
dependabot[bot]
342f7edfb1 Bump recaptcha from 5.21.1 to 5.21.2
Bumps [recaptcha](https://github.com/ambethia/recaptcha) from 5.21.1 to 5.21.2.
- [Changelog](https://github.com/ambethia/recaptcha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ambethia/recaptcha/compare/v5.21.1...v5.21.2)

---
updated-dependencies:
- dependency-name: recaptcha
  dependency-version: 5.21.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-10 07:07:18 +00:00
dependabot[bot]
0a1e8d8036 Bump selenium-webdriver from 4.41.0 to 4.43.0
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.41.0 to 4.43.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.41.0...selenium-4.43.0)

---
updated-dependencies:
- dependency-name: selenium-webdriver
  dependency-version: 4.43.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-10 07:05:41 +00:00
Daniel O'Connor
bf588a31ae Merge pull request #4492 from Growstuff/dependabot/bundler/haml_lint-0.73.0
Bump haml_lint from 0.72.0 to 0.73.0
2026-04-08 17:22:45 +09:30
Daniel O'Connor
2761886c7c Merge pull request #4493 from Growstuff/dependabot/bundler/aws-sdk-s3-1.219.0
Bump aws-sdk-s3 from 1.218.0 to 1.219.0
2026-04-08 17:22:26 +09:30
dependabot[bot]
a71e5fa61f Bump aws-sdk-s3 from 1.218.0 to 1.219.0
Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.218.0 to 1.219.0.
- [Release notes](https://github.com/aws/aws-sdk-ruby/releases)
- [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-ruby/commits)

---
updated-dependencies:
- dependency-name: aws-sdk-s3
  dependency-version: 1.219.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-08 07:05:00 +00:00
dependabot[bot]
1eddd89bee Bump haml_lint from 0.72.0 to 0.73.0
Bumps [haml_lint](https://github.com/sds/haml-lint) from 0.72.0 to 0.73.0.
- [Release notes](https://github.com/sds/haml-lint/releases)
- [Changelog](https://github.com/sds/haml-lint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sds/haml-lint/compare/v0.72.0...v0.73.0)

---
updated-dependencies:
- dependency-name: haml_lint
  dependency-version: 0.73.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-07 07:06:38 +00:00
Daniel O'Connor
6511c2682b Merge pull request #4491 from Growstuff/dependabot/bundler/active_median-1.0.0
Bump active_median from 0.6.0 to 1.0.0
2026-04-06 19:17:21 +09:30
dependabot[bot]
78b395704f Bump active_median from 0.6.0 to 1.0.0
Bumps [active_median](https://github.com/ankane/active_median) from 0.6.0 to 1.0.0.
- [Changelog](https://github.com/ankane/active_median/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ankane/active_median/compare/v0.6.0...v1.0.0)

---
updated-dependencies:
- dependency-name: active_median
  dependency-version: 1.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-06 07:04:49 +00:00
Daniel O'Connor
9fa9d14616 Merge pull request #4490 from Growstuff/dependabot/bundler/aws-sdk-s3-1.218.0
Bump aws-sdk-s3 from 1.217.0 to 1.218.0
2026-04-04 09:00:24 +10:30
dependabot[bot]
8e42e63359 Bump aws-sdk-s3 from 1.217.0 to 1.218.0
Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.217.0 to 1.218.0.
- [Release notes](https://github.com/aws/aws-sdk-ruby/releases)
- [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-ruby/commits)

---
updated-dependencies:
- dependency-name: aws-sdk-s3
  dependency-version: 1.218.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-01 07:26:50 +00:00
Daniel O'Connor
5004ace754 Merge pull request #4420 from Growstuff/dependabot/bundler/byebug-13.0.0
Bump byebug from 12.0.0 to 13.0.0
2026-03-26 18:10:50 +09:30
Daniel O'Connor
b6a2af6e3d Merge pull request #4404 from Growstuff/dependabot/bundler/vcr-6.4.0
Bump vcr from 6.3.1 to 6.4.0
2026-03-26 18:10:39 +09:30
dependabot[bot]
c192814d09 Bump vcr from 6.3.1 to 6.4.0
Bumps [vcr](https://github.com/vcr/vcr) from 6.3.1 to 6.4.0.
- [Release notes](https://github.com/vcr/vcr/releases)
- [Changelog](https://github.com/vcr/vcr/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vcr/vcr/compare/v6.3.1...v6.4.0)

---
updated-dependencies:
- dependency-name: vcr
  dependency-version: 6.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-26 08:23:21 +00:00
Daniel O'Connor
9ba7d8ba86 Merge pull request #4424 from Growstuff/dependabot/bundler/puma-7.2.0
Bump puma from 7.1.0 to 7.2.0
2026-03-26 17:52:22 +09:30
dependabot[bot]
19fdfc3682 Bump byebug from 12.0.0 to 13.0.0
Bumps [byebug](https://github.com/deivid-rodriguez/byebug) from 12.0.0 to 13.0.0.
- [Release notes](https://github.com/deivid-rodriguez/byebug/releases)
- [Changelog](https://github.com/deivid-rodriguez/byebug/blob/main/CHANGELOG.md)
- [Commits](https://github.com/deivid-rodriguez/byebug/compare/v12.0.0...v13.0.0)

---
updated-dependencies:
- dependency-name: byebug
  dependency-version: 13.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-26 08:14:25 +00:00
dependabot[bot]
9a15c28782 Bump puma from 7.1.0 to 7.2.0
Bumps [puma](https://github.com/puma/puma) from 7.1.0 to 7.2.0.
- [Release notes](https://github.com/puma/puma/releases)
- [Changelog](https://github.com/puma/puma/blob/main/History.md)
- [Commits](https://github.com/puma/puma/compare/v7.1.0...v7.2.0)

---
updated-dependencies:
- dependency-name: puma
  dependency-version: 7.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-26 08:13:15 +00:00
Daniel O'Connor
aff780a19a Merge pull request #4482 from Growstuff/dependabot/bundler/terser-1.2.7
Bump terser from 1.2.6 to 1.2.7
2026-03-26 17:39:59 +09:30
Daniel O'Connor
2ade7c9226 Merge pull request #4466 from Growstuff/dependabot/bundler/faker-3.6.1
Bump faker from 3.6.0 to 3.6.1
2026-03-26 17:39:11 +09:30
Daniel O'Connor
0431d11c51 Merge pull request #4474 from Growstuff/dependabot/bundler/loofah-2.25.1
Bump loofah from 2.25.0 to 2.25.1
2026-03-26 17:39:05 +09:30
Daniel O'Connor
781c63edd7 Merge pull request #4478 from Growstuff/dependabot/bundler/icalendar-2.12.2
Bump icalendar from 2.12.1 to 2.12.2
2026-03-26 17:38:57 +09:30
Daniel O'Connor
a0590b972d Merge pull request #4484 from Growstuff/dependabot/npm_and_yarn/picomatch-2.3.2
Bump picomatch from 2.3.1 to 2.3.2
2026-03-26 17:38:47 +09:30
dependabot[bot]
06e839a527 Bump picomatch from 2.3.1 to 2.3.2
Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

---
updated-dependencies:
- dependency-name: picomatch
  dependency-version: 2.3.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-26 07:58:51 +00:00
dependabot[bot]
6de2ad7fe9 Bump faker from 3.6.0 to 3.6.1
Bumps [faker](https://github.com/faker-ruby/faker) from 3.6.0 to 3.6.1.
- [Release notes](https://github.com/faker-ruby/faker/releases)
- [Changelog](https://github.com/faker-ruby/faker/blob/main/CHANGELOG.md)
- [Commits](https://github.com/faker-ruby/faker/compare/v3.6.0...v3.6.1)

---
updated-dependencies:
- dependency-name: faker
  dependency-version: 3.6.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-26 07:50:38 +00:00
dependabot[bot]
f768dc6c3c Bump loofah from 2.25.0 to 2.25.1
Bumps [loofah](https://github.com/flavorjones/loofah) from 2.25.0 to 2.25.1.
- [Release notes](https://github.com/flavorjones/loofah/releases)
- [Changelog](https://github.com/flavorjones/loofah/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flavorjones/loofah/compare/v2.25.0...v2.25.1)

---
updated-dependencies:
- dependency-name: loofah
  dependency-version: 2.25.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-26 07:50:33 +00:00
dependabot[bot]
87a433be8e Bump icalendar from 2.12.1 to 2.12.2
Bumps [icalendar](https://github.com/icalendar/icalendar) from 2.12.1 to 2.12.2.
- [Changelog](https://github.com/icalendar/icalendar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/icalendar/icalendar/compare/v2.12.1...v2.12.2)

---
updated-dependencies:
- dependency-name: icalendar
  dependency-version: 2.12.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-26 07:50:32 +00:00
dependabot[bot]
8bfb013cfb Bump terser from 1.2.6 to 1.2.7
Bumps [terser](https://github.com/ahorek/terser-ruby) from 1.2.6 to 1.2.7.
- [Release notes](https://github.com/ahorek/terser-ruby/releases)
- [Changelog](https://github.com/ahorek/terser-ruby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ahorek/terser-ruby/compare/1.2.6...1.2.7)

---
updated-dependencies:
- dependency-name: terser
  dependency-version: 1.2.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-26 07:50:25 +00:00
Daniel O'Connor
79e5ddd8dd Merge pull request #4473 from Growstuff/dependabot/bundler/devise-5.0.3
Bump devise from 5.0.2 to 5.0.3
2026-03-26 17:19:10 +09:30
Daniel O'Connor
6ec37b1d2b Merge pull request #4472 from Growstuff/dependabot/bundler/oj-3.16.16
Bump oj from 3.16.15 to 3.16.16
2026-03-26 17:18:58 +09:30
Daniel O'Connor
56753f2869 Merge pull request #4486 from Growstuff/refactor-signup-spec-10681697950343780211
Refactor existing username signup spec
2026-03-26 17:18:35 +09:30
google-labs-jules[bot]
477812f06b Refactor signup feature spec to use direct database setup
- Rewrote the 'sign up for new account with existing username' test in
  spec/features/signup_spec.rb.
- Replaced UI-driven setup of an existing user with FactoryBot's `create`.
- Replaced UI navigation with a direct call to `new_member_registration_path`.
- Added an explicit assertion for the 'has already been taken' error
  message.
- Ensured a unique email is used for the second signup attempt to isolate
  the username validation check.

Co-authored-by: CloCkWeRX <365751+CloCkWeRX@users.noreply.github.com>
2026-03-26 06:34:32 +00:00
dependabot[bot]
e972cd4d56 Bump devise from 5.0.2 to 5.0.3
Bumps [devise](https://github.com/heartcombo/devise) from 5.0.2 to 5.0.3.
- [Release notes](https://github.com/heartcombo/devise/releases)
- [Changelog](https://github.com/heartcombo/devise/blob/main/CHANGELOG.md)
- [Commits](https://github.com/heartcombo/devise/compare/v5.0.2...v5.0.3)

---
updated-dependencies:
- dependency-name: devise
  dependency-version: 5.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-26 06:18:55 +00:00
dependabot[bot]
3039ae0dc2 Bump oj from 3.16.15 to 3.16.16
Bumps [oj](https://github.com/ohler55/oj) from 3.16.15 to 3.16.16.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.16.15...v3.16.16)

---
updated-dependencies:
- dependency-name: oj
  dependency-version: 3.16.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-26 06:18:55 +00:00
Daniel O'Connor
bd1da7cad0 Merge pull request #4475 from Growstuff/dependabot/bundler/aws-sdk-s3-1.217.0
Bump aws-sdk-s3 from 1.213.0 to 1.217.0
2026-03-26 15:47:23 +09:30
dependabot[bot]
38c0dd3a63 Bump aws-sdk-s3 from 1.213.0 to 1.217.0
Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.213.0 to 1.217.0.
- [Release notes](https://github.com/aws/aws-sdk-ruby/releases)
- [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-ruby/commits)

---
updated-dependencies:
- dependency-name: aws-sdk-s3
  dependency-version: 1.217.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-26 05:57:54 +00:00
Daniel O'Connor
5e24ba113f Merge pull request #4485 from Growstuff/flaky-test-admin-forums
Decrease failures by checking for the save message first in admin tests
2026-03-26 15:25:51 +09:30
Daniel O'Connor
f94f5638c8 Decrease failures by checking for the save message first 2026-03-26 05:47:00 +00:00
dependabot[bot]
90c177408d Bump rubocop from 1.85.0 to 1.86.0
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.85.0 to 1.86.0.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.85.0...v1.86.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-version: 1.86.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-24 20:29:42 +13:00
Daniel O'Connor
baca934a70 Merge pull request #4481 from Growstuff/dependabot/bundler/activesupport-7.2.3.1
Bump activesupport from 7.2.3 to 7.2.3.1
2026-03-24 11:53:12 +09:30
dependabot[bot]
397517547e Bump activesupport from 7.2.3 to 7.2.3.1
Bumps [activesupport](https://github.com/rails/rails) from 7.2.3 to 7.2.3.1.
- [Release notes](https://github.com/rails/rails/releases)
- [Changelog](https://github.com/rails/rails/blob/v8.1.2.1/activesupport/CHANGELOG.md)
- [Commits](https://github.com/rails/rails/compare/v7.2.3...v7.2.3.1)

---
updated-dependencies:
- dependency-name: activesupport
  dependency-version: 7.2.3.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-24 02:06:17 +00:00
Daniel O'Connor
07f6bc8b76 Merge pull request #4476 from Growstuff/dependabot/bundler/json-2.19.2
Bump json from 2.19.0 to 2.19.2
2026-03-20 18:37:52 +09:30
dependabot[bot]
8eaca222a0 Bump json from 2.19.0 to 2.19.2
Bumps [json](https://github.com/ruby/json) from 2.19.0 to 2.19.2.
- [Release notes](https://github.com/ruby/json/releases)
- [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md)
- [Commits](https://github.com/ruby/json/compare/v2.19.0...v2.19.2)

---
updated-dependencies:
- dependency-name: json
  dependency-version: 2.19.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-19 12:57:30 +00:00
Daniel O'Connor
f0afcadc51 Merge pull request #4471 from Growstuff/dependabot/bundler/rspec-rails-8.0.4
Bump rspec-rails from 8.0.3 to 8.0.4
2026-03-13 18:52:54 +10:30
dependabot[bot]
adbf3cc609 Bump rspec-rails from 8.0.3 to 8.0.4
Bumps [rspec-rails](https://github.com/rspec/rspec-rails) from 8.0.3 to 8.0.4.
- [Changelog](https://github.com/rspec/rspec-rails/blob/main/Changelog.md)
- [Commits](https://github.com/rspec/rspec-rails/compare/v8.0.3...v8.0.4)

---
updated-dependencies:
- dependency-name: rspec-rails
  dependency-version: 8.0.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-13 07:04:28 +00:00
Daniel O'Connor
152e843ca4 Merge pull request #4465 from Growstuff/dependabot/bundler/haml_lint-0.72.0
Bump haml_lint from 0.71.0 to 0.72.0
2026-03-07 14:07:37 +10:30
dependabot[bot]
21f4349b08 Bump haml_lint from 0.71.0 to 0.72.0
Bumps [haml_lint](https://github.com/sds/haml-lint) from 0.71.0 to 0.72.0.
- [Release notes](https://github.com/sds/haml-lint/releases)
- [Changelog](https://github.com/sds/haml-lint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sds/haml-lint/compare/v0.71.0...v0.72.0)

---
updated-dependencies:
- dependency-name: haml_lint
  dependency-version: 0.72.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-07 03:07:58 +00:00
Daniel O'Connor
7d8ed6f681 Merge pull request #4463 from Growstuff/remove-travis
Remove travis
2026-03-07 13:36:35 +10:30
Daniel O'Connor
857fceda55 Merge pull request #4452 from Growstuff/dependabot/bundler/selenium-webdriver-4.41.0
Bump selenium-webdriver from 4.40.0 to 4.41.0
2026-03-01 16:49:47 +10:30
dependabot[bot]
2583470966 Bump selenium-webdriver from 4.40.0 to 4.41.0
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.40.0 to 4.41.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.40.0...selenium-4.41.0)

---
updated-dependencies:
- dependency-name: selenium-webdriver
  dependency-version: 4.41.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-01 05:57:20 +00:00
Daniel O'Connor
14f8f36d4a Merge pull request #4393 from Growstuff/dependabot/github_actions/actions/cache-5
Bump actions/cache from 4 to 5
2026-03-01 16:21:47 +10:30
Daniel O'Connor
65adc7a2f9 Merge pull request #4419 from Growstuff/dependabot/bundler/haml-7.2.0
Bump haml from 7.1.0 to 7.2.0
2026-03-01 16:19:45 +10:30
Daniel O'Connor
1e9fe31e2e Merge pull request #4457 from Growstuff/dependabot/bundler/haml_lint-0.71.0
Bump haml_lint from 0.68.0 to 0.71.0
2026-03-01 16:18:46 +10:30
Daniel O'Connor
3393d6710b Merge pull request #4454 from Growstuff/dependabot/bundler/scout_apm-6.1.1
Bump scout_apm from 6.0.2 to 6.1.1
2026-03-01 16:17:39 +10:30
Daniel O'Connor
5767b62b0f Merge pull request #4425 from Growstuff/dependabot/npm_and_yarn/lodash-4.17.23
Bump lodash from 4.17.21 to 4.17.23
2026-03-01 16:16:27 +10:30
dependabot[bot]
5e0d2b153a Bump scout_apm from 6.0.2 to 6.1.1
Bumps [scout_apm](https://github.com/scoutapp/scout_apm_ruby) from 6.0.2 to 6.1.1.
- [Changelog](https://github.com/scoutapp/scout_apm_ruby/blob/master/CHANGELOG.markdown)
- [Commits](https://github.com/scoutapp/scout_apm_ruby/compare/v6.0.2...v6.1.1)

---
updated-dependencies:
- dependency-name: scout_apm
  dependency-version: 6.1.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-01 05:46:24 +00:00
Daniel O'Connor
2c864f2f59 Merge pull request #4426 from Growstuff/dependabot/bundler/faker-3.6.0
Bump faker from 3.5.3 to 3.6.0
2026-03-01 16:15:55 +10:30
Daniel O'Connor
21a23af522 Merge pull request #4432 from Growstuff/dependabot/bundler/aws-sdk-s3-1.213.0
Bump aws-sdk-s3 from 1.212.0 to 1.213.0
2026-03-01 16:15:26 +10:30
Daniel O'Connor
9a4396c7c3 Merge pull request #4455 from Growstuff/dependabot/bundler/dalli-5.0.2
Bump dalli from 5.0.1 to 5.0.2
2026-03-01 16:15:08 +10:30
Daniel O'Connor
43b8ac1da8 Bump rubocop from 1.82.1 to 1.85.0 (#4458)
* Bump rubocop from 1.82.1 to 1.85.0

Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.82.1 to 1.85.0.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.82.1...v1.85.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-version: 1.85.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump rubocop from 1.82.1 to 1.85.0

Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.82.1 to 1.85.0.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.82.1...v1.85.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-version: 1.85.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Regenerate TODO

* Update exclusions

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Daniel O'Connor <daniel.oconnor@gmail.com>
2026-03-01 15:51:34 +10:30
Daniel O'Connor
282a369d0d Update exclusions 2026-03-01 05:21:20 +00:00
Daniel O'Connor
a860cfe5a3 Regenerate TODO 2026-03-01 05:18:56 +00:00
Daniel O'Connor
4711be9fe6 Merge branch 'dependabot/bundler/rubocop-1.85.0' of https://github.com/Growstuff/growstuff into dependabot/bundler/rubocop-1.85.0 2026-03-01 05:15:54 +00:00
Daniel O'Connor
93bb82f938 Merge branch 'dev' of https://github.com/Growstuff/growstuff into dependabot/bundler/rubocop-1.85.0 2026-03-01 05:15:45 +00:00
dependabot[bot]
d8917d3c54 Bump rubocop from 1.82.1 to 1.85.0
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.82.1 to 1.85.0.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.82.1...v1.85.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-version: 1.85.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-01 05:12:32 +00:00
dependabot[bot]
fc6ee9db36 Bump haml_lint from 0.68.0 to 0.71.0
Bumps [haml_lint](https://github.com/sds/haml-lint) from 0.68.0 to 0.71.0.
- [Release notes](https://github.com/sds/haml-lint/releases)
- [Changelog](https://github.com/sds/haml-lint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sds/haml-lint/compare/v0.68.0...v0.71.0)

---
updated-dependencies:
- dependency-name: haml_lint
  dependency-version: 0.71.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-01 05:12:01 +00:00
dependabot[bot]
54d8f557e3 Bump dalli from 5.0.1 to 5.0.2
Bumps [dalli](https://github.com/petergoldstein/dalli) from 5.0.1 to 5.0.2.
- [Changelog](https://github.com/petergoldstein/dalli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/petergoldstein/dalli/compare/v5.0.1...v5.0.2)

---
updated-dependencies:
- dependency-name: dalli
  dependency-version: 5.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-01 05:11:50 +00:00
Daniel O'Connor
0aa182af14 Remove travis 2026-03-01 05:11:29 +00:00
Daniel O'Connor
ffc381ec6f Merge pull request #4462 from Growstuff/ruby-3.4
Ruby 3.4.8
2026-03-01 15:40:30 +10:30
dependabot[bot]
8517f2a1d9 Bump rubocop from 1.82.1 to 1.85.0
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.82.1 to 1.85.0.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.82.1...v1.85.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-version: 1.85.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-01 03:45:22 +00:00
Daniel O'Connor
c628ed92a8 Merge pull request #4456 from Growstuff/dependabot/bundler/capybara-screenshot-1.0.27
Bump capybara-screenshot from 1.0.26 to 1.0.27
2026-03-01 14:13:56 +10:30
dependabot[bot]
81834d4f90 Bump capybara-screenshot from 1.0.26 to 1.0.27
Bumps [capybara-screenshot](https://github.com/mattheworiordan/capybara-screenshot) from 1.0.26 to 1.0.27.
- [Release notes](https://github.com/mattheworiordan/capybara-screenshot/releases)
- [Changelog](https://github.com/mattheworiordan/capybara-screenshot/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mattheworiordan/capybara-screenshot/compare/v1.0.26...v1.0.27)

---
updated-dependencies:
- dependency-name: capybara-screenshot
  dependency-version: 1.0.27
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-25 07:05:12 +00:00
dependabot[bot]
ccfab85c97 Bump aws-sdk-s3 from 1.212.0 to 1.213.0
Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.212.0 to 1.213.0.
- [Release notes](https://github.com/aws/aws-sdk-ruby/releases)
- [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-ruby/commits)

---
updated-dependencies:
- dependency-name: aws-sdk-s3
  dependency-version: 1.213.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-22 22:37:56 +00:00
Daniel O'Connor
70379e222b Merge pull request #4451 from Growstuff/dependabot/bundler/platform-api-3.9.0
Bump platform-api from 3.8.0 to 3.9.0
2026-02-23 09:07:24 +10:30
Daniel O'Connor
2e488106e1 Merge pull request #4439 from Growstuff/dependabot/bundler/oj-3.16.15
Bump oj from 3.16.13 to 3.16.15
2026-02-23 09:06:36 +10:30
dependabot[bot]
08230ab2fd Bump platform-api from 3.8.0 to 3.9.0
Bumps [platform-api](https://github.com/heroku/platform-api) from 3.8.0 to 3.9.0.
- [Changelog](https://github.com/heroku/platform-api/blob/main/CHANGELOG.md)
- [Commits](https://github.com/heroku/platform-api/compare/v3.8.0...v3.9.0)

---
updated-dependencies:
- dependency-name: platform-api
  dependency-version: 3.9.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-22 10:32:57 +00:00
dependabot[bot]
94c42d26c5 Bump oj from 3.16.13 to 3.16.15
Bumps [oj](https://github.com/ohler55/oj) from 3.16.13 to 3.16.15.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.16.13...v3.16.15)

---
updated-dependencies:
- dependency-name: oj
  dependency-version: 3.16.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-22 10:32:50 +00:00
Daniel O'Connor
351025819d Merge pull request #4441 from Growstuff/dependabot/bundler/faraday-2.14.1
Bump faraday from 2.14.0 to 2.14.1
2026-02-22 21:01:25 +10:30
dependabot[bot]
98cd516500 Bump faraday from 2.14.0 to 2.14.1
Bumps [faraday](https://github.com/lostisland/faraday) from 2.14.0 to 2.14.1.
- [Release notes](https://github.com/lostisland/faraday/releases)
- [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lostisland/faraday/compare/v2.14.0...v2.14.1)

---
updated-dependencies:
- dependency-name: faraday
  dependency-version: 2.14.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-22 05:30:06 +00:00
Daniel O'Connor
c6b1450625 Merge pull request #4440 from Growstuff/dependabot/bundler/dalli-5.0.0
Bump dalli from 3.2.8 to 5.0.0
2026-02-22 15:58:36 +10:30
dependabot[bot]
3bca3de5c2 Bump dalli from 3.2.8 to 5.0.0
Bumps [dalli](https://github.com/petergoldstein/dalli) from 3.2.8 to 5.0.0.
- [Changelog](https://github.com/petergoldstein/dalli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/petergoldstein/dalli/compare/v3.2.8...v5.0.0)

---
updated-dependencies:
- dependency-name: dalli
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-21 23:50:55 +00:00
Daniel O'Connor
e2171fbe29 Merge pull request #4434 from Growstuff/dependabot/bundler/axe-core-capybara-4.11.1
Bump axe-core-capybara from 4.11.0 to 4.11.1
2026-02-22 10:19:58 +10:30
Daniel O'Connor
3feaaaa42e Merge pull request #4449 from Growstuff/dependabot/bundler/devise-5.0.2
Bump devise from 4.9.4 to 5.0.2
2026-02-22 10:19:24 +10:30
dependabot[bot]
e70dbcbaf3 Bump devise from 4.9.4 to 5.0.2
Bumps [devise](https://github.com/heartcombo/devise) from 4.9.4 to 5.0.2.
- [Release notes](https://github.com/heartcombo/devise/releases)
- [Changelog](https://github.com/heartcombo/devise/blob/main/CHANGELOG.md)
- [Commits](https://github.com/heartcombo/devise/compare/v4.9.4...v5.0.2)

---
updated-dependencies:
- dependency-name: devise
  dependency-version: 5.0.2
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-20 07:03:45 +00:00
dependabot[bot]
de7e717bd1 Bump axe-core-capybara from 4.11.0 to 4.11.1
Bumps [axe-core-capybara](https://github.com/dequelabs/axe-core-gems) from 4.11.0 to 4.11.1.
- [Release notes](https://github.com/dequelabs/axe-core-gems/releases)
- [Changelog](https://github.com/dequelabs/axe-core-gems/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/dequelabs/axe-core-gems/compare/v4.11.0...v4.11.1)

---
updated-dependencies:
- dependency-name: axe-core-capybara
  dependency-version: 4.11.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-20 00:42:11 +00:00
dependabot[bot]
6442603147 Bump faker from 3.5.3 to 3.6.0
Bumps [faker](https://github.com/faker-ruby/faker) from 3.5.3 to 3.6.0.
- [Release notes](https://github.com/faker-ruby/faker/releases)
- [Changelog](https://github.com/faker-ruby/faker/blob/main/CHANGELOG.md)
- [Commits](https://github.com/faker-ruby/faker/compare/v3.5.3...v3.6.0)

---
updated-dependencies:
- dependency-name: faker
  dependency-version: 3.6.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-20 00:42:01 +00:00
Daniel O'Connor
85c1db6ffd Merge pull request #4446 from Growstuff/dependabot/bundler/rspec-rails-8.0.3
Bump rspec-rails from 8.0.2 to 8.0.3
2026-02-20 11:10:40 +10:30
dependabot[bot]
53548c745d Bump rspec-rails from 8.0.2 to 8.0.3
Bumps [rspec-rails](https://github.com/rspec/rspec-rails) from 8.0.2 to 8.0.3.
- [Changelog](https://github.com/rspec/rspec-rails/blob/main/Changelog.md)
- [Commits](https://github.com/rspec/rspec-rails/compare/v8.0.2...v8.0.3)

---
updated-dependencies:
- dependency-name: rspec-rails
  dependency-version: 8.0.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-18 07:02:48 +00:00
dependabot[bot]
8c894fdd54 Bump haml from 7.1.0 to 7.2.0
Bumps [haml](https://github.com/haml/haml) from 7.1.0 to 7.2.0.
- [Release notes](https://github.com/haml/haml/releases)
- [Changelog](https://github.com/haml/haml/blob/main/CHANGELOG.md)
- [Commits](https://github.com/haml/haml/compare/v7.1.0...v7.2.0)

---
updated-dependencies:
- dependency-name: haml
  dependency-version: 7.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-22 11:59:22 +00:00
Daniel O'Connor
b4df4fccda Merge pull request #4408 from Growstuff/dependabot/bundler/pry-0.16.0
Bump pry from 0.15.2 to 0.16.0
2026-01-22 22:28:17 +10:30
Daniel O'Connor
60de11e6d5 Merge pull request #4423 from Growstuff/dependabot/bundler/listen-3.10.0
Bump listen from 3.9.0 to 3.10.0
2026-01-22 22:28:05 +10:30
dependabot[bot]
905e8a0fe4 Bump lodash from 4.17.21 to 4.17.23
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.17.23
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-21 23:05:37 +00:00
dependabot[bot]
4d5edd3b05 Bump listen from 3.9.0 to 3.10.0
Bumps [listen](https://github.com/guard/listen) from 3.9.0 to 3.10.0.
- [Release notes](https://github.com/guard/listen/releases)
- [Commits](https://github.com/guard/listen/compare/v3.9.0...v3.10.0)

---
updated-dependencies:
- dependency-name: listen
  dependency-version: 3.10.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-20 06:47:52 +00:00
dependabot[bot]
5d835d908d Bump pry from 0.15.2 to 0.16.0
Bumps [pry](https://github.com/pry/pry) from 0.15.2 to 0.16.0.
- [Release notes](https://github.com/pry/pry/releases)
- [Changelog](https://github.com/pry/pry/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pry/pry/compare/v0.15.2...v0.16.0)

---
updated-dependencies:
- dependency-name: pry
  dependency-version: 0.16.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-20 06:47:48 +00:00
Daniel O'Connor
3fb165e185 Merge pull request #4422 from Growstuff/dependabot/bundler/selenium-webdriver-4.40.0
Bump selenium-webdriver from 4.39.0 to 4.40.0
2026-01-20 17:16:25 +10:30
dependabot[bot]
6f62159813 Bump selenium-webdriver from 4.39.0 to 4.40.0
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.39.0 to 4.40.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.39.0...selenium-4.40.0)

---
updated-dependencies:
- dependency-name: selenium-webdriver
  dependency-version: 4.40.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-19 07:38:01 +00:00
Daniel O'Connor
7d5dc36d2c Merge pull request #4416 from Growstuff/dependabot/bundler/aws-sdk-s3-1.211.0
Bump aws-sdk-s3 from 1.208.0 to 1.211.0
2026-01-19 10:05:50 +10:30
dependabot[bot]
8b7da7eb35 Bump aws-sdk-s3 from 1.208.0 to 1.211.0
Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.208.0 to 1.211.0.
- [Release notes](https://github.com/aws/aws-sdk-ruby/releases)
- [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-ruby/commits)

---
updated-dependencies:
- dependency-name: aws-sdk-s3
  dependency-version: 1.211.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-18 00:38:10 +00:00
Daniel O'Connor
32738450d1 Merge pull request #4409 from Growstuff/dependabot/bundler/pg-1.6.3
Bump pg from 1.6.2 to 1.6.3
2026-01-18 11:06:45 +10:30
dependabot[bot]
7fcb1600d7 Bump pg from 1.6.2 to 1.6.3
Bumps [pg](https://github.com/ged/ruby-pg) from 1.6.2 to 1.6.3.
- [Changelog](https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ged/ruby-pg/compare/v1.6.2...v1.6.3)

---
updated-dependencies:
- dependency-name: pg
  dependency-version: 1.6.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-17 03:43:56 +00:00
Daniel O'Connor
593071507d Merge pull request #4406 from Growstuff/dependabot/bundler/hashie-5.1.0
Bump hashie from 5.0.0 to 5.1.0
2026-01-17 14:12:32 +10:30
dependabot[bot]
28dc25ed1f Bump hashie from 5.0.0 to 5.1.0
Bumps [hashie](https://github.com/hashie/hashie) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/hashie/hashie/releases)
- [Changelog](https://github.com/hashie/hashie/blob/master/CHANGELOG.md)
- [Commits](https://github.com/hashie/hashie/compare/v5.0.0...v5.1.0)

---
updated-dependencies:
- dependency-name: hashie
  dependency-version: 5.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-15 13:05:19 +00:00
Daniel O'Connor
39c4dab0f7 Merge pull request #4417 from Growstuff/dependabot/bundler/httparty-0.24.0
Bump httparty from 0.22.0 to 0.24.0
2026-01-15 23:34:01 +10:30
dependabot[bot]
e2c6197c8f Bump httparty from 0.22.0 to 0.24.0
Bumps [httparty](https://github.com/jnunemaker/httparty) from 0.22.0 to 0.24.0.
- [Release notes](https://github.com/jnunemaker/httparty/releases)
- [Changelog](https://github.com/jnunemaker/httparty/blob/main/Changelog.md)
- [Commits](https://github.com/jnunemaker/httparty/compare/v0.22.0...v0.24.0)

---
updated-dependencies:
- dependency-name: httparty
  dependency-version: 0.24.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-09 09:07:26 +00:00
Daniel O'Connor
41b861a952 Merge pull request #4407 from Growstuff/dependabot/bundler/rubocop-1.82.1
Bump rubocop from 1.82.0 to 1.82.1
2026-01-09 19:36:37 +10:30
Daniel O'Connor
a79fc59880 Merge pull request #4411 from Growstuff/dependabot/bundler/rubocop-rails-2.34.3
Bump rubocop-rails from 2.34.2 to 2.34.3
2026-01-09 19:36:23 +10:30
Daniel O'Connor
a53289936e Merge pull request #4415 from Growstuff/dependabot/bundler/rubocop-rspec-3.9.0
Bump rubocop-rspec from 3.8.0 to 3.9.0
2026-01-09 19:36:15 +10:30
dependabot[bot]
f1494a5b69 Bump rubocop-rspec from 3.8.0 to 3.9.0
Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 3.8.0 to 3.9.0.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.8.0...v3.9.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-version: 3.9.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-09 08:36:13 +00:00
dependabot[bot]
f4ea01e83e Bump rubocop-rails from 2.34.2 to 2.34.3
Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.34.2 to 2.34.3.
- [Release notes](https://github.com/rubocop/rubocop-rails/releases)
- [Changelog](https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rails/compare/v2.34.2...v2.34.3)

---
updated-dependencies:
- dependency-name: rubocop-rails
  dependency-version: 2.34.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-09 08:36:05 +00:00
dependabot[bot]
f525c3e2de Bump rubocop from 1.82.0 to 1.82.1
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.82.0 to 1.82.1.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.82.0...v1.82.1)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-version: 1.82.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-09 08:36:04 +00:00
Daniel O'Connor
a7230dbd7e Merge pull request #4410 from Growstuff/dependabot/bundler/uri-1.0.4
Bump uri from 1.0.3 to 1.0.4
2026-01-09 19:04:56 +10:30
dependabot[bot]
e7ad3f3077 Bump uri from 1.0.3 to 1.0.4
Bumps [uri](https://github.com/ruby/uri) from 1.0.3 to 1.0.4.
- [Release notes](https://github.com/ruby/uri/releases)
- [Commits](https://github.com/ruby/uri/compare/v1.0.3...v1.0.4)

---
updated-dependencies:
- dependency-name: uri
  dependency-version: 1.0.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-30 21:11:48 +00:00
Daniel O'Connor
fe7ed30c99 Merge pull request #4399 from Growstuff/dependabot/bundler/haml_lint-0.68.0
Bump haml_lint from 0.67.0 to 0.68.0
2025-12-26 14:00:09 +10:30
Daniel O'Connor
3bbd71edf2 Merge pull request #4403 from Growstuff/dependabot/bundler/scout_apm-6.0.2
Bump scout_apm from 6.0.1 to 6.0.2
2025-12-26 14:00:01 +10:30
dependabot[bot]
e0c56b8c8b Bump scout_apm from 6.0.1 to 6.0.2
Bumps [scout_apm](https://github.com/scoutapp/scout_apm_ruby) from 6.0.1 to 6.0.2.
- [Changelog](https://github.com/scoutapp/scout_apm_ruby/blob/master/CHANGELOG.markdown)
- [Commits](https://github.com/scoutapp/scout_apm_ruby/compare/v6.0.1...v6.0.2)

---
updated-dependencies:
- dependency-name: scout_apm
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-19 07:57:00 +00:00
dependabot[bot]
523a5b038a Bump haml_lint from 0.67.0 to 0.68.0
Bumps [haml_lint](https://github.com/sds/haml-lint) from 0.67.0 to 0.68.0.
- [Release notes](https://github.com/sds/haml-lint/releases)
- [Changelog](https://github.com/sds/haml-lint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sds/haml-lint/compare/v0.67.0...v0.68.0)

---
updated-dependencies:
- dependency-name: haml_lint
  dependency-version: 0.68.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-19 07:56:58 +00:00
Daniel O'Connor
ff6555f56c Merge pull request #4402 from Growstuff/dependabot/bundler/rubocop-1.82.0
Bump rubocop from 1.81.7 to 1.82.0
2025-12-19 18:25:51 +10:30
dependabot[bot]
d49e2ee3f8 Bump rubocop from 1.81.7 to 1.82.0
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.81.7 to 1.82.0.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.81.7...v1.82.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-version: 1.82.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-18 07:20:20 +00:00
Daniel O'Connor
b958261e21 Merge pull request #4401 from Growstuff/dependabot/bundler/aws-sdk-s3-1.208.0
Bump aws-sdk-s3 from 1.207.0 to 1.208.0
2025-12-18 17:49:11 +10:30
dependabot[bot]
c12d838328 Bump aws-sdk-s3 from 1.207.0 to 1.208.0
Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.207.0 to 1.208.0.
- [Release notes](https://github.com/aws/aws-sdk-ruby/releases)
- [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-ruby/commits)

---
updated-dependencies:
- dependency-name: aws-sdk-s3
  dependency-version: 1.208.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-17 07:02:52 +00:00
Daniel O'Connor
8bafc81005 Merge pull request #4392 from Growstuff/dependabot/bundler/sidekiq-7.3.10
Bump sidekiq from 7.3.9 to 7.3.10
2025-12-16 21:15:06 +10:30
Daniel O'Connor
8796f9d6f6 Merge pull request #4398 from Growstuff/dependabot/bundler/loofah-2.25.0
Bump loofah from 2.24.1 to 2.25.0
2025-12-16 21:14:57 +10:30
dependabot[bot]
f2b5aa3477 Bump loofah from 2.24.1 to 2.25.0
Bumps [loofah](https://github.com/flavorjones/loofah) from 2.24.1 to 2.25.0.
- [Release notes](https://github.com/flavorjones/loofah/releases)
- [Changelog](https://github.com/flavorjones/loofah/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flavorjones/loofah/compare/v2.24.1...v2.25.0)

---
updated-dependencies:
- dependency-name: loofah
  dependency-version: 2.25.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-16 10:13:09 +00:00
dependabot[bot]
bbc64d5e32 Bump sidekiq from 7.3.9 to 7.3.10
Bumps [sidekiq](https://github.com/sidekiq/sidekiq) from 7.3.9 to 7.3.10.
- [Changelog](https://github.com/sidekiq/sidekiq/blob/main/Changes.md)
- [Commits](https://github.com/sidekiq/sidekiq/compare/v7.3.9...v7.3.10)

---
updated-dependencies:
- dependency-name: sidekiq
  dependency-version: 7.3.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-16 10:13:02 +00:00
Daniel O'Connor
2996312c25 Merge pull request #4397 from Growstuff/dependabot/bundler/scout_apm-6.0.1
Bump scout_apm from 6.0.0 to 6.0.1
2025-12-16 20:41:55 +10:30
dependabot[bot]
5746cccb10 Bump scout_apm from 6.0.0 to 6.0.1
Bumps [scout_apm](https://github.com/scoutapp/scout_apm_ruby) from 6.0.0 to 6.0.1.
- [Changelog](https://github.com/scoutapp/scout_apm_ruby/blob/master/CHANGELOG.markdown)
- [Commits](https://github.com/scoutapp/scout_apm_ruby/compare/v6.0.0...v6.0.1)

---
updated-dependencies:
- dependency-name: scout_apm
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-16 08:30:39 +00:00
Daniel O'Connor
fc0f732e07 Merge pull request #4400 from Growstuff/dependabot/bundler/aws-sdk-s3-1.207.0
Bump aws-sdk-s3 from 1.205.0 to 1.207.0
2025-12-16 18:59:34 +10:30
dependabot[bot]
c1c026cd97 Bump aws-sdk-s3 from 1.205.0 to 1.207.0
Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.205.0 to 1.207.0.
- [Release notes](https://github.com/aws/aws-sdk-ruby/releases)
- [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-ruby/commits)

---
updated-dependencies:
- dependency-name: aws-sdk-s3
  dependency-version: 1.207.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-16 07:03:57 +00:00
Daniel O'Connor
a77b601327 Merge pull request #4381 from Growstuff/update-crop-page-titles
Update Crop Page Titles
2025-12-13 12:58:14 +10:30
Daniel O'Connor
b70168e3a1 Merge pull request #4395 from Growstuff/relax-interesting-criteria
Relax the criteria as photos are uploaded less often
2025-12-13 12:58:03 +10:30
Daniel O'Connor
d279f9bb64 Merge branch 'dev' into update-crop-page-titles 2025-12-13 12:48:34 +10:30
Daniel O'Connor
83f7ff7c3f Update app/views/crops/show.html.haml 2025-12-13 12:48:14 +10:30
Daniel O'Connor
ae639b6e74 Adjust expectation 2025-12-13 02:12:20 +00:00
Daniel O'Connor
d0ca944899 Relax the criteria as photos are uploaded less often 2025-12-13 01:15:02 +00:00
Daniel O'Connor
1edd4163e1 Merge pull request #4394 from Growstuff/dependabot/bundler/haml-7.1.0
Bump haml from 7.0.2 to 7.1.0
2025-12-13 11:28:58 +10:30
dependabot[bot]
9c03e85882 Bump haml from 7.0.2 to 7.1.0
Bumps [haml](https://github.com/haml/haml) from 7.0.2 to 7.1.0.
- [Release notes](https://github.com/haml/haml/releases)
- [Changelog](https://github.com/haml/haml/blob/main/CHANGELOG.md)
- [Commits](https://github.com/haml/haml/compare/v7.0.2...v7.1.0)

---
updated-dependencies:
- dependency-name: haml
  dependency-version: 7.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-12 07:02:42 +00:00
dependabot[bot]
64c33a5327 Bump actions/cache from 4 to 5
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-12 07:01:50 +00:00
Daniel O'Connor
a303fd6b77 Merge pull request #4391 from Growstuff/pin-dep
Pin dep
2025-12-09 08:21:06 +10:30
Daniel O'Connor
21fea20c7e Bump 2025-12-08 21:50:37 +00:00
Daniel O'Connor
5049b6fd3b Pin 2025-12-08 21:49:38 +00:00
Daniel O'Connor
4bb8749948 Merge pull request #4390 from Growstuff/revert-4386-dependabot/bundler/friendly_id-5.6.0
Revert "Bump friendly_id from 5.5.1 to 5.6.0"
2025-12-09 08:15:22 +10:30
Daniel O'Connor
58548de1bd Revert "Bump friendly_id from 5.5.1 to 5.6.0" 2025-12-09 08:15:08 +10:30
Daniel O'Connor
673a96aaa0 Merge pull request #4389 from Growstuff/revert-4384-dependabot/bundler/dotenv-rails-3.2.0
Revert "Bump dotenv-rails from 3.1.8 to 3.2.0"
2025-12-09 08:11:55 +10:30
Daniel O'Connor
1bc3217be6 Revert "Bump dotenv-rails from 3.1.8 to 3.2.0" 2025-12-09 08:11:40 +10:30
Daniel O'Connor
c2a94c9068 Merge pull request #4382 from Growstuff/dependabot/bundler/faker-3.5.3
Bump faker from 3.5.2 to 3.5.3
2025-12-09 00:30:01 +10:30
Daniel O'Connor
70d3856914 Merge pull request #4388 from Growstuff/dependabot/bundler/oj-3.16.13
Bump oj from 3.16.12 to 3.16.13
2025-12-09 00:29:38 +10:30
dependabot[bot]
e6487e639c Bump oj from 3.16.12 to 3.16.13
Bumps [oj](https://github.com/ohler55/oj) from 3.16.12 to 3.16.13.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.16.12...v3.16.13)

---
updated-dependencies:
- dependency-name: oj
  dependency-version: 3.16.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 10:11:56 +00:00
dependabot[bot]
8d7cc71503 Bump faker from 3.5.2 to 3.5.3
Bumps [faker](https://github.com/faker-ruby/faker) from 3.5.2 to 3.5.3.
- [Release notes](https://github.com/faker-ruby/faker/releases)
- [Changelog](https://github.com/faker-ruby/faker/blob/main/CHANGELOG.md)
- [Commits](https://github.com/faker-ruby/faker/compare/v3.5.2...v3.5.3)

---
updated-dependencies:
- dependency-name: faker
  dependency-version: 3.5.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 10:11:43 +00:00
Daniel O'Connor
773cbd06bf Merge pull request #4385 from Growstuff/dependabot/bundler/scout_apm-6.0.0
Bump scout_apm from 5.8.0 to 6.0.0
2025-12-08 20:41:16 +10:30
Daniel O'Connor
3d7d6d9e73 Merge pull request #4384 from Growstuff/dependabot/bundler/dotenv-rails-3.2.0
Bump dotenv-rails from 3.1.8 to 3.2.0
2025-12-08 20:41:05 +10:30
Daniel O'Connor
c7b98720e9 Merge pull request #4387 from Growstuff/dependabot/bundler/selenium-webdriver-4.39.0
Bump selenium-webdriver from 4.38.0 to 4.39.0
2025-12-08 20:40:49 +10:30
Daniel O'Connor
3ddef1b2e5 Bump friendly_id from 5.5.1 to 5.6.0 (#4386)
Bumps [friendly_id](https://github.com/norman/friendly_id) from 5.5.1 to 5.6.0.
- [Changelog](https://github.com/norman/friendly_id/blob/master/Changelog.md)
- [Commits](https://github.com/norman/friendly_id/compare/5.5.1...v5.6.0)

---
updated-dependencies:
- dependency-name: friendly_id
  dependency-version: 5.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-08 20:40:25 +10:30
dependabot[bot]
78d665391e Bump selenium-webdriver from 4.38.0 to 4.39.0
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.38.0 to 4.39.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.38.0...selenium-4.39.0)

---
updated-dependencies:
- dependency-name: selenium-webdriver
  dependency-version: 4.39.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 07:02:25 +00:00
dependabot[bot]
cf12b910d5 Bump friendly_id from 5.5.1 to 5.6.0
Bumps [friendly_id](https://github.com/norman/friendly_id) from 5.5.1 to 5.6.0.
- [Changelog](https://github.com/norman/friendly_id/blob/master/Changelog.md)
- [Commits](https://github.com/norman/friendly_id/compare/5.5.1...v5.6.0)

---
updated-dependencies:
- dependency-name: friendly_id
  dependency-version: 5.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 07:01:36 +00:00
dependabot[bot]
400139bb6a Bump scout_apm from 5.8.0 to 6.0.0
Bumps [scout_apm](https://github.com/scoutapp/scout_apm_ruby) from 5.8.0 to 6.0.0.
- [Changelog](https://github.com/scoutapp/scout_apm_ruby/blob/master/CHANGELOG.markdown)
- [Commits](https://github.com/scoutapp/scout_apm_ruby/compare/v5.8.0...v6.0.0)

---
updated-dependencies:
- dependency-name: scout_apm
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-05 07:04:41 +00:00
dependabot[bot]
ceb4986542 Bump dotenv-rails from 3.1.8 to 3.2.0
Bumps [dotenv-rails](https://github.com/bkeepers/dotenv) from 3.1.8 to 3.2.0.
- [Release notes](https://github.com/bkeepers/dotenv/releases)
- [Changelog](https://github.com/bkeepers/dotenv/blob/main/Changelog.md)
- [Commits](https://github.com/bkeepers/dotenv/compare/v3.1.8...v3.2.0)

---
updated-dependencies:
- dependency-name: dotenv-rails
  dependency-version: 3.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-04 07:02:24 +00:00
google-labs-jules[bot]
7457edf559 Merge pull request #4380 from Growstuff/community-garden-landing-page
feat: Add community garden landing page
2025-12-03 18:20:40 +10:30
google-labs-jules[bot]
62951dc5d6 feat: Update crop page titles
- Include the correct English title case
- Include the scientific name if available
- Clearly indicate the crop page is a growing guide and open data repository.
2025-12-02 13:37:45 +00:00
Daniel O'Connor
f1c2a2a7fb Refactor author field to include type and name 2025-12-02 22:59:38 +10:30
Daniel O'Connor
48f96faba4 Include datePublished in social media posting
Added 'datePublished' field to social media posting data.
2025-12-02 22:58:05 +10:30
Daniel O'Connor
a0e8beb372 Update _head.html.haml 2025-12-02 22:51:08 +10:30
Daniel O'Connor
d91799cd51 Update _head.html.haml 2025-12-02 22:47:14 +10:30
Daniel O'Connor
840f57aa8f Delete public/google0bcc8a39985c1800.html 2025-12-02 22:46:06 +10:30
Daniel O'Connor
d28d2ebffd Add files via upload 2025-12-02 22:41:12 +10:30
Daniel O'Connor
fe51feb1b5 Merge pull request #4374 from Growstuff/CloCkWeRX-patch-2
Update sitemap URL in robots.txt
2025-12-02 22:36:42 +10:30
Daniel O'Connor
dad09384df Update sitemap URL in robots.txt 2025-12-02 22:36:29 +10:30
google-labs-jules[bot]
d7452280da Merge pull request #4372 from Growstuff/fix-sitemap-upload
Fix Sitemap Upload to S3
2025-12-02 22:21:26 +10:30
Daniel O'Connor
0d799f00f7 Merge pull request #4369 from Growstuff/sitemap-s3-upload
Upload Sitemap to S3
2025-12-02 02:08:11 +10:30
Daniel O'Connor
4ef1120ccb Merge pull request #4370 from Growstuff/CloCkWeRX-patch-2
Delete spec/tasks/sitemap_cached_spec.rb
2025-12-02 02:06:24 +10:30
Daniel O'Connor
4b9b85bdce bundle 2025-12-01 15:34:26 +00:00
google-labs-jules[bot]
e4c98487ba feat: Add more pages to sitemap
This commit adds static pages, harvests, posts, and photos to the sitemap.
2025-12-01 15:32:06 +00:00
Daniel O'Connor
be59bd9f27 Delete spec/tasks/sitemap_cached_spec.rb 2025-12-02 01:58:19 +10:30
google-labs-jules[bot]
62be64fd38 feat: Upload sitemap to S3 bucket
This commit configures the sitemap generation process to upload the sitemap to an S3 bucket instead of the local filesystem.

It introduces the `aws-sdk-s3` gem to handle the S3 communication. A new configuration file, `config/sitemap.rb`, has been added to define the S3 adapter and specify the models to be included in the sitemap. The S3 bucket, access keys, and region are configured via environment variables.
2025-12-01 15:27:59 +00:00
Daniel O'Connor
18df97acd6 Merge pull request #4368 from Growstuff/feature/add-sitemap-generator
Add Sitemap Generator
2025-12-02 01:32:39 +10:30
Daniel O'Connor
7ea74d8604 Delete config/sitemap.rb 2025-12-02 01:10:35 +10:30
Daniel O'Connor
0054e7d868 Delete lib/tasks/sitemap_cached.rake 2025-12-02 01:10:06 +10:30
Daniel O'Connor
b34442b16b bundle 2025-12-01 14:37:50 +00:00
Daniel O'Connor
0c6cb5b6fd Merge pull request #4367 from Growstuff/feature/dynamic-meta-descriptions
Add dynamic meta descriptions
2025-12-02 01:04:58 +10:30
google-labs-jules[bot]
7f75aed146 feat: Add sitemap generator
Adds the `sitemap_generator` gem to generate a sitemap.

- Includes static routes and dynamic routes for active crops, plantings, seeds, photos, posts, and members.
- Implements a caching mechanism to ensure the sitemap is generated no more frequently than every 72 hours.
- Updates `robots.txt` to point to the new sitemap.
- Includes a unit test for the caching Rake task.
2025-12-01 14:31:54 +00:00
google-labs-jules[bot]
91e1f1c004 feat: Add dynamic meta descriptions
This commit improves the meta descriptions for several pages by making them dynamic and object-specific.

- The default meta description in `app/views/layouts/_head.html.haml` has been updated to include a mention of open data.
- The `show.html.haml` views for crops, seeds, plantings, harvests, and members now have a `content_for :meta_description` block. This block uses the object's description or bio if available, and falls back to a generated string if not.
2025-12-01 14:21:43 +00:00
Daniel O'Connor
9e68fba87c Merge pull request #4366 from Growstuff/add-rack-deflater
Add and configure rack-deflater
2025-12-02 00:41:04 +10:30
Daniel O'Connor
ff658c0eb6 Merge pull request #4365 from Growstuff/add-meta-descriptions
Add meta descriptions to pages
2025-12-02 00:40:23 +10:30
Daniel O'Connor
88c63900c5 Update Gemfile 2025-12-02 00:33:28 +10:30
google-labs-jules[bot]
b029c65692 feat: Add and configure rack-deflater
This change adds the `rack-deflater` gem to the project and configures the application to use it. This will enable gzip compression for HTTP responses, improving performance by reducing the size of the data sent to the client.
2025-12-01 13:57:52 +00:00
Daniel O'Connor
d6a643fd88 Merge pull request #4364 from Growstuff/fix-nutrition-data-rendering
Fix nutrition data rendering
2025-12-02 00:25:34 +10:30
google-labs-jules[bot]
2742dba7fa feat: Add meta descriptions to pages
Adds a meta description tag to the landing, crops, plantings, harvests, seeds, and comments pages.

Also creates a new index page for comments.
2025-12-01 13:54:54 +00:00
Daniel O'Connor
e168070f08 Merge pull request #4363 from Growstuff/add-wikidata-pattern
Add pattern attribute to wikidata input on scientific names
2025-12-02 00:24:51 +10:30
google-labs-jules[bot]
65def47ead Fix: Correct nutrition data rendering and add AFCD name
This commit addresses two issues in the nutritional data view:

1.  **Fixes String Interpolation:** The HAML template incorrectly used an escaped hash (`\#{...}`) in string interpolations, which prevented the nutritional values from being rendered. This has been corrected by removing the backslash.
2.  **Adds AFCD Name:** The view now displays the `food_name` from the Australian Food Classification Data to provide more context to the user.
2025-12-01 13:41:31 +00:00
google-labs-jules[bot]
b5aaf2a124 feat: Add pattern attribute to wikidata input
Adds a pattern attribute to the wikidata input on scientific names to enforce the 'Q' followed by numbers format.
2025-12-01 13:30:24 +00:00
Daniel O'Connor
16956682a9 Merge pull request #4362 from Growstuff/feature/nutritional-data-partial
feat: Add nutritional data partial to crops and harvests
2025-12-01 23:58:17 +10:30
Daniel O'Connor
9ed06bebe6 Merge branch 'dev' into feature/nutritional-data-partial 2025-12-01 23:56:35 +10:30
Daniel O'Connor
e372ef3341 Merge pull request #4361 from Growstuff/improve-wikidata-rake-task
Improve Wikidata Rake Task
2025-12-01 23:56:10 +10:30
google-labs-jules[bot]
c45b75a967 feat: Add nutritional data partial to crops and harvests
This commit introduces a new partial to display nutritional data from the Australian Food Composition Database.

Key changes:
- Adds a database index to the `public_food_key` on the `crops` table.
- Establishes a `has_one` relationship between `Crop` and `AustralianFoodClassificationData`.
- Creates a `_nutritional_data.html.haml` partial to display a summary of key nutritional information.
- Renders the partial on the `show` pages for both crops and harvests.
2025-12-01 12:53:03 +00:00
google-labs-jules[bot]
72e7b7323f feat(rake): Prioritize scientific_names.wikidata_id in task
Improves the `wikidata:import_alternate_names` Rake task to first use the `wikidata_id` from the `scientific_names` table.

- Checks for a `wikidata_id` on a crop's `scientific_names`.
- Falls back to the existing `en_wikipedia_url` if no `wikidata_id` is found.
- Adds logging to indicate the source of the Wikidata ID.
- Improves error handling.
2025-12-01 12:52:49 +00:00
google-labs-jules[bot]
87f79fb071 feat(rake): Prioritize scientific names in Wikidata task
Improves the `wikidata:import_alternate_names` Rake task to first look up a crop's Wikidata ID using its scientific names.

- Iterates through a crop's scientific names to find a Wikidata ID.
- Falls back to the existing `en_wikipedia_url` if no ID is found via scientific names.
- Adds more detailed logging to the task.
- Improves error handling by checking for non-existent Wikipedia pages and using `.dig` for safer hash access.
2025-12-01 12:44:46 +00:00
Daniel O'Connor
c94cf21f72 Merge pull request #4359 from Growstuff/add-public-food-key-to-data-improvement
Add missing public food key id to data improvement page
2025-12-01 21:45:48 +10:30
google-labs-jules[bot]
31c72799ea feat: Add missing public food key id to data improvement page
This change adds a new tab to the data improvement page to show crops that are missing a public food key id.

I was unable to run tests or perform frontend verification due to a known issue with the Ruby environment.
2025-12-01 11:04:01 +00:00
Daniel O'Connor
9ae47afe04 Reduce to member login_name 2025-12-01 10:02:23 +00:00
Daniel O'Connor
e7d8ec6fd0 Fix styling 2025-12-01 09:29:42 +00:00
google-labs-jules[bot]
bd5769cf4f feat: Use test-queue to parallelize RSpec tests
This change introduces the `test-queue` gem to the project to enable parallel execution of the RSpec test suite. The CI configuration in `.github/workflows/ci.yml` has been updated to use a single `test-queue` command instead of multiple, sequential `rspec` commands. This will help to speed up the CI process by running tests concurrently.

The `--fail-fast` option has been removed from the RSpec command, as it is not recommended when running tests in parallel. This ensures that all tests are run, providing a complete picture of the test suite's status.
2025-11-29 03:40:46 +00:00
252 changed files with 3917 additions and 2944 deletions

View File

@@ -1,4 +1,4 @@
FROM mcr.microsoft.com/devcontainers/ruby:1-3.3-bullseye
FROM mcr.microsoft.com/devcontainers/ruby:3.4-trixie
# Install Rails
RUN gem install rails:7.0.8

View File

@@ -61,7 +61,7 @@ jobs:
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
uses: actions/cache@v5
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
@@ -76,7 +76,7 @@ jobs:
- name: Install NodeJS
uses: actions/setup-node@v6
with:
node-version: '12'
node-version: '24'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
@@ -103,7 +103,7 @@ jobs:
- name: Upload screenshots
if: failure()
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v7
with:
name: screenshots
path: tmp/screenshots

View File

@@ -61,7 +61,7 @@ jobs:
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
uses: actions/cache@v5
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
@@ -76,7 +76,7 @@ jobs:
- name: Install NodeJS
uses: actions/setup-node@v6
with:
node-version: '12'
node-version: '24'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
@@ -103,7 +103,7 @@ jobs:
- name: Upload screenshots
if: failure()
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v7
with:
name: screenshots
path: tmp/screenshots

View File

@@ -61,7 +61,7 @@ jobs:
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
uses: actions/cache@v5
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
@@ -76,7 +76,7 @@ jobs:
- name: Install NodeJS
uses: actions/setup-node@v6
with:
node-version: '12'
node-version: '24'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
@@ -103,7 +103,7 @@ jobs:
- name: Upload screenshots
if: failure()
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v7
with:
name: screenshots
path: tmp/screenshots

View File

@@ -61,7 +61,7 @@ jobs:
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
uses: actions/cache@v5
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
@@ -76,7 +76,7 @@ jobs:
- name: Install NodeJS
uses: actions/setup-node@v6
with:
node-version: '12'
node-version: '24'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
@@ -103,7 +103,7 @@ jobs:
- name: Upload screenshots
if: failure()
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v7
with:
name: screenshots
path: tmp/screenshots

View File

@@ -61,7 +61,7 @@ jobs:
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
uses: actions/cache@v5
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
@@ -76,7 +76,7 @@ jobs:
- name: Install NodeJS
uses: actions/setup-node@v6
with:
node-version: '12'
node-version: '24'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
@@ -103,7 +103,7 @@ jobs:
- name: Upload screenshots
if: failure()
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v7
with:
name: screenshots
path: tmp/screenshots

View File

@@ -61,7 +61,7 @@ jobs:
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
uses: actions/cache@v5
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
@@ -76,7 +76,7 @@ jobs:
- name: Install NodeJS
uses: actions/setup-node@v6
with:
node-version: '12'
node-version: '24'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
@@ -103,7 +103,7 @@ jobs:
- name: Upload screenshots
if: failure()
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v7
with:
name: screenshots
path: tmp/screenshots

View File

@@ -61,7 +61,7 @@ jobs:
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
uses: actions/cache@v5
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
@@ -76,7 +76,7 @@ jobs:
- name: Install NodeJS
uses: actions/setup-node@v6
with:
node-version: '12'
node-version: '24'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
@@ -103,7 +103,7 @@ jobs:
- name: Upload screenshots
if: failure()
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v7
with:
name: screenshots
path: tmp/screenshots

View File

@@ -61,7 +61,7 @@ jobs:
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
uses: actions/cache@v5
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
@@ -76,7 +76,7 @@ jobs:
- name: Install NodeJS
uses: actions/setup-node@v6
with:
node-version: '12'
node-version: '24'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
@@ -103,7 +103,7 @@ jobs:
- name: Upload screenshots
if: failure()
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v7
with:
name: screenshots
path: tmp/screenshots

View File

@@ -61,7 +61,7 @@ jobs:
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
uses: actions/cache@v5
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
@@ -76,7 +76,7 @@ jobs:
- name: Install NodeJS
uses: actions/setup-node@v6
with:
node-version: '12'
node-version: '24'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
@@ -103,7 +103,7 @@ jobs:
- name: Upload screenshots
if: failure()
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v7
with:
name: screenshots
path: tmp/screenshots

View File

@@ -61,7 +61,7 @@ jobs:
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
uses: actions/cache@v5
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
@@ -76,7 +76,7 @@ jobs:
- name: Install NodeJS
uses: actions/setup-node@v6
with:
node-version: '12'
node-version: '24'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
@@ -103,7 +103,7 @@ jobs:
- name: Upload screenshots
if: failure()
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v7
with:
name: screenshots
path: tmp/screenshots

View File

@@ -61,7 +61,7 @@ jobs:
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
uses: actions/cache@v5
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
@@ -76,7 +76,7 @@ jobs:
- name: Install NodeJS
uses: actions/setup-node@v6
with:
node-version: '12'
node-version: '24'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
@@ -103,7 +103,7 @@ jobs:
- name: Upload screenshots
if: failure()
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v7
with:
name: screenshots
path: tmp/screenshots

View File

@@ -61,7 +61,7 @@ jobs:
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
uses: actions/cache@v5
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
@@ -76,7 +76,7 @@ jobs:
- name: Install NodeJS
uses: actions/setup-node@v6
with:
node-version: '12'
node-version: '24'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
@@ -103,7 +103,7 @@ jobs:
- name: Upload screenshots
if: failure()
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v7
with:
name: screenshots
path: tmp/screenshots

View File

@@ -61,7 +61,7 @@ jobs:
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
uses: actions/cache@v5
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
@@ -76,7 +76,7 @@ jobs:
- name: Install NodeJS
uses: actions/setup-node@v6
with:
node-version: '12'
node-version: '24'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
@@ -103,7 +103,7 @@ jobs:
- name: Upload screenshots
if: failure()
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v7
with:
name: screenshots
path: tmp/screenshots

View File

@@ -61,7 +61,7 @@ jobs:
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
uses: actions/cache@v5
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
@@ -76,7 +76,7 @@ jobs:
- name: Install NodeJS
uses: actions/setup-node@v6
with:
node-version: '12'
node-version: '24'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
@@ -112,7 +112,7 @@ jobs:
- name: Upload screenshots
if: failure()
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v7
with:
name: screenshots
path: tmp/screenshots

View File

@@ -76,7 +76,7 @@ jobs:
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
uses: actions/cache@v5
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
@@ -91,7 +91,7 @@ jobs:
- name: Install NodeJS
uses: actions/setup-node@v6
with:
node-version: '12'
node-version: '24'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
@@ -108,23 +108,5 @@ jobs:
run: bundle exec rails db:prepare
- name: Run rspec (lib)
run: bundle exec rspec spec/lib/ -fd --fail-fast
- name: Run rspec (services)
run: bundle exec rspec spec/services/ -fd --fail-fast
- name: Run rspec (models)
run: bundle exec rspec spec/models/ -fd --fail-fast
- name: Run rspec (controllers)
run: bundle exec rspec spec/controllers/ -fd --fail-fast
- name: Run rspec (views)
run: bundle exec rspec spec/views/ -fd --fail-fast
- name: Run rspec (routing)
run: bundle exec rspec spec/routing/ -fd --fail-fast
- name: Run rspec (request)
run: bundle exec rspec spec/requests/ -fd --fail-fast
- name: Run tests with test-queue
run: bundle exec test-queue rspec spec -fd

View File

@@ -24,6 +24,7 @@ Naming/FileName:
RSpec/DescribeClass:
Exclude:
- 'spec/tasks/import_spec.rb'
- 'spec/views/**/*.rb'
- 'spec/features/**/*.rb'
@@ -71,4 +72,7 @@ Layout/LineLength:
Rails/SkipsModelValidations:
Exclude:
- 'db/migrate/20190317023129_finished_boolean.rb'
- 'db/migrate/20251128200506_add_description_to_crops.rb'
- 'db/migrate/20240810160538_set_default_language_for_existing_alternate_names.rb'
- 'db/migrate/20240101010102_populate_crop_fields_from_openfarm_data.rb'
- 'db/seeds.rb'

View File

@@ -1,33 +1,22 @@
# This configuration was generated by
# `rubocop --auto-gen-config`
# on 2024-07-13 05:47:38 UTC using RuboCop version 1.65.0.
# on 2026-03-01 05:17:50 UTC using RuboCop version 1.85.0.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
# versions of RuboCop, may require this file to be generated again.
# Offense count: 231
# Configuration parameters: EnforcedStyle.
# SupportedStyles: link_or_button, strict
Capybara/ClickLinkOrButtonStyle:
Enabled: false
# Offense count: 39
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: DefaultSelector.
Capybara/RSpec/HaveSelector:
# Offense count: 19
Capybara/NegationMatcherAfterVisit:
Exclude:
- 'spec/features/conversations/index_spec.rb'
- 'spec/features/footer_spec.rb'
- 'spec/features/gardens/adding_gardens_spec.rb'
- 'spec/features/harvests/harvesting_a_crop_spec.rb'
- 'spec/features/members/list_spec.rb'
- 'spec/features/admin/reverting_crops_spec.rb'
- 'spec/features/crops/crop_detail_page_spec.rb'
- 'spec/features/crops/crop_wranglers_spec.rb'
- 'spec/features/gardens/gardens_spec.rb'
- 'spec/features/members/deletion_spec.rb'
- 'spec/features/members/following_spec.rb'
- 'spec/features/members/profile_spec.rb'
- 'spec/features/plantings/planting_a_crop_spec.rb'
- 'spec/features/seeds/adding_seeds_spec.rb'
- 'spec/features/shared_examples/crop_suggest.rb'
- 'spec/helpers/application_helper_spec.rb'
- 'spec/support/feature_helpers.rb'
- 'spec/views/posts/show.html.haml_spec.rb'
# Offense count: 14
Capybara/SpecificMatcher:
@@ -43,21 +32,22 @@ Capybara/VisibilityMatcher:
Exclude:
- 'spec/features/shared_examples/crop_suggest.rb'
# Offense count: 6
# Offense count: 8
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: EnforcedStyle, NonImplicitAssociationMethodNames.
# SupportedStyles: explicit, implicit
FactoryBot/AssociationStyle:
Exclude:
- 'spec/factories/alternate_names.rb'
- 'spec/factories/comments.rb'
- 'spec/factories/crop.rb'
- 'spec/factories/like.rb'
- 'spec/factories/notifications.rb'
- 'spec/factories/scientific_name.rb'
# Offense count: 3
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: AutoCorrect, Include, EnforcedStyle, ExplicitOnly.
# Include: **/*_spec.rb, **/spec/**/*, **/test/**/*, **/features/support/factories/**/*.rb
# Configuration parameters: EnforcedStyle, ExplicitOnly.
# SupportedStyles: create_list, n_times
FactoryBot/CreateList:
Exclude:
@@ -66,31 +56,51 @@ FactoryBot/CreateList:
- 'spec/views/posts/index.html.haml_spec.rb'
# Offense count: 4
# Configuration parameters: Include, MaxAmount.
# Include: **/*_spec.rb, **/spec/**/*, **/test/**/*, **/features/support/factories/**/*.rb
# Configuration parameters: MaxAmount.
FactoryBot/ExcessiveCreateList:
Exclude:
- 'spec/controllers/posts_controller_spec.rb'
- 'spec/features/crops/show_spec.rb'
- 'spec/features/percy/percy_spec.rb'
# Offense count: 1127
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Include.
# Include: **/*_spec.rb, **/spec/**/*, **/test/**/*, **/features/support/factories/**/*.rb
FactoryBot/SyntaxMethods:
Enabled: false
# Offense count: 2
# Offense count: 312
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: Max, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
# Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
# SupportedHashRocketStyles: key, separator, table
# SupportedColonStyles: key, separator, table
# SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
Layout/HashAlignment:
Exclude:
- 'app/helpers/application_helper.rb'
- 'app/helpers/crops_helper.rb'
- 'app/models/concerns/search_harvests.rb'
- 'app/models/concerns/search_plantings.rb'
- 'app/models/crop.rb'
- 'config/sitemap.rb'
- 'lib/tasks/import.rake'
- 'spec/requests/api/v1/activities_request_spec.rb'
- 'spec/requests/api/v1/members_request_spec.rb'
# Offense count: 6
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: Max, AllowHeredoc, AllowURI, AllowQualifiedName, URISchemes, AllowRBSInlineAnnotation, AllowCopDirectives, AllowedPatterns, SplitStrings.
# URISchemes: http, https
Layout/LineLength:
Exclude:
- 'app/helpers/crops_helper.rb'
- 'Gemfile'
- 'app/controllers/admin/versions_controller.rb'
- 'app/models/concerns/predict_planting.rb'
- 'app/models/crop.rb'
- 'db/seeds.rb'
- 'spec/requests/api/v1/activities_request_spec.rb'
# Offense count: 3
# Offense count: 1
# This cop supports safe autocorrection (--autocorrect).
Lint/AmbiguousOperatorPrecedence:
Exclude:
- 'app/controllers/activities_controller.rb'
# Offense count: 4
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: RequireParenthesesForMethodChains.
Lint/AmbiguousRange:
@@ -98,25 +108,33 @@ Lint/AmbiguousRange:
- 'app/models/concerns/search_activities.rb'
- 'app/models/concerns/search_harvests.rb'
- 'app/models/concerns/search_plantings.rb'
- 'db/seeds.rb'
# Offense count: 1
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: AllowSafeAssignment.
Lint/AssignmentInCondition:
Exclude:
- 'app/helpers/crops_helper.rb'
# Offense count: 1
# Configuration parameters: AllowedMethods.
# AllowedMethods: enums
Lint/ConstantDefinitionInBlock:
Exclude:
- 'lib/tasks/import.rake'
# Offense count: 2
# Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches.
# Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches, IgnoreDuplicateElseBranch.
Lint/DuplicateBranch:
Exclude:
- 'app/models/harvest.rb'
- 'lib/actions/oauth_signup_action.rb'
# Offense count: 8
# Configuration parameters: AllowComments, AllowEmptyLambdas.
Lint/EmptyBlock:
# Offense count: 1
Lint/DuplicateMethods:
Exclude:
- 'db/migrate/20171022032108_all_the_predictions.rb'
- 'spec/controllers/home_controller_spec.rb'
- 'spec/controllers/likes_controller_spec.rb'
- 'spec/controllers/plant_parts_controller_spec.rb'
- 'spec/factories/crop_companions.rb'
- 'spec/features/crops/crop_detail_page_spec.rb'
- 'spec/requests/authentications_spec.rb'
- 'app/models/planting.rb'
# Offense count: 1
# This cop supports safe autocorrection (--autocorrect).
@@ -136,62 +154,106 @@ Lint/SuppressedException:
Exclude:
- 'lib/tasks/testing.rake'
# Offense count: 1
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: strict, consistent
Lint/SymbolConversion:
Exclude:
- 'app/helpers/crops_helper.rb'
# Offense count: 7
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: AutoCorrect.
# This cop supports safe autocorrection (--autocorrect).
Lint/UselessAssignment:
Exclude:
- 'config.rb'
- 'config/compass.rb'
# Offense count: 52
# Offense count: 1
Lint/UselessConstantScoping:
Exclude:
- 'app/controllers/members_controller.rb'
# Offense count: 61
# Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
Metrics/AbcSize:
Max: 151
Max: 295
# Offense count: 14
# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode.
# AllowedMethods: refine
Metrics/BlockLength:
Max: 115
Max: 294
# Offense count: 7
# Offense count: 10
# Configuration parameters: CountComments, CountAsOne.
Metrics/ClassLength:
Max: 188
Max: 298
# Offense count: 6
# Offense count: 1
# Configuration parameters: LengthThreshold.
Metrics/CollectionLiteralLength:
Exclude:
- 'lib/tasks/import.rake'
# Offense count: 10
# Configuration parameters: AllowedMethods, AllowedPatterns.
Metrics/CyclomaticComplexity:
Max: 32
# Offense count: 71
# Offense count: 82
# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
Metrics/MethodLength:
Max: 127
Max: 296
# Offense count: 2
# Configuration parameters: CountComments, CountAsOne.
Metrics/ModuleLength:
Max: 125
Max: 144
# Offense count: 5
# Offense count: 8
# Configuration parameters: AllowedMethods, AllowedPatterns.
Metrics/PerceivedComplexity:
Max: 32
# Offense count: 2
# Configuration parameters: Mode, AllowedMethods, AllowedPatterns, AllowBangMethods, WaywardPredicates.
# AllowedMethods: call
# WaywardPredicates: infinite?, nonzero?
Naming/PredicateMethod:
Exclude:
- 'app/models/concerns/finishable.rb'
- 'app/models/seed.rb'
# Offense count: 3
RSpec/AnyInstance:
Exclude:
- 'spec/controllers/harvests_controller_spec.rb'
- 'spec/controllers/photos_controller_spec.rb'
# Offense count: 292
# Offense count: 2
# This cop supports unsafe autocorrection (--autocorrect-all).
RSpec/BeEq:
Exclude:
- 'spec/requests/api/v1/activities_request_spec.rb'
# Offense count: 1
RSpec/BeforeAfterAll:
Exclude:
- 'spec/tasks/import_spec.rb'
# Offense count: 299
# Configuration parameters: Prefixes, AllowedPatterns.
# Prefixes: when, with, without
RSpec/ContextWording:
Enabled: false
# Offense count: 1
# Configuration parameters: IgnoredMetadata.
RSpec/DescribeClass:
Exclude:
- 'spec/tasks/import_spec.rb'
# Offense count: 36
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: SkipBlocks, EnforcedStyle, OnlyStaticConstants.
@@ -204,7 +266,6 @@ RSpec/DescribedClass:
# Offense count: 13
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: AutoCorrect.
RSpec/EmptyExampleGroup:
Exclude:
- 'spec/controllers/authentications_controller_spec.rb'
@@ -227,10 +288,10 @@ RSpec/EmptyLineAfterExample:
Exclude:
- 'spec/models/ability_spec.rb'
# Offense count: 140
# Offense count: 146
# Configuration parameters: CountAsOne.
RSpec/ExampleLength:
Max: 25
Max: 27
# Offense count: 32
RSpec/ExpectInHook:
@@ -255,11 +316,30 @@ RSpec/HookArgument:
# Offense count: 2
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AutoCorrect.
RSpec/HooksBeforeExamples:
Exclude:
- 'spec/features/crops/creating_a_crop_spec.rb'
# Offense count: 53
# This cop supports unsafe autocorrection (--autocorrect-all).
RSpec/IncludeExamples:
Exclude:
- 'spec/features/conversations/index_spec.rb'
- 'spec/features/crops/alternate_name_spec.rb'
- 'spec/features/crops/browse_crops_spec.rb'
- 'spec/features/crops/creating_a_crop_spec.rb'
- 'spec/features/crops/crop_photos_spec.rb'
- 'spec/features/crops/delete_crop_spec.rb'
- 'spec/features/gardens/actions_spec.rb'
- 'spec/features/gardens/adding_gardens_spec.rb'
- 'spec/features/gardens/index_spec.rb'
- 'spec/features/likeable_spec.rb'
- 'spec/features/signout_spec.rb'
- 'spec/models/crop_spec.rb'
- 'spec/support/feature_helpers.rb'
- 'spec/views/photos/show.html.haml_spec.rb'
- 'spec/views/seeds/index.rss.haml_spec.rb'
# Offense count: 37
# Configuration parameters: Max, AllowedIdentifiers, AllowedPatterns.
RSpec/IndexedLet:
@@ -276,12 +356,12 @@ RSpec/IndexedLet:
- 'spec/models/member_spec.rb'
- 'spec/views/forums/index.html.haml_spec.rb'
# Offense count: 720
# Offense count: 719
# Configuration parameters: AssignmentOnly.
RSpec/InstanceVariable:
Enabled: false
# Offense count: 40
# Offense count: 41
RSpec/LetSetup:
Enabled: false
@@ -307,16 +387,16 @@ RSpec/MultipleDescribes:
Exclude:
- 'spec/features/crops/crop_wranglers_spec.rb'
# Offense count: 152
# Offense count: 189
RSpec/MultipleExpectations:
Max: 19
# Offense count: 138
# Offense count: 166
# Configuration parameters: AllowSubject.
RSpec/MultipleMemoizedHelpers:
Max: 20
Max: 16
# Offense count: 133
# Offense count: 183
# Configuration parameters: EnforcedStyle, IgnoreSharedExamples.
# SupportedStyles: always, named_only
RSpec/NamedSubject:
@@ -327,17 +407,18 @@ RSpec/NamedSubject:
RSpec/NestedGroups:
Max: 6
# Offense count: 403
# Offense count: 407
# Configuration parameters: AllowedPatterns.
# AllowedPatterns: ^expect_, ^assert_
RSpec/NoExpectationExample:
Enabled: false
# Offense count: 3
# Offense count: 4
RSpec/PendingWithoutReason:
Exclude:
- 'spec/features/seeds/misc_seeds_spec.rb'
- 'spec/features/unsubscribing_spec.rb'
- 'spec/requests/api/v1/gardens_request_spec.rb'
# Offense count: 2
RSpec/RepeatedDescription:
@@ -358,15 +439,14 @@ RSpec/RepeatedExampleGroupBody:
# Offense count: 6
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AutoCorrect.
RSpec/ScatteredSetup:
Exclude:
- 'spec/features/percy/percy_spec.rb'
- 'spec/features/plantings/prediction_spec.rb'
# Offense count: 1
# Configuration parameters: Include, CustomTransform, IgnoreMethods, IgnoreMetadata.
# Include: **/*_spec.rb
# Configuration parameters: CustomTransform, IgnoreMethods, IgnoreMetadata, InflectorPath, EnforcedInflector.
# SupportedInflectors: default, active_support
RSpec/SpecFilePathFormat:
Exclude:
- 'spec/controllers/member_controller_spec.rb'
@@ -380,8 +460,6 @@ RSpec/StubbedMock:
# Offense count: 1
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: constant, string
RSpec/VerifiedDoubleReference:
Exclude:
- 'spec/models/member_spec.rb'
@@ -394,47 +472,38 @@ RSpec/VerifiedDoubles:
- 'spec/controllers/gardens_controller_spec.rb'
- 'spec/views/devise/shared/_links_spec.rb'
# Offense count: 7
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: ResponseMethods.
# ResponseMethods: response, last_response
RSpecRails/HaveHttpStatus:
Exclude:
- 'spec/controllers/api/v1/plantings_controller_spec.rb'
- 'spec/controllers/harvests_controller_spec.rb'
- 'spec/controllers/likes_controller_spec.rb'
- 'spec/requests/harvests_spec.rb'
# Offense count: 16
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Inferences.
RSpecRails/InferredSpecType:
Enabled: false
# Offense count: 28
# Configuration parameters: Database, Include.
# Offense count: 30
# Configuration parameters: Database.
# SupportedDatabases: mysql, postgresql
# Include: db/**/*.rb
Rails/BulkChangeTable:
Enabled: false
# Offense count: 4
# Configuration parameters: Include.
# Include: db/**/*.rb
Rails/CreateTableWithTimestamps:
Exclude:
- 'db/migrate/20150201052245_create_cms.rb'
- 'db/migrate/20171022032108_all_the_predictions.rb'
# Offense count: 1
# Offense count: 8
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: EnforcedStyle, AllowToTime.
# SupportedStyles: strict, flexible
Rails/Date:
Exclude:
- 'app/controllers/activities_controller.rb'
- 'app/mailers/notifier_mailer.rb'
- 'app/models/concerns/search_seeds.rb'
- 'spec/features/activities/creating_a_recurring_activity_spec.rb'
# Offense count: 11
# Offense count: 1
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: slashes, arguments
Rails/FilePath:
Exclude:
- 'lib/tasks/import.rake'
# Offense count: 12
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: AllowedMethods, AllowedPatterns.
# AllowedMethods: order, limit, select, lock
@@ -445,38 +514,39 @@ Rails/FindEach:
- 'db/migrate/20171129041341_create_photographings.rb'
- 'db/migrate/20190130090437_add_crop_to_photographings.rb'
- 'db/migrate/20191119030244_cms_tags.rb'
- 'lib/tasks/wikidata.rake'
# Offense count: 2
# Configuration parameters: Include.
# Include: app/models/**/*.rb
Rails/HasAndBelongsToMany:
Exclude:
- 'app/models/member.rb'
- 'app/models/role.rb'
# Offense count: 5
# Configuration parameters: Include.
# Include: app/models/**/*.rb
# Offense count: 6
Rails/HasManyOrHasOneDependent:
Exclude:
- 'app/models/crop.rb'
- 'app/models/member.rb'
# Offense count: 1
# Configuration parameters: Include.
# Include: spec/**/*.rb, test/**/*.rb
Rails/I18nLocaleAssignment:
Exclude:
- 'spec/features/locale_spec.rb'
# Offense count: 33
# Offense count: 40
Rails/I18nLocaleTexts:
Enabled: false
# Offense count: 3
# Configuration parameters: Include.
# Include: app/controllers/**/*.rb, app/mailers/**/*.rb
# Offense count: 1
# Configuration parameters: IgnoreScopes.
Rails/InverseOf:
Exclude:
- 'app/models/member.rb'
# Offense count: 4
Rails/LexicallyScopedActionFilter:
Exclude:
- 'app/controllers/api/v1/base_controller.rb'
- 'app/controllers/data_controller.rb'
- 'app/controllers/registrations_controller.rb'
@@ -492,10 +562,16 @@ Rails/PluralizationGrammar:
Exclude:
- 'spec/requests/plantings_spec.rb'
# Offense count: 3
# This cop supports safe autocorrection (--autocorrect).
Rails/Presence:
Exclude:
- 'app/controllers/photos_controller.rb'
- 'app/controllers/plantings_controller.rb'
- 'app/models/concerns/open_farm_data.rb'
# Offense count: 4
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Include.
# Include: **/Rakefile, **/*.rake
Rails/RakeEnvironment:
Exclude:
- 'lib/tasks/hooks.rake'
@@ -513,9 +589,8 @@ Rails/RedundantActiveRecordAllMethod:
- 'app/controllers/forums_controller.rb'
- 'app/controllers/plant_parts_controller.rb'
- 'app/controllers/scientific_names_controller.rb'
- 'app/services/openfarm_service.rb'
- 'spec/features/members/deletion_spec.rb'
- 'spec/features/percy/percy_spec.rb'
- 'spec/models/harvest_spec.rb'
# Offense count: 5
# This cop supports unsafe autocorrection (--autocorrect-all).
@@ -526,14 +601,13 @@ Rails/RedundantPresenceValidationOnBelongsTo:
- 'app/models/planting.rb'
- 'app/models/scientific_name.rb'
# Offense count: 15
# Offense count: 16
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Include.
# Include: spec/controllers/**/*.rb, spec/requests/**/*.rb, test/controllers/**/*.rb, test/integration/**/*.rb
Rails/ResponseParsedBody:
Exclude:
- 'spec/controllers/api/v1/plantings_controller_spec.rb'
- 'spec/controllers/likes_controller_spec.rb'
- 'spec/requests/api/v1/activities_request_spec.rb'
- 'spec/requests/api/v1/crop_request_spec.rb'
- 'spec/requests/api/v1/gardens_request_spec.rb'
- 'spec/requests/api/v1/harvests_request_spec.rb'
@@ -543,29 +617,44 @@ Rails/ResponseParsedBody:
- 'spec/requests/api/v1/seeds_request_spec.rb'
# Offense count: 9
# Configuration parameters: Include.
# Include: db/**/*.rb
Rails/ReversibleMigration:
Exclude:
- 'db/migrate/20130326092227_change_planted_at_to_date.rb'
- 'db/migrate/20191119020643_upgrade_cms.rb'
# Offense count: 2
# Offense count: 6
# This cop supports unsafe autocorrection (--autocorrect-all).
Rails/RootPathnameMethods:
Exclude:
- 'app/controllers/crops_controller.rb'
- 'app/helpers/icons_helper.rb'
- 'config/application.rb'
- 'lib/tasks/import.rake'
- 'spec/rails_helper.rb'
# Offense count: 4
# Configuration parameters: ForbiddenMethods, AllowedMethods.
# ForbiddenMethods: decrement!, decrement_counter, increment!, increment_counter, insert, insert!, insert_all, insert_all!, toggle!, touch, touch_all, update_all, update_attribute, update_column, update_columns, update_counters, upsert, upsert_all
Rails/SkipsModelValidations:
Exclude:
- 'db/migrate/20240101010102_populate_crop_fields_from_openfarm_data.rb'
- 'db/migrate/20240810160538_set_default_language_for_existing_alternate_names.rb'
- 'db/migrate/20251128200506_add_description_to_crops.rb'
# Offense count: 21
# Configuration parameters: Include.
# Include: db/**/*.rb
Rails/ThreeStateBooleanColumn:
Enabled: false
# Offense count: 2
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: strict, flexible
Rails/TimeZone:
Exclude:
- 'app/controllers/activities_controller.rb'
- 'spec/features/harvests/harvesting_a_crop_spec.rb'
# Offense count: 6
# Configuration parameters: Include.
# Include: app/models/**/*.rb
Rails/UniqueValidationWithoutIndex:
Exclude:
- 'app/models/follow.rb'
@@ -583,24 +672,28 @@ Rails/WhereEquals:
- 'app/models/harvest.rb'
- 'app/models/planting.rb'
# Offense count: 2
# Offense count: 3
# This cop supports unsafe autocorrection (--autocorrect-all).
Rails/WhereRange:
Exclude:
- 'app/models/concerns/predict_planting.rb'
- 'app/models/garden.rb'
- 'app/models/seed.rb'
# Offense count: 1
Rake/MethodDefinitionInTask:
Exclude:
- 'lib/tasks/growstuff.rake'
# Offense count: 3
# Offense count: 4
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: EnforcedStyle.
# Configuration parameters: EnforcedStyle, EnforcedStyleForClasses, EnforcedStyleForModules.
# SupportedStyles: nested, compact
# SupportedStylesForClasses: ~, nested, compact
# SupportedStylesForModules: ~, nested, compact
Style/ClassAndModuleChildren:
Exclude:
- 'app/controllers/admin/crops_controller.rb'
- 'lib/actions/oauth_signup_action.rb'
- 'lib/haml/filters/escaped_markdown.rb'
- 'lib/haml/filters/growstuff_markdown.rb'
@@ -615,30 +708,44 @@ Style/CommentedKeyword:
- 'spec/models/planting_spec.rb'
# Offense count: 3
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowedVars, DefaultToNil.
Style/FetchEnvVar:
Exclude:
- 'config/sitemap.rb'
# Offense count: 2
Style/FileOpen:
Exclude:
- 'app/helpers/application_helper.rb'
- 'db/seeds.rb'
# Offense count: 1
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: always, always_true, never
Style/FrozenStringLiteralComment:
# SupportedStyles: left_coerce, right_coerce, single_coerce, fdiv
Style/FloatDivision:
Exclude:
- 'config/initializers/new_framework_defaults_6_0.rb'
- 'db/migrate/20200801084007_add_foreign_key_constraint_to_active_storage_attachments_for_blob_id.active_storage.rb'
- 'spec/lib/haml/filters/growstuff_markdown_spec.rb'
- 'app/models/concerns/predict_planting.rb'
# Offense count: 3
# Offense count: 2
# This cop supports unsafe autocorrection (--autocorrect-all).
Style/GlobalStdStream:
Exclude:
- 'config/environments/production.rb'
- 'lib/tasks/gbif.rake'
- 'lib/tasks/openfarm.rake'
# Offense count: 2
# This cop supports unsafe autocorrection (--autocorrect-all).
Style/IdenticalConditionalBranches:
Exclude:
- 'lib/actions/oauth_signup_action.rb'
# Offense count: 1
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: AllowedMethods.
# AllowedMethods: nonzero?
Style/IfWithBooleanLiteralBranches:
Style/MapIntoArray:
Exclude:
- 'app/controllers/gardens_controller.rb'
- 'app/helpers/crops_helper.rb'
# Offense count: 1
# This cop supports unsafe autocorrection (--autocorrect-all).
@@ -660,12 +767,13 @@ Style/MutableConstant:
Exclude:
- 'app/models/activity.rb'
# Offense count: 5
# Offense count: 6
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: EnforcedStyle, AllowedMethods, AllowedPatterns.
# SupportedStyles: predicate, comparison
Style/NumericPredicate:
Exclude:
- 'app/controllers/activities_controller.rb'
- 'app/helpers/crops_helper.rb'
- 'app/helpers/harvests_helper.rb'
- 'app/helpers/plantings_helper.rb'
@@ -676,13 +784,21 @@ Style/OpenStructUse:
Exclude:
- 'spec/helpers/event_helper_spec.rb'
# Offense count: 2
# Offense count: 3
# Configuration parameters: AllowedMethods.
# AllowedMethods: respond_to_missing?
Style/OptionalBooleanParameter:
Exclude:
- 'app/helpers/application_helper.rb'
- 'app/models/concerns/member_newsletter.rb'
# Offense count: 1
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: PreferredDelimiters.
Style/PercentLiteralDelimiters:
Exclude:
- 'db/migrate/20251130035700_create_versions.rb'
# Offense count: 1
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Methods.
@@ -697,20 +813,34 @@ Style/RedundantFetchBlock:
Exclude:
- 'config/puma.rb'
# Offense count: 2
# Offense count: 1
# This cop supports unsafe autocorrection (--autocorrect-all).
Style/RedundantInterpolation:
Exclude:
- 'app/helpers/buttons_helper.rb'
# Offense count: 4
# Configuration parameters: Max.
Style/SafeNavigationChainLength:
Exclude:
- 'app/models/ability.rb'
# Offense count: 3
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowModifier.
Style/SoleNestedConditional:
Exclude:
- 'app/controllers/activities_controller.rb'
- 'app/controllers/application_controller.rb'
- 'app/controllers/messages_controller.rb'
# Offense count: 24
# Offense count: 27
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Mode.
Style/StringConcatenation:
Exclude:
- 'app/controllers/messages_controller.rb'
- 'app/controllers/registrations_controller.rb'
- 'app/helpers/buttons_helper.rb'
- 'config/initializers/rswag_api.rb'
- 'spec/helpers/gardens_helper_spec.rb'

View File

@@ -1 +1 @@
3.3.8
3.4.8

View File

@@ -1,31 +0,0 @@
sudo: required
language: ruby
dist: bionic
branches:
only:
- mainline
- dev
cache:
bundler: true
yarn: true
directories:
- tmp/cache/assets/test/sprockets
env:
global:
- secure: "Z5TpM2jEX4UCvNePnk/LwltQX48U2u9BRc+Iypr1x9QW2o228QJhPIOH39a8RMUrepGnkQIq9q3ZRUn98RfrJz1yThtlNFL3NmzdQ57gKgjGwfpa0e4Dwj/ZJqV2D84tDGjvdVYLP7zzaYZxQcwk/cgNpzKf/jq97HLNP7CYuf4="
before_deploy:
- bundle exec script/heroku_maintenance.rb on
deploy:
provider: heroku
api_key:
secure: "WrQxf0fEKkCdXrjcejurobOnNNz3he4dDwjBbToXbQTQNDObPp7NetJrLsfM8FiUFEeOuvhIHHiDQtMvY720zGGAGxDptvgFS+0QHCUqoTRZA/yFfUmHlG2jROXTzk5uVK0AE4k6Ion5kX8+mM0EnMT/7u+MTFiukrJctSiEXfg="
on:
repo: Growstuff/growstuff
app:
dev: growstuff-staging
mainline: growstuff-prod
run:
- "script/deploy-tasks.sh"
- restart
after_deploy:
- bundle exec script/heroku_maintenance.rb off

13
Gemfile
View File

@@ -136,6 +136,11 @@ gem "gbifrb"
gem "msgpack"
# Pinned due to RAILS_ENV=production bundle exec rake assets:precompile failing with ArgumentError: wrong number of arguments (given 1, expected 0) (ArgumentError)
# /tmp/build_8301a541/vendor/bundle/ruby/3.3.0/gems/connection_pool-3.0.2/lib/connection_pool.rb:48:in `initialize'
# /tmp/build_8301a541/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.3/lib/active_support/cache/mem_cache_store.rb:63:in `new'
gem "connection_pool", "< 3"
group :production do
gem 'bonsai-elasticsearch-rails' # Integration with Bonsa-Elasticsearch on heroku
gem 'dalli'
@@ -191,14 +196,14 @@ group :test do
gem 'rails-controller-testing'
gem "rspec-rebound"
gem 'selenium-webdriver'
gem 'test-queue'
gem 'timecop'
gem 'vcr'
end
group :travis do
gem 'platform-api'
end
gem "i18n_data", "~> 1.1"
gem "paper_trail", "~> 17.0"
gem 'aws-sdk-s3', '~> 1', '>= 1.114.0'
gem 'sitemap_generator'

View File

@@ -33,29 +33,29 @@ GEM
GEM
remote: https://rubygems.org/
specs:
actioncable (7.2.3)
actionpack (= 7.2.3)
activesupport (= 7.2.3)
actioncable (7.2.3.1)
actionpack (= 7.2.3.1)
activesupport (= 7.2.3.1)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
zeitwerk (~> 2.6)
actionmailbox (7.2.3)
actionpack (= 7.2.3)
activejob (= 7.2.3)
activerecord (= 7.2.3)
activestorage (= 7.2.3)
activesupport (= 7.2.3)
actionmailbox (7.2.3.1)
actionpack (= 7.2.3.1)
activejob (= 7.2.3.1)
activerecord (= 7.2.3.1)
activestorage (= 7.2.3.1)
activesupport (= 7.2.3.1)
mail (>= 2.8.0)
actionmailer (7.2.3)
actionpack (= 7.2.3)
actionview (= 7.2.3)
activejob (= 7.2.3)
activesupport (= 7.2.3)
actionmailer (7.2.3.1)
actionpack (= 7.2.3.1)
actionview (= 7.2.3.1)
activejob (= 7.2.3.1)
activesupport (= 7.2.3.1)
mail (>= 2.8.0)
rails-dom-testing (~> 2.2)
actionpack (7.2.3)
actionview (= 7.2.3)
activesupport (= 7.2.3)
actionpack (7.2.3.1)
actionview (= 7.2.3.1)
activesupport (= 7.2.3.1)
cgi
nokogiri (>= 1.8.5)
racc
@@ -65,15 +65,15 @@ GEM
rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6)
useragent (~> 0.16)
actiontext (7.2.3)
actionpack (= 7.2.3)
activerecord (= 7.2.3)
activestorage (= 7.2.3)
activesupport (= 7.2.3)
actiontext (7.2.3.1)
actionpack (= 7.2.3.1)
activerecord (= 7.2.3.1)
activestorage (= 7.2.3.1)
activesupport (= 7.2.3.1)
globalid (>= 0.6.0)
nokogiri (>= 1.8.5)
actionview (7.2.3)
activesupport (= 7.2.3)
actionview (7.2.3.1)
activesupport (= 7.2.3.1)
builder (~> 3.1)
cgi
erubi (~> 1.11)
@@ -82,29 +82,29 @@ GEM
active_link_to (1.0.5)
actionpack
addressable
active_median (0.6.0)
activesupport (>= 7.1)
active_median (1.0.0)
activesupport (>= 7.2)
active_record_union (1.4.0)
activerecord (>= 6.0)
active_utils (3.6.0)
activesupport (>= 4.2)
i18n
activejob (7.2.3)
activesupport (= 7.2.3)
activejob (7.2.3.1)
activesupport (= 7.2.3.1)
globalid (>= 0.3.6)
activemodel (7.2.3)
activesupport (= 7.2.3)
activerecord (7.2.3)
activemodel (= 7.2.3)
activesupport (= 7.2.3)
activemodel (7.2.3.1)
activesupport (= 7.2.3.1)
activerecord (7.2.3.1)
activemodel (= 7.2.3.1)
activesupport (= 7.2.3.1)
timeout (>= 0.4.0)
activestorage (7.2.3)
actionpack (= 7.2.3)
activejob (= 7.2.3)
activerecord (= 7.2.3)
activesupport (= 7.2.3)
activestorage (7.2.3.1)
actionpack (= 7.2.3.1)
activejob (= 7.2.3.1)
activerecord (= 7.2.3.1)
activesupport (= 7.2.3.1)
marcel (~> 1.0)
activesupport (7.2.3)
activesupport (7.2.3.1)
base64
benchmark (>= 0.3)
bigdecimal
@@ -113,23 +113,42 @@ GEM
drb
i18n (>= 1.6, < 2)
logger (>= 1.4.2)
minitest (>= 5.1)
minitest (>= 5.1, < 6)
securerandom (>= 0.3)
tzinfo (~> 2.0, >= 2.0.5)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
addressable (2.9.0)
public_suffix (>= 2.0.2, < 8.0)
ast (2.4.3)
autoprefixer-rails (10.4.16.0)
execjs (~> 2)
axe-core-api (4.11.0)
aws-eventstream (1.4.0)
aws-partitions (1.1240.0)
aws-sdk-core (3.245.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
base64
bigdecimal
jmespath (~> 1, >= 1.6.1)
logger
aws-sdk-kms (1.123.0)
aws-sdk-core (~> 3, >= 3.244.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.220.0)
aws-sdk-core (~> 3, >= 3.244.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
aws-sigv4 (1.12.1)
aws-eventstream (~> 1, >= 1.0.2)
axe-core-api (4.11.2)
dumb_delegator
ostruct
virtus
axe-core-capybara (4.11.0)
axe-core-api (= 4.11.0)
axe-core-capybara (4.11.2)
axe-core-api (= 4.11.2)
dumb_delegator
axe-core-rspec (4.11.0)
axe-core-api (= 4.11.0)
axe-core-rspec (4.11.2)
axe-core-api (= 4.11.2)
dumb_delegator
ostruct
virtus
@@ -138,13 +157,13 @@ GEM
ice_nine (~> 0.11.0)
thread_safe (~> 0.3, >= 0.3.1)
base64 (0.3.0)
bcrypt (3.1.20)
bcrypt (3.1.22)
benchmark (0.5.0)
better_errors (2.10.1)
erubi (>= 1.0.0)
rack (>= 0.9.0)
rouge (>= 1.0.0)
bigdecimal (3.3.1)
bigdecimal (4.1.2)
bluecloth (2.2.0)
bonsai-elasticsearch-rails (7.0.1)
elasticsearch-model (< 8)
@@ -158,10 +177,11 @@ GEM
actionpack (>= 6.1)
activemodel (>= 6.1)
builder (3.3.0)
bullet (8.1.0)
bullet (8.1.1)
activesupport (>= 3.0.0)
uniform_notifier (~> 1.11)
byebug (12.0.0)
byebug (13.0.0)
reline (>= 0.6.0)
cancancan (3.6.1)
capybara (3.40.0)
addressable
@@ -175,7 +195,7 @@ GEM
capybara-email (3.0.2)
capybara (>= 2.4, < 4.0)
mail
capybara-screenshot (1.0.26)
capybara-screenshot (1.0.27)
capybara (>= 1.0, < 4)
launchy
carrierwave (3.0.7)
@@ -185,9 +205,10 @@ GEM
image_processing (~> 1.1)
marcel (~> 1.0.0)
ssrf_filter (~> 1.0)
cgi (0.5.0)
cgi (0.5.1)
chartkick (5.2.1)
childprocess (5.0.0)
childprocess (5.1.0)
logger (~> 1.5)
coderay (1.1.3)
coercible (1.0.0)
descendants_tracker (~> 0.0.1)
@@ -200,7 +221,7 @@ GEM
coffee-script-source (1.12.2)
comfy_bootstrap_form (4.0.9)
rails (>= 5.0.0)
concurrent-ruby (1.3.5)
concurrent-ruby (1.3.6)
connection_pool (2.5.5)
crass (1.0.6)
crowdin-api (1.12.0)
@@ -215,29 +236,30 @@ GEM
csv_shaper (1.4.0)
activesupport (>= 3.0.0)
csv
dalli (3.2.8)
dalli (5.0.2)
logger
database_cleaner (2.1.0)
database_cleaner-active_record (>= 2, < 3)
database_cleaner-active_record (2.2.0)
activerecord (>= 5.a)
database_cleaner-core (~> 2.0.0)
database_cleaner-core (2.0.1)
date (3.5.0)
date (3.5.1)
descendants_tracker (0.0.4)
thread_safe (~> 0.3, >= 0.3.1)
devise (4.9.4)
devise (5.0.3)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 4.1.0)
railties (>= 7.0)
responders
warden (~> 1.2.3)
diff-lcs (1.6.2)
discard (1.4.0)
activerecord (>= 4.2, < 9.0)
domain_name (0.6.20240107)
dotenv (3.1.8)
dotenv-rails (3.1.8)
dotenv (= 3.1.8)
dotenv (3.2.0)
dotenv-rails (3.2.0)
dotenv (= 3.2.0)
railties (>= 6.1)
drb (2.2.3)
dumb_delegator (1.1.0)
@@ -254,30 +276,28 @@ GEM
elasticsearch-transport (7.0.0)
faraday
multi_json
erb (6.0.0)
erb (6.0.2)
erubi (1.13.1)
erubis (2.7.0)
excon (1.2.5)
logger
execjs (2.10.0)
factory_bot (6.5.5)
activesupport (>= 6.1.0)
factory_bot_rails (6.5.1)
factory_bot (~> 6.5)
railties (>= 6.1.0)
faker (3.5.2)
faker (3.8.0)
i18n (>= 1.8.11, < 2)
faraday (2.14.0)
faraday (2.14.1)
faraday-net_http (>= 2.0, < 3.5)
json
logger
faraday-net_http (3.4.1)
net-http (>= 0.5.0)
ffi (1.16.3)
faraday-net_http (3.4.2)
net-http (~> 0.5)
ffi (1.17.3)
ffi (1.17.3-x86_64-linux-gnu)
flickraw (0.9.10)
font-awesome-sass (5.15.1)
sassc (>= 1.11)
friendly_id (5.5.1)
friendly_id (5.6.0)
activerecord (>= 4.0.0)
gbifrb (0.2.0)
geocoder (1.8.6)
@@ -293,7 +313,7 @@ GEM
gravatar-ultimate (2.0.0)
activesupport (>= 2.3.14)
rack
haml (7.0.2)
haml (7.2.0)
temple (>= 0.8.2)
thor
tilt
@@ -302,30 +322,24 @@ GEM
activesupport (>= 5.1)
haml (>= 4.0.6)
railties (>= 5.1)
haml_lint (0.67.0)
haml_lint (0.73.0)
haml (>= 5.0)
parallel (~> 1.10)
parallel (>= 1.10)
rainbow
rubocop (>= 1.0)
sysexits (~> 1.1)
hashie (5.0.0)
heroics (0.1.3)
base64
erubis (~> 2.0)
excon
moneta
multi_json (>= 1.9.2)
webrick
hashie (5.1.0)
logger
highline (3.1.2)
reline
http-accept (1.7.0)
http-cookie (1.0.8)
domain_name (~> 0.5)
httparty (0.22.0)
httparty (0.24.0)
csv
mini_mime (>= 1.0.0)
multi_xml (>= 0.5.2)
i18n (1.14.7)
i18n (1.14.8)
concurrent-ruby (~> 1.0)
i18n-tasks (1.1.2)
activesupport (>= 4.0.2)
@@ -341,7 +355,7 @@ GEM
terminal-table (>= 1.5.1)
i18n_data (1.1.0)
simple_po_parser (~> 1.1)
icalendar (2.12.1)
icalendar (2.12.2)
base64
ice_cube (~> 0.16)
logger
@@ -351,19 +365,21 @@ GEM
image_processing (1.12.2)
mini_magick (>= 4.9.5, < 5)
ruby-vips (>= 2.0.17, < 3)
io-console (0.8.1)
irb (1.15.3)
io-console (0.8.2)
irb (1.17.0)
pp (>= 0.6.0)
prism (>= 1.3.0)
rdoc (>= 4.0.0)
reline (>= 0.4.2)
jmespath (1.6.2)
jquery-rails (4.6.1)
rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0)
thor (>= 0.14, < 2.0)
json (2.16.0)
json-schema (6.0.0)
json (2.19.3)
json-schema (6.2.0)
addressable (~> 2.8)
bigdecimal (~> 3.1)
bigdecimal (>= 3.1, < 5)
jsonapi-resources (0.10.7)
activerecord (>= 4.1)
concurrent-ruby
@@ -373,20 +389,22 @@ GEM
kramdown (2.4.0)
rexml
language_server-protocol (3.17.0.5)
launchy (3.0.1)
launchy (3.1.1)
addressable (~> 2.8)
childprocess (~> 5.0)
logger (~> 1.6)
leaflet-rails (1.9.5)
actionpack (>= 4.2.0)
railties (>= 4.2.0)
letter_opener (1.10.0)
launchy (>= 2.2, < 4)
lint_roller (1.1.0)
listen (3.9.0)
listen (3.10.0)
logger
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
logger (1.7.0)
loofah (2.24.1)
loofah (2.25.1)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
mail (2.9.0)
@@ -404,7 +422,7 @@ GEM
sass (>= 3.5.2)
material_icons (4.0.0)
railties (>= 3.2)
matrix (0.4.2)
matrix (0.4.3)
memcachier (0.0.2)
method_source (1.1.0)
mime-types (3.7.0)
@@ -417,14 +435,13 @@ GEM
mini_magick (4.12.0)
mini_mime (1.1.5)
mini_portile2 (2.8.9)
minitest (5.26.2)
moneta (1.0.0)
minitest (5.27.0)
msgpack (1.8.0)
multi_json (1.15.0)
multi_xml (0.7.1)
bigdecimal (~> 3.1)
net-http (0.6.0)
uri
multi_json (1.19.1)
multi_xml (0.8.1)
bigdecimal (>= 3.1, < 5)
net-http (0.9.1)
uri (>= 0.11.1)
net-imap (0.5.12)
date
net-protocol
@@ -436,13 +453,13 @@ GEM
net-protocol
netrc (0.11.0)
nio4r (2.7.5)
nokogiri (1.18.10)
nokogiri (1.19.2)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
nokogiri (1.18.10-x86_64-linux-gnu)
nokogiri (1.19.2-x86_64-linux-gnu)
racc (~> 1.4)
oauth (0.5.6)
oj (3.16.12)
oj (3.17.0)
bigdecimal (>= 3.0)
ostruct (>= 0.2)
omniauth (1.9.2)
@@ -460,35 +477,32 @@ GEM
paper_trail (17.0.0)
activerecord (>= 7.1)
request_store (~> 1.4)
parallel (1.27.0)
parser (3.3.10.0)
parallel (2.0.1)
parser (3.3.11.1)
ast (~> 2.4.1)
racc
percy-capybara (5.0.0)
capybara (>= 3)
pg (1.6.2)
pg (1.6.2-x86_64-linux)
platform-api (3.8.0)
heroics (~> 0.1.1)
moneta (~> 1.0.0)
rate_throttle_client (~> 0.1.0)
pg (1.6.3)
pg (1.6.3-x86_64-linux)
popper_js (2.11.8)
pp (0.6.3)
prettyprint
prettyprint (0.2.0)
prism (1.6.0)
pry (0.15.2)
prism (1.9.0)
pry (0.16.0)
coderay (~> 1.1)
method_source (~> 1.0)
psych (5.2.6)
reline (>= 0.6.0)
psych (5.3.1)
date
stringio
public_suffix (6.0.2)
puma (7.1.0)
public_suffix (7.0.5)
puma (8.0.0)
nio4r (~> 2.0)
query_diet (0.7.3)
racc (1.8.1)
rack (2.2.21)
rack (2.2.23)
rack-cors (2.0.2)
rack (>= 2.0.0)
rack-protection (3.2.0)
@@ -501,20 +515,20 @@ GEM
rackup (1.0.1)
rack (< 3)
webrick
rails (7.2.3)
actioncable (= 7.2.3)
actionmailbox (= 7.2.3)
actionmailer (= 7.2.3)
actionpack (= 7.2.3)
actiontext (= 7.2.3)
actionview (= 7.2.3)
activejob (= 7.2.3)
activemodel (= 7.2.3)
activerecord (= 7.2.3)
activestorage (= 7.2.3)
activesupport (= 7.2.3)
rails (7.2.3.1)
actioncable (= 7.2.3.1)
actionmailbox (= 7.2.3.1)
actionmailer (= 7.2.3.1)
actionpack (= 7.2.3.1)
actiontext (= 7.2.3.1)
actionview (= 7.2.3.1)
activejob (= 7.2.3.1)
activemodel (= 7.2.3.1)
activerecord (= 7.2.3.1)
activestorage (= 7.2.3.1)
activesupport (= 7.2.3.1)
bundler (>= 1.15.0)
railties (= 7.2.3)
railties (= 7.2.3.1)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
actionview (>= 5.0.1.rc1)
@@ -523,8 +537,8 @@ GEM
activesupport (>= 5.0.0)
minitest
nokogiri (>= 1.6)
rails-html-sanitizer (1.6.2)
loofah (~> 2.21)
rails-html-sanitizer (1.7.0)
loofah (~> 2.25)
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
rails-i18n (7.0.10)
i18n (>= 0.7, < 2)
@@ -534,9 +548,9 @@ GEM
rails_stdout_logging
rails_serve_static_assets (0.0.5)
rails_stdout_logging (0.0.5)
railties (7.2.3)
actionpack (= 7.2.3)
activesupport (= 7.2.3)
railties (7.2.3.1)
actionpack (= 7.2.3.1)
activesupport (= 7.2.3.1)
cgi
irb (~> 1.13)
rackup (>= 1.0.0)
@@ -546,19 +560,18 @@ GEM
zeitwerk (~> 2.6)
rainbow (3.1.1)
raindrops (0.20.1)
rake (13.3.1)
rate_throttle_client (0.1.2)
rake (13.4.2)
rb-fsevent (0.11.2)
rb-inotify (0.10.1)
rb-inotify (0.11.1)
ffi (~> 1.0)
rdoc (6.16.1)
rdoc (7.2.0)
erb
psych (>= 4.0.0)
tsort
recaptcha (5.21.1)
redis-client (0.23.2)
recaptcha (5.21.2)
redis-client (0.26.2)
connection_pool
regexp_parser (2.11.3)
regexp_parser (2.12.0)
reline (0.6.3)
io-console (~> 0.5)
request_store (1.7.0)
@@ -586,20 +599,20 @@ GEM
rspec-expectations (3.13.5)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-mocks (3.13.5)
rspec-mocks (3.13.8)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-rails (8.0.2)
rspec-rails (8.0.4)
actionpack (>= 7.2)
activesupport (>= 7.2)
railties (>= 7.2)
rspec-core (~> 3.13)
rspec-expectations (~> 3.13)
rspec-mocks (~> 3.13)
rspec-support (~> 3.13)
rspec-core (>= 3.13.0, < 5.0.0)
rspec-expectations (>= 3.13.0, < 5.0.0)
rspec-mocks (>= 3.13.0, < 5.0.0)
rspec-support (>= 3.13.0, < 5.0.0)
rspec-rebound (0.2.1)
rspec-core (~> 3.3)
rspec-support (3.13.6)
rspec-support (3.13.7)
rspectre (0.2.0)
parser (>= 3.3.7.1)
prism (~> 1.3)
@@ -615,27 +628,27 @@ GEM
rswag-ui (2.17.0)
actionpack (>= 5.2, < 8.2)
railties (>= 5.2, < 8.2)
rubocop (1.81.7)
rubocop (1.86.1)
json (~> 2.3)
language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0)
parallel (~> 1.10)
parallel (>= 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.9.3, < 3.0)
rubocop-ast (>= 1.47.1, < 2.0)
rubocop-ast (>= 1.49.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.48.0)
rubocop-ast (1.49.1)
parser (>= 3.3.7.2)
prism (~> 1.4)
prism (~> 1.7)
rubocop-capybara (2.22.1)
lint_roller (~> 1.1)
rubocop (~> 1.72, >= 1.72.1)
rubocop-factory_bot (2.28.0)
lint_roller (~> 1.1)
rubocop (~> 1.72, >= 1.72.1)
rubocop-rails (2.34.2)
rubocop-rails (2.34.3)
activesupport (>= 4.2.0)
lint_roller (~> 1.1)
rack (>= 1.1)
@@ -644,7 +657,7 @@ GEM
rubocop-rake (0.7.1)
lint_roller (~> 1.1)
rubocop (>= 1.72.1)
rubocop-rspec (3.8.0)
rubocop-rspec (3.9.0)
lint_roller (~> 1.1)
rubocop (~> 1.81)
rubocop-rspec_rails (2.32.0)
@@ -655,7 +668,7 @@ GEM
ruby-units (4.1.0)
ruby-vips (2.2.1)
ffi (~> 1.12)
rubyzip (3.2.1)
rubyzip (3.2.2)
sass (3.7.4)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
@@ -669,25 +682,27 @@ GEM
sprockets (> 3.0)
sprockets-rails
tilt
scout_apm (5.8.0)
scout_apm (6.2.0)
parser
searchkick (5.3.1)
activemodel (>= 6.1)
hashie
securerandom (0.4.1)
selenium-webdriver (4.38.0)
selenium-webdriver (4.43.0)
base64 (~> 0.2)
logger (~> 1.4)
rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 4.0)
websocket (~> 1.0)
sidekiq (7.3.9)
sidekiq (7.3.10)
base64
connection_pool (>= 2.3.0)
connection_pool (>= 2.3.0, < 3)
logger
rack (>= 2.2.4)
redis-client (>= 0.22.2)
rack (>= 2.2.4, < 3.3)
redis-client (>= 0.23.0, < 1)
simple_po_parser (1.1.6)
sitemap_generator (6.3.0)
builder (~> 3.0)
sprockets (3.7.5)
base64
concurrent-ruby (~> 1.0)
@@ -697,35 +712,35 @@ GEM
activesupport (>= 5.2)
sprockets (>= 3.0.0)
ssrf_filter (1.1.2)
stringio (3.1.8)
stringio (3.2.0)
sysexits (1.2.0)
temple (0.10.4)
terminal-table (4.0.0)
unicode-display_width (>= 1.1.1, < 4)
terser (1.2.6)
terser (1.2.7)
execjs (>= 0.3.0, < 3)
thor (1.4.0)
test-queue (0.11.1)
thor (1.5.0)
thread_safe (0.3.6)
tilt (2.6.1)
timecop (0.9.10)
timeout (0.4.4)
tilt (2.7.0)
timecop (0.9.11)
timeout (0.5.0)
tsort (0.2.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
unicode-display_width (3.2.0)
unicode-emoji (~> 4.1)
unicode-emoji (4.1.0)
unicode-emoji (4.2.0)
unicorn (6.1.0)
kgio (~> 2.6)
raindrops (~> 0.7)
uniform_notifier (1.18.0)
uri (1.0.3)
uri (1.1.1)
useragent (0.16.11)
validate_url (1.0.15)
activemodel (>= 3.0.0)
public_suffix
vcr (6.3.1)
base64
vcr (6.4.0)
virtus (2.0.0)
axiom-types (~> 0.1)
coercible (~> 1.0)
@@ -745,11 +760,12 @@ GEM
will_paginate (4.0.1)
will_paginate-bootstrap-style (0.3.0)
will_paginate (~> 4.0, >= 4.0.0)
xmlrpc (0.3.3)
xmlrpc (0.3.4)
rexml
webrick
xpath (3.2.0)
nokogiri (~> 1.8)
zeitwerk (2.7.3)
zeitwerk (2.7.5)
PLATFORMS
ruby
@@ -759,6 +775,7 @@ DEPENDENCIES
active_median
active_record_union
active_utils
aws-sdk-s3 (~> 1, >= 1.114.0)
axe-core-capybara
axe-core-rspec
better_errors
@@ -777,6 +794,7 @@ DEPENDENCIES
chartkick
coffee-rails
comfortable_mexican_sofa!
connection_pool (< 3)
crowdin-cli
csv_shaper
dalli
@@ -821,7 +839,6 @@ DEPENDENCIES
paper_trail (~> 17.0)
percy-capybara (~> 5.0.0)
pg
platform-api
pry
puma
query_diet
@@ -854,8 +871,10 @@ DEPENDENCIES
searchkick
selenium-webdriver
sidekiq
sitemap_generator
sprockets (< 4)
terser
test-queue
timecop
unicorn
validate_url
@@ -866,7 +885,7 @@ DEPENDENCIES
xmlrpc
RUBY VERSION
ruby 3.3.8p144
ruby 3.4.8p72
BUNDLED WITH
2.4.22

View File

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 266 KiB

View File

@@ -33,4 +33,4 @@
@view-transition {
navigation: auto;
}
}

View File

@@ -160,7 +160,7 @@ class CropsController < ApplicationController
when 'youtube'
Crop.approved.where(en_youtube_url: [nil, '']).order(plantings_count: :desc)
when 'alternate_names'
Crop.approved.left_joins(:alternate_names).where(alternate_names: { id: nil }).order(plantings_count: :desc)
Crop.approved.where.missing(:alternate_names).order(plantings_count: :desc)
when 'wikidata'
crops_with_wikidata = Crop.joins(:scientific_names).where.not(scientific_names: { wikidata_id: nil }).distinct
Crop.approved.where.not(id: crops_with_wikidata).order(plantings_count: :desc)
@@ -170,6 +170,8 @@ class CropsController < ApplicationController
Crop.approved.where(sun_requirements: [nil, '']).order(plantings_count: :desc)
when 'height'
Crop.approved.where(height: nil).order(plantings_count: :desc)
when 'public_food_key'
Crop.approved.where(public_food_key: [nil, '']).order(plantings_count: :desc)
else
Crop.none
end

View File

@@ -17,7 +17,7 @@ class FollowsController < ApplicationController
else
flash[:error] = "Already following or error while following."
end
redirect_back fallback_location: root_path
redirect_back_or_to(root_path)
end
def destroy

View File

@@ -10,4 +10,6 @@ class HomeController < ApplicationController
# the relevant class methods directly in the view, so that fragment
# caching will be effective.
end
def community_gardens; end
end

View File

@@ -58,7 +58,11 @@ module CropsHelper
subject_of_entities << {
'@type': "SocialMediaPosting",
url: post_url(post),
author: post.author
author: {
'@type': 'Person',
name: post.author.login_name
},
'datePublished': post.created_at
}
end

View File

@@ -1,2 +1,8 @@
# frozen_string_literal: true
class AustralianFoodClassificationData < ApplicationRecord
belongs_to :crop,
foreign_key: :public_food_key,
primary_key: :public_food_key,
inverse_of: :australian_food_classification_data
end

View File

@@ -53,7 +53,9 @@ module SearchHarvests
owners = []
1..limit.times do
where = {
photos_count: { gt: 0 },
# Disabled for now so that more relevant harvests are
# surfaced; even if we're falling back to crop photos.
# photos_count: { gt: 0 },
owner_id: { not: owners }
}
one_record = search('*',

View File

@@ -66,7 +66,9 @@ module SearchPlantings
owners = []
1..limit.times do
where = {
photos_count: { gt: 0 },
# Disabled for now so that more relevant plantings are
# surfaced; even if we're falling back to crop photos.
# photos_count: { gt: 0 },
owner_id: { not: owners }
}
one_record = search('*',

View File

@@ -28,6 +28,10 @@ class Crop < ApplicationRecord
has_many :companions, through: :crop_companions, source: :crop_b, class_name: 'Crop'
has_many :crop_posts, dependent: :delete_all
has_many :posts, through: :crop_posts, dependent: :delete_all
has_one :australian_food_classification_data,
foreign_key: :public_food_key,
primary_key: :public_food_key,
inverse_of: :crop
accepts_nested_attributes_for :scientific_names, allow_destroy: true, reject_if: :all_blank

View File

@@ -0,0 +1,13 @@
- content_for :title, "Comments"
- content_for :meta_description, "Browse and search for comments."
- content_for :breadcrumbs do
%li.breadcrumb-item.active= link_to "Comments", comments_path
%h1 Comments
= will_paginate @comments
- @comments.each do |comment|
= render 'single', comment: comment
= will_paginate @comments

View File

@@ -0,0 +1,38 @@
- data = crop.australian_food_classification_data
- if data
.card
.card-body
%h4.card-title Nutritional Data
%p.card-text A summary of nutritional data per 100g for #{data.food_name}.
%table.table.table-sm.table-borderless
%tbody
- if data.energy_with_dietary_fibre_equated_kj.to_f > 0
%tr
%th Energy
%td= "#{data.energy_with_dietary_fibre_equated_kj.to_f.round(1)} kJ"
- if data.protein_g.to_f > 0
%tr
%th Protein
%td= "#{data.protein_g.to_f.round(1)} g"
- if data.fat_total_g.to_f > 0
%tr
%th Fat, total
%td= "#{data.fat_total_g.to_f.round(1)} g"
- if data.available_carbohydrate_with_sugar_alcohols_g.to_f > 0
%tr
%th Carbohydrate
%td= "#{data.available_carbohydrate_with_sugar_alcohols_g.to_f.round(1)} g"
- if data.total_sugars_g.to_f > 0
%tr
%th - Sugars
%td= "#{data.total_sugars_g.to_f.round(1)} g"
- if data.total_dietary_fibre_g.to_f > 0
%tr
%th Fibre
%td= "#{data.total_dietary_fibre_g.to_f.round(1)} g"
- if data.sodium_na_mg.to_f > 0
%tr
%th Sodium
%td= "#{data.sodium_na_mg.to_f.round(1)} mg"
.card-footer
= link_to "See more", "https://www.foodstandards.gov.au/science-data/food-nutrient-databases/afcd/search/food/#{data.public_food_key}", target: "_blank", rel: "noopener noreferrer"

View File

@@ -1,10 +1,10 @@
%h1 Data Improvement
- tabs = { photos: "Photos", descriptions: "Descriptions", youtube: "YouTube videos", alternate_names: "Alternate names", wikidata: "Wikidata ID", row_spacing: "Row spacing", sun_requirements: "Sun requirements", height: "Height" }
- tabs = { photos: "Photos", descriptions: "Descriptions", youtube: "YouTube videos", alternate_names: "Alternate names", wikidata: "Wikidata ID", public_food_key: "Public Food Key", row_spacing: "Row spacing", sun_requirements: "Sun requirements", height: "Height" }
%ul.nav.nav-tabs
- tabs.each do |key, value|
%li{class: ('active' if @active_tab == key.to_s)}
%li{class: "nav-item #{('active' if @active_tab == key.to_s)}"}
= link_to value, data_improvement_crops_path(tab: key)
.tab-content

View File

@@ -1,4 +1,5 @@
- content_for :title, t('.title')
- content_for :meta_description, "Browse and search for crops."
- content_for :buttonbar do
- if can? :wrangle, Crop

View File

@@ -1,5 +1,13 @@
= render 'schema_org', crop: @crop
- content_for :title, @crop.name
- content_for :title do
= @crop.name.titleize
- if @crop.default_scientific_name.present?
= " (#{@crop.default_scientific_name})"
- content_for :meta_description do
- if @crop.description.present?
= @crop.description
- else
= "Learn how to grow #{@crop.name}."
- content_for :opengraph do
= tag("meta", property: "og:image", content: crop_image_path(@crop))
= tag("meta", property: "og:title", content: @crop.name)
@@ -128,6 +136,8 @@
= render 'openfarm_data', crop: @crop
= render 'nutritional_data', crop: @crop
= cute_icon
.card
.card-body

View File

@@ -1,5 +1,6 @@
- content_for(:title) do
= title('harvests', @owner, @crop, @planting)
- content_for :meta_description, "Browse and search for harvests."
- content_for :breadcrumbs do
- if @owner
%li.breadcrumb-item= link_to 'Harvests', harvests_path

View File

@@ -1,4 +1,9 @@
= content_for :title, "#{@harvest.crop} harvested by #{@harvest.owner}"
- content_for :meta_description do
- if @harvest.description.present?
= @harvest.description
- else
= "#{@harvest.crop} harvested by #{@harvest.owner}."
- content_for :opengraph do
= tag("meta", property: "og:image", content: harvest_image_path(@harvest))
= tag("meta", property: "og:image:user_generated", content: "true")
@@ -71,3 +76,4 @@
.col-md-4.col-xs-12
= render @harvest.crop
= render 'crops/nutritional_data', crop: @harvest.crop

View File

@@ -9,4 +9,5 @@
%small.text-muted
harvested by #{harvest.owner_login_name}
%p.mb-2
= image_tag harvest.thumbnail_url, width: 75, class: 'rounded shadow', alt: "Image of #{harvest.crop_name} by #{harvest.owner}"
- if harvest.thumbnail_url
= image_tag harvest.thumbnail_url, width: 75, class: 'rounded shadow', alt: "Image of #{harvest.crop_name} by #{harvest.owner}"

View File

@@ -0,0 +1,37 @@
- content_for :title do
= t('community_gardens.title')
- content_for :meta_description do
= t('community_gardens.meta_description')
.container.mt-5
.row
.col-lg-6.col-sm-12
.row
%h1.display-4= t('community_gardens.header')
%p.lead= t('community_gardens.lead')
.row
%h2= t('community_gardens.features_title')
%ul
%li Track all your plantings and harvests
%li Keep notes your community's progress
%li Add collaborators to your garden plots
%li See what other community gardens are growing
%li Get advice and support from our community of gardeners
.row
%h2= t('community_gardens.get_started')
%p= t('community_gardens.get_started_text')
%p
= link_to t('.sign_up'), new_member_registration_path, class: 'btn btn-success btn-lg'
.row
%h2= t('community_gardens.collaborate')
%p= t('community_gardens.collaborate_text')
%p
= link_to t('community_gardens.learn_more'), gardens_path, class: 'btn btn-info btn-lg'
.col-lg-6.d-lg-block.d-xs-none
.container
=image_tag("girlwithvegetables-0038331hotifw.svg", width: "100%")

View File

@@ -1,5 +1,7 @@
- content_for :title do
= ENV['GROWSTUFF_SITE_NAME']
- content_for :meta_description do
Growstuff is a community of food gardeners. Let's learn to grow food together.
- if member_signed_in?
.row

View File

@@ -27,9 +27,14 @@
%title
= content_for?(:title) ? yield(:title) + " - #{ENV['GROWSTUFF_SITE_NAME']} " : ENV['GROWSTUFF_SITE_NAME']
- if content_for?(:meta_description)
%meta{name: "description", content: yield(:meta_description)}
- else
%meta{name: "description", content: "Growstuff is a community of food gardeners. Let's learn to grow food together. All our data is open data."}
= csrf_meta_tags
= stylesheet_link_tag "application", media: "all"
%link{ href: path_to_image("growstuff-apple-touch-icon-precomposed.png"), rel: "apple-touch-icon-precomposed" }
%link{ href: "https://fonts.googleapis.com/css?family=Modak|Raleway&display=swap", rel: "stylesheet" }
= favicon_link_tag 'favicon.ico'
= tag("meta", name: "google-site-verification", content: "j249rPGdBqZ7gcShcdsSXCnGN5lqCuTISJnlQXxOfu4")

View File

@@ -52,6 +52,7 @@
.dropdown-menu{"aria-labelledby" => "navbarDropdown"}
= link_to t('.community_map'), places_path, class: 'dropdown-item'
= link_to t('.browse_members'), members_path, class: 'dropdown-item'
= link_to t('.community_gardens'), community_gardens_path, class: 'dropdown-item'
= link_to t('.posts'), posts_path, class: 'dropdown-item'
= link_to t('.forums'), forums_path, class: 'dropdown-item'

View File

@@ -1,4 +1,9 @@
- content_for :title, @member.login_name
- content_for :meta_description do
- if @member.bio.present?
= @member.bio
- else
= "Gardening profile for #{@member.login_name}."
- content_for :opengraph do
= tag("meta", property: "og:image", content: avatar_uri(@member, 200))
= tag("meta", property: "og:image:user_generated", content: "true")

View File

@@ -1,4 +1,5 @@
- content_for :title, title('plantings', @owner, @crop, @planting)
- content_for :meta_description, "Browse and search for plantings."
- content_for :breadcrumbs do
- if @owner

View File

@@ -1,4 +1,9 @@
= content_for :title, "#{@planting.crop} in #{@planting.location}"
- content_for :meta_description do
- if @planting.description.present?
= @planting.description
- else
= "#{@planting.crop} planted in #{@planting.location} by #{@planting.owner}."
- content_for :opengraph do
= tag("meta", property: "og:image", content: planting_image_path(@planting))
= tag("meta", property: "og:title", content: "#{@planting.crop} in #{@planting.location}")

View File

@@ -27,7 +27,7 @@
.form-group
= f.label :wikidata_id, "Wikidata ID", class: 'control-label col-md-2'
.col-md-8
= f.text_field :wikidata_id, class: 'form-control'
= f.text_field :wikidata_id, class: 'form-control', pattern: 'Q[1-9][0-9]*'
.form-group
.form-actions.col-md-offset-2.col-md-8
= f.submit 'Save', class: 'btn btn-primary'

View File

@@ -6,6 +6,7 @@
%li.breadcrumb-item.active= link_to 'Seeds', seeds_path
- content_for :title, title('seeds', @owner, @crop, @planting)
- content_for :meta_description, "Browse and search for seeds."
.row
.col-md-2

View File

@@ -1,4 +1,9 @@
- content_for :title, "#{@seed.owner}'s #{@seed.crop} seeds"
- content_for :meta_description do
- if @seed.description.present?
= @seed.description
- else
= "Seeds for #{@seed.crop.name}, shared by #{@seed.owner}."
- content_for :opengraph do
= tag("meta", property: "og:image", content: seed_image_path(@seed))
- if @seed.description

View File

@@ -3,4 +3,6 @@
# This file is used by Rack-based servers to start the application.
require File.expand_path('config/environment', __dir__)
use Rack::Deflater
run Rails.application

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
# Be sure to restart your server when you modify this file.
#
# This file contains migration options to ease your Rails 6.0 upgrade.

View File

@@ -219,6 +219,18 @@ en:
pwa_ios_steps_html: 1. Tap the <strong>Share</strong> button in Safari.<br>2. Scroll down and tap <strong>Add to Home Screen</strong>'.
pwa_ios_title: For iOS (iPhone/iPad)
pwa_title: Want to install Growstuff on your phone?
community_gardens:
title: Community Gardens on Growstuff
meta_description: Manage your community garden, track your plantings, and collaborate with other gardeners.
header: Community Gardens
lead: Growstuff is open source and the perfect place to manage your community garden. Track your plantings, celebrate your harvests, and collaborate with your fellow gardeners, all in one place.
get_started: Get Started Today
get_started_text: Signing up for Growstuff is free and easy. Create an account to start tracking your garden today.
sign_up: Sign up for free
collaborate: Collaborate with Your Team
collaborate_text: Invite other gardeners to collaborate on your garden plots. Share the work, share the harvest, and grow together as a community.
learn_more: Learn more about gardens
features_title: Features for Community Gardens
label:
days_until_harvest: "%{number} days"
weeks_until_harvest: "%{number} weeks until harvest"
@@ -235,6 +247,7 @@ en:
browse_members: Browse Members
community: Community
community_map: Community Map
community_gardens: Community Gardens
garden_type: Garden Type
garden_types: Garden Types
crop_wrangling: Crop Wrangling

View File

@@ -23,6 +23,7 @@ Rails.application.routes.draw do
resources :authentications, only: %i(create destroy)
get "home/index"
get '/community-gardens', to: 'home#community_gardens'
root to: 'home#index'
concern :has_photos do

55
config/sitemap.rb Normal file
View File

@@ -0,0 +1,55 @@
# frozen_string_literal: true
require 'aws-sdk-s3'
# Set the host name for URL creation
SitemapGenerator::Sitemap.default_host = 'https://growstuff.org'
SitemapGenerator::Sitemap.adapter = SitemapGenerator::AwsSdkAdapter.new(
ENV['S3_SITEMAP_BUCKET'],
access_key_id: ENV['S3_ACCESS_KEY'],
secret_access_key: ENV['S3_SECRET_KEY'],
region: ENV.fetch('S3_AWS_REGION', 'us-east-1')
)
SitemapGenerator::Sitemap.create do
# Add static pages
add '/about', changefreq: 'monthly'
add '/community', changefreq: 'monthly'
add '/contact', changefreq: 'monthly'
# Add crops
Crop.approved.find_each do |crop|
add crop_path(crop), lastmod: crop.updated_at
end
# Add members
Member.kept.find_each do |member|
add member_path(member), lastmod: member.updated_at
end
# Add plantings
Planting.active.find_each do |planting|
add planting_path(planting), lastmod: planting.updated_at
end
# Add seeds
Seed.active.find_each do |seed|
add seed_path(seed), lastmod: seed.updated_at
end
# Add harvests
Harvest.find_each do |harvest|
add harvest_path(harvest), lastmod: harvest.updated_at
end
# Add posts
Post.find_each do |post|
add post_path(post), lastmod: post.updated_at
end
# Add photos
Photo.find_each do |photo|
add photo_path(photo), lastmod: photo.updated_at
end
end

View File

@@ -18,7 +18,6 @@ class AllThePredictions < ActiveRecord::Migration[4.2]
remove_column :plantings, :days_before_maturity, :integer
create_table :median_functions do |t|
end
create_table :median_functions
end
end

View File

@@ -14,23 +14,23 @@ class AddLikeCounterCaches < ActiveRecord::Migration[5.2]
end
def data
execute <<-SQL.squish
UPDATE photos
SET likes_count = (
SELECT count(1)
FROM likes
WHERE likes.likeable_id = photos.id
AND likeable_type = 'Photo'
)
execute <<~SQL.squish
UPDATE photos
SET likes_count = (
SELECT count(1)
FROM likes
WHERE likes.likeable_id = photos.id
AND likeable_type = 'Photo'
)
SQL
execute <<-SQL.squish
UPDATE posts
SET likes_count = (
SELECT count(1)
FROM likes
WHERE likes.likeable_id = posts.id
AND likeable_type = 'Post'
)
execute <<~SQL.squish
UPDATE posts
SET likes_count = (
SELECT count(1)
FROM likes
WHERE likes.likeable_id = posts.id
AND likeable_type = 'Post'
)
SQL
end
end

View File

@@ -11,13 +11,13 @@ class CropHarvestCounterCache < ActiveRecord::Migration[5.2]
end
def set_counter_value
execute <<-SQL.squish
UPDATE crops
SET harvests_count = (
SELECT count(1)
FROM harvests
WHERE harvests.crop_id = crops.id
)
execute <<~SQL.squish
UPDATE crops
SET harvests_count = (
SELECT count(1)
FROM harvests
WHERE harvests.crop_id = crops.id
)
SQL
end
end

View File

@@ -11,13 +11,13 @@ class CropPhotoCounterCache < ActiveRecord::Migration[5.2]
end
def set_counter_value
execute <<-SQL.squish
UPDATE crops
SET photo_associations_count = (
SELECT count(1)
FROM photo_associations
WHERE photo_associations.crop_id = crops.id
)
execute <<~SQL.squish
UPDATE crops
SET photo_associations_count = (
SELECT count(1)
FROM photo_associations
WHERE photo_associations.crop_id = crops.id
)
SQL
end
end

View File

@@ -11,13 +11,13 @@ class PlantPartHarvestCounterCache < ActiveRecord::Migration[5.2]
end
def set_counter_value
execute <<-SQL.squish
UPDATE plant_parts
SET harvests_count = (
SELECT count(1)
FROM harvests
WHERE harvests.plant_part_id = plant_parts.id
)
execute <<~SQL.squish
UPDATE plant_parts
SET harvests_count = (
SELECT count(1)
FROM harvests
WHERE harvests.plant_part_id = plant_parts.id
)
SQL
end
end

View File

@@ -11,7 +11,7 @@ class PostCommentCounterCache < ActiveRecord::Migration[5.2]
end
def set_counter_value
execute <<-SQL.squish
execute <<~SQL.squish
UPDATE posts
SET comments_count = (
SELECT count(1)

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
# This migration comes from active_storage (originally 20180723000244)
class AddForeignKeyConstraintToActiveStorageAttachmentsForBlobId < ActiveRecord::Migration[6.0]
def up

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
class AddFieldsToCrops < ActiveRecord::Migration[5.2]
def change
add_column :crops, :row_spacing, :integer

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
class PopulateCropFieldsFromOpenfarmData < ActiveRecord::Migration[5.2]
def up
Crop.find_each do |crop|

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
class AddSocialMediaToMembers < ActiveRecord::Migration[6.0]
def change
add_column :members, :website_url, :string

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
class RenameOtherHandleToOtherUrlInMembers < ActiveRecord::Migration[6.0]
def change
rename_column :members, :other_handle, :other_url

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
class CreateGardenCollaborators < ActiveRecord::Migration[7.2]
def change
create_table :garden_collaborators do |t|

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
class CreateAustralianFoodClassificationData < ActiveRecord::Migration[5.2]
def change
create_table :australian_food_classification_data do |t|

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
class MakeNotificationsPolymorphic < ActiveRecord::Migration[6.1]
def change
add_column :notifications, :notifiable_type, :string

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
class ChangeCommentsPolymorphic < ActiveRecord::Migration[7.2]
def change
add_column :comments, :commentable_type, :string

View File

@@ -11,7 +11,7 @@ class AddPhotosCommentCount < ActiveRecord::Migration[7.2]
end
def set_counter_value
execute <<-SQL.squish
execute <<~SQL.squish
UPDATE photos
SET comments_count = (
SELECT count(1)

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
class AddSourceToSeeds < ActiveRecord::Migration[7.2]
def change
add_column :seeds, :source, :string

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
class AddIndexesCrops < ActiveRecord::Migration[7.2]
def change
add_index :alternate_names, :crop_id

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
class AddOverallRatingPlantings < ActiveRecord::Migration[7.2]
def change
add_column :plantings, :overall_rating, :integer

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
class AddEnYoutubeUrlToCrops < ActiveRecord::Migration[7.2]
def change
add_column :crops, :en_youtube_url, :string

View File

@@ -1,7 +1,8 @@
# frozen_string_literal: true
# This migration creates the `versions` table for the Version class.
# All other migrations PT provides are optional.
class CreateVersions < ActiveRecord::Migration[7.2]
# The largest text column available in all supported RDBMS is
# 1024^3 - 1 bytes, roughly one gibibyte. We specify a size
# so that MySQL will use `longtext` instead of `text`. Otherwise,

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
# This migration adds the optional `object_changes` column, in which PaperTrail
# will store the `changes` diff for each update event. See the readme for
# details.

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
class AddPublicFoodKeyToCrops < ActiveRecord::Migration[5.2]
def change
add_column :crops, :public_food_key, :string

View File

@@ -0,0 +1,7 @@
# frozen_string_literal: true
class AddIndexToCropsPublicFoodKey < ActiveRecord::Migration[7.2]
def change
add_index :crops, :public_food_key
end
end

View File

@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.2].define(version: 2025_11_30_053104) do
ActiveRecord::Schema[7.2].define(version: 2025_12_01_045000) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -564,6 +564,7 @@ ActiveRecord::Schema[7.2].define(version: 2025_11_30_053104) do
t.index ["creator_id"], name: "index_crops_on_creator_id"
t.index ["name"], name: "index_crops_on_name"
t.index ["parent_id"], name: "index_crops_on_parent_id"
t.index ["public_food_key"], name: "index_crops_on_public_food_key"
t.index ["requester_id"], name: "index_crops_on_requester_id"
t.index ["slug"], name: "index_crops_on_slug", unique: true
end

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'csv'
namespace :import do

View File

@@ -13,45 +13,65 @@ namespace :wikidata do
end
Crop.all.each do |crop|
next unless crop.en_wikipedia_url.present?
puts "Processing crop: #{crop.name}"
wikidata_id = nil
begin
title = crop.en_wikipedia_url.split('/').last
puts "Processing crop: #{crop.name} (Wikipedia title: #{title})"
# Try to find Wikidata ID from the scientific_names table first
if (sci_name_with_id = crop.scientific_names.find { |sn| sn.wikidata_id.present? })
wikidata_id = sci_name_with_id.wikidata_id
puts " Found Wikidata ID in scientific_names table: #{wikidata_id}"
# If not found, try the existing en_wikipedia_url method
elsif crop.en_wikipedia_url.present?
begin
title = crop.en_wikipedia_url.split('/').last
puts " Searching for Wikidata ID using Wikipedia URL: #{crop.en_wikipedia_url}"
# Get Wikidata ID from Wikipedia API
wiki_uri = URI("https://en.wikipedia.org/w/api.php?action=query&prop=pageprops&titles=#{title}&format=json")
wiki_response = Net::HTTP.get(wiki_uri)
wiki_data = JSON.parse(wiki_response)
page_id = wiki_data['query']['pages'].keys.first
wikidata_id = wiki_data['query']['pages'][page_id]['pageprops']['wikibase_item']
# Get Wikidata ID from Wikipedia API
wiki_uri = URI("https://en.wikipedia.org/w/api.php?action=query&prop=pageprops&titles=#{title}&format=json")
wiki_response = Net::HTTP.get(wiki_uri)
wiki_data = JSON.parse(wiki_response)
pages = wiki_data['query']['pages']
page_id = pages.keys.first
if wikidata_id
puts " Found Wikidata ID: #{wikidata_id}"
if page_id != "-1" && pages[page_id]['pageprops'] && pages[page_id]['pageprops']['wikibase_item']
wikidata_id = pages[page_id]['pageprops']['wikibase_item']
puts " Found Wikidata ID via Wikipedia URL: #{wikidata_id}"
end
rescue StandardError => e
puts " Error querying Wikipedia for URL #{crop.en_wikipedia_url}: #{e.message}"
end
end
if wikidata_id
begin
# Get aliases from Wikidata API
wikidata_uri = URI("https://www.wikidata.org/w/api.php?action=wbgetentities&ids=#{wikidata_id}&props=aliases&format=json")
wikidata_response = Net::HTTP.get(wikidata_uri)
wikidata_data = JSON.parse(wikidata_response)
aliases = wikidata_data['entities'][wikidata_id]['aliases']
aliases.each do |lang, values|
values.each do |value|
next if AlternateName.exists?(name: value['value'], language: lang, crop: crop)
aliases = wikidata_data.dig('entities', wikidata_id, 'aliases')
if aliases
aliases.each do |lang, values|
values.each do |value|
next if AlternateName.exists?(name: value['value'], language: lang, crop: crop)
AlternateName.create!(
name: value['value'],
language: lang,
crop: crop,
creator: creator
)
puts " Added alternate name: #{value['value']} (#{lang})"
AlternateName.create!(
name: value['value'],
language: lang,
crop: crop,
creator: creator
)
puts " Added alternate name: #{value['value']} (#{lang})"
end
end
else
puts " No aliases found for Wikidata ID: #{wikidata_id}"
end
else
puts " Could not find Wikidata ID for #{crop.name}"
rescue StandardError => e
puts " Error processing Wikidata aliases for #{crop.name}: #{e.message}"
end
rescue StandardError => e
puts " Error processing crop #{crop.name}: #{e.message}"
else
puts " Could not find Wikidata ID for #{crop.name}"
end
end
end

View File

@@ -14,9 +14,8 @@
"@coffeelint/cli": "^3.0.0",
"@percy/cli": "^1.0.0-beta.76",
"csslint": "^1.0.5",
"eslint": "^5.0.0",
"eslint-config-google": "^0.9.1",
"jshint": "^2.9.4"
"eslint": "^10.0.0",
"eslint-config-google": "^0.9.1"
},
"repository": {
"type": "git",

View File

@@ -140,3 +140,5 @@ Crawl-delay: 5
#
User-agent: *
Disallow: /api/
Sitemap: https://growstuff-prod.s3.us-west-2.amazonaws.com/sitemap.xml.gz

View File

@@ -14,7 +14,7 @@ describe AdminController do
end
describe 'assigns @members' do
let!(:m) { FactoryBot.create(:newsletter_recipient_member) }
let!(:m) { create(:newsletter_recipient_member) }
it { expect(assigns(:members)).to eq [m] }
end

View File

@@ -2,17 +2,17 @@
require 'rails_helper'
RSpec.describe Api::V1::PlantingsController, type: :controller do
RSpec.describe Api::V1::PlantingsController do
subject { JSON.parse response.body }
let!(:member) { FactoryBot.create(:member) }
let!(:member) { create(:member) }
describe '#index' do
let(:matching_planting) { subject['data'].select { |planting| planting['id'] == my_planting.id.to_s }.first }
describe 'GET #index' do
context 'basic planting' do
let!(:my_planting) { FactoryBot.create(:planting, owner: member, planted_at: '2000-01-01') }
let!(:my_planting) { create(:planting, owner: member, planted_at: '2000-01-01') }
let(:expected_attributes) do
{
'crop-name' => my_planting.crop.name,
@@ -42,11 +42,11 @@ RSpec.describe Api::V1::PlantingsController, type: :controller do
it { expect(matching_planting).to include('id' => my_planting.id.to_s) }
it { expect(matching_planting['attributes']).to eq expected_attributes }
it { expect(response.status).to eq 200 }
it { expect(response).to have_http_status :ok }
end
context 'with photo' do
let!(:my_planting) { FactoryBot.create(:planting, owner: member, planted_at: '2000-01-01') }
let!(:my_planting) { create(:planting, owner: member, planted_at: '2000-01-01') }
let(:expected_attributes) do
{
@@ -72,7 +72,7 @@ RSpec.describe Api::V1::PlantingsController, type: :controller do
'thumbnail' => photo.thumbnail_url
}
end
let(:photo) { FactoryBot.create(:photo, owner: my_planting.owner) }
let(:photo) { create(:photo, owner: my_planting.owner) }
before do
my_planting.photos << photo
@@ -81,7 +81,7 @@ RSpec.describe Api::V1::PlantingsController, type: :controller do
it { expect(matching_planting).to include('id' => my_planting.id.to_s) }
it { expect(matching_planting['attributes']).to eq expected_attributes }
it { expect(response.status).to eq 200 }
it { expect(response).to have_http_status :ok }
end
end
end

View File

@@ -4,10 +4,10 @@ require 'rails_helper'
describe AuthenticationsController do
before do
@member = FactoryBot.create(:member)
@member = create(:member)
sign_in @member
controller.stub(:current_member) { @member }
@auth = FactoryBot.create(:authentication, member: @member)
@auth = create(:authentication, member: @member)
request.env['omniauth.auth'] = {
'provider' => 'foo',
'uid' => 'bar',

View File

@@ -4,7 +4,7 @@ require 'rails_helper'
describe Charts::CropsController do
describe 'GET charts' do
let(:crop) { FactoryBot.create(:crop) }
let(:crop) { create(:crop) }
describe 'sunniness' do
before { get :sunniness, params: { crop_slug: crop.to_param } }

View File

@@ -5,7 +5,7 @@ require 'rails_helper'
describe Charts::GardensController do
include Devise::Test::ControllerHelpers
let(:garden) { FactoryBot.create(:garden) }
let(:garden) { create(:garden) }
context "when not signed in" do
describe 'GET timeline' do
@@ -18,7 +18,7 @@ describe Charts::GardensController do
context "when signed in" do
before { sign_in member }
let!(:member) { FactoryBot.create(:member) }
let!(:member) { create(:member) }
describe 'GET timeline' do
before { get :timeline, params: { garden_slug: garden.to_param } }

View File

@@ -5,7 +5,7 @@ require 'rails_helper'
describe CommentsController do
subject { response }
let(:member) { FactoryBot.create(:member) }
let(:member) { create(:member) }
before do
sign_in member
@@ -13,13 +13,13 @@ describe CommentsController do
end
def valid_attributes
@post = FactoryBot.create(:post)
@post = create(:post)
{ post_id: @post.id, body: "some text" }
end
describe "GET RSS feed" do
let!(:first_comment) { FactoryBot.create(:comment, created_at: 10.days.ago) }
let!(:last_comment) { FactoryBot.create(:comment, created_at: 4.minutes.ago) }
let!(:first_comment) { create(:comment, created_at: 10.days.ago) }
let!(:last_comment) { create(:comment, created_at: 4.minutes.ago) }
describe "returns an RSS feed" do
before { get :index, format: "rss" }
@@ -32,7 +32,7 @@ describe CommentsController do
end
describe "GET new" do
let(:post) { FactoryBot.create(:post) }
let(:post) { create(:post) }
describe "with valid params" do
before do
@@ -41,7 +41,7 @@ describe CommentsController do
}
end
let(:old_comment) { FactoryBot.create(:comment, commentable: post) }
let(:old_comment) { create(:comment, commentable: post) }
it "picks up post from params" do
expect(assigns(:commentable)).to eq(post)
@@ -59,13 +59,13 @@ describe CommentsController do
end
describe "GET edit" do
let(:post) { FactoryBot.create(:post) }
let(:post) { create(:post) }
before { get :edit, params: { id: comment.to_param } }
describe "my comment" do
let!(:comment) { FactoryBot.create(:comment, author: member, commentable: post) }
let!(:old_comment) { FactoryBot.create(:comment, commentable: post, created_at: Time.zone.yesterday) }
let!(:comment) { create(:comment, author: member, commentable: post) }
let!(:old_comment) { create(:comment, commentable: post, created_at: Time.zone.yesterday) }
it "assigns previous comments as @comments" do
expect(assigns(:comments)).to eq([comment, old_comment])
@@ -73,7 +73,7 @@ describe CommentsController do
end
describe "not my comment" do
let(:comment) { FactoryBot.create(:comment, commentable: post) }
let(:comment) { create(:comment, commentable: post) }
it { expect(response).not_to be_successful }
end
@@ -83,7 +83,7 @@ describe CommentsController do
before { put :update, params: { id: comment.to_param, comment: valid_attributes } }
describe "my comment" do
let(:comment) { FactoryBot.create(:comment, author: member) }
let(:comment) { create(:comment, author: member) }
it "redirects to the comment's post" do
expect(response).to redirect_to(comment.commentable)
@@ -91,16 +91,16 @@ describe CommentsController do
end
describe "not my comment" do
let(:comment) { FactoryBot.create(:comment) }
let(:comment) { create(:comment) }
it { expect(response).not_to be_successful }
end
describe "attempting to change post_id" do
let(:post) { FactoryBot.create(:post, subject: 'our post') }
let(:other_post) { FactoryBot.create(:post, subject: 'the other post') }
let(:post) { create(:post, subject: 'our post') }
let(:other_post) { create(:post, subject: 'the other post') }
let(:valid_attributes) { { commentable_type: "Post", commentable_id: other_post.id, body: "kōrero" } }
let(:comment) { FactoryBot.create(:comment, author: member, commentable: post) }
let(:comment) { create(:comment, author: member, commentable: post) }
it "does not change post_id" do
comment.reload
@@ -113,7 +113,7 @@ describe CommentsController do
before { delete :destroy, params: { id: comment.to_param } }
describe "my comment" do
let(:comment) { FactoryBot.create(:comment, author: member) }
let(:comment) { create(:comment, author: member) }
it "redirects to the post the comment was on" do
expect(response).to redirect_to(comment.commentable)
@@ -121,7 +121,7 @@ describe CommentsController do
end
describe "not my comment" do
let(:comment) { FactoryBot.create(:comment) }
let(:comment) { create(:comment) }
it { expect(response).not_to be_successful }
end

View File

@@ -42,8 +42,8 @@ describe CropsController do
describe "GET crop search" do
describe 'fetches the crop search page' do
let!(:tomato) { FactoryBot.create(:tomato) }
let!(:maize) { FactoryBot.create(:maize) }
let!(:tomato) { create(:tomato) }
let!(:maize) { create(:maize) }
before { Crop.reindex }
@@ -140,7 +140,7 @@ describe CropsController do
describe 'DELETE destroy' do
subject { delete :destroy, params: { slug: crop.to_param } }
let!(:crop) { FactoryBot.create(:crop) }
let!(:crop) { create(:crop) }
context 'not logged in' do
it { expect { subject }.not_to change(Crop, :count) }

View File

@@ -2,11 +2,11 @@
require 'rails_helper'
RSpec.describe GardenTypesController, type: :controller do
RSpec.describe GardenTypesController do
include Devise::Test::ControllerHelpers
let(:valid_params) { { name: 'My second GardenType' } }
let(:garden_type) { FactoryBot.create(:garden_type) }
let(:garden_type) { create(:garden_type) }
context "when not signed in" do
describe 'GET new' do
@@ -54,7 +54,7 @@ RSpec.describe GardenTypesController, type: :controller do
context "when signed in as a member" do
before { sign_in member }
let!(:member) { FactoryBot.create(:member) }
let!(:member) { create(:member) }
describe "for any garden_type" do
let(:any_garden_type) { double('garden_type') }

View File

@@ -2,12 +2,12 @@
require 'rails_helper'
RSpec.describe GardensController, type: :controller do
RSpec.describe GardensController do
include Devise::Test::ControllerHelpers
let(:valid_params) { { name: 'My second Garden' } }
let(:garden) { FactoryBot.create(:garden) }
let(:garden) { create(:garden) }
context "when not signed in" do
describe 'GET new' do
@@ -55,7 +55,7 @@ RSpec.describe GardensController, type: :controller do
context "when signed in" do
before { sign_in member }
let!(:member) { FactoryBot.create(:member) }
let!(:member) { create(:member) }
describe "for another member's garden" do
let(:not_my_garden) { double('garden') }

View File

@@ -8,19 +8,19 @@ describe HarvestsController, :search do
def valid_attributes
{
owner_id: subject.current_member.id,
crop_id: FactoryBot.create(:crop).id,
plant_part_id: FactoryBot.create(:plant_part).id,
crop_id: create(:crop).id,
plant_part_id: create(:plant_part).id,
harvested_at: '2017-01-01'
}
end
describe "GET index" do
let!(:member1) { FactoryBot.create(:member) }
let(:member2) { FactoryBot.create(:member) }
let(:tomato) { FactoryBot.create(:tomato) }
let(:maize) { FactoryBot.create(:maize) }
let!(:harvest1) { FactoryBot.create(:harvest, owner_id: member1.id, crop_id: tomato.id) }
let!(:harvest2) { FactoryBot.create(:harvest, owner_id: member2.id, crop_id: maize.id) }
let!(:member1) { create(:member) }
let(:member2) { create(:member) }
let(:tomato) { create(:tomato) }
let(:maize) { create(:maize) }
let!(:harvest1) { create(:harvest, owner_id: member1.id, crop_id: tomato.id) }
let!(:harvest2) { create(:harvest, owner_id: member2.id, crop_id: maize.id) }
before { Harvest.reindex }
@@ -51,7 +51,7 @@ describe HarvestsController, :search do
describe "generates a csv" do
before { get :index, format: "csv" }
it { expect(response.status).to eq 200 }
it { expect(response).to have_http_status :ok }
end
end
@@ -109,7 +109,7 @@ describe HarvestsController, :search do
end
describe "links to planting" do
let(:planting) { FactoryBot.create(:planting, owner_id: member.id, garden: member.gardens.first) }
let(:planting) { create(:planting, owner_id: member.id, garden: member.gardens.first) }
before { post :create, params: { harvest: valid_attributes.merge(planting_id: planting.id) } }
@@ -134,8 +134,8 @@ describe HarvestsController, :search do
end
describe "not my planting" do
let(:not_my_planting) { FactoryBot.create(:planting) }
let(:harvest) { FactoryBot.create(:harvest) }
let(:not_my_planting) { create(:planting) }
let(:harvest) { create(:harvest) }
describe "does not save planting_id" do
before do
@@ -153,7 +153,7 @@ describe HarvestsController, :search do
let(:harvest) { Harvest.create! valid_attributes }
it "updates the requested harvest" do
new_crop = FactoryBot.create(:crop)
new_crop = create(:crop)
expect do
put :update, params: { slug: harvest.to_param, harvest: { crop_id: new_crop.id } }
harvest.reload
@@ -190,8 +190,8 @@ describe HarvestsController, :search do
end
describe "not my planting" do
let(:not_my_planting) { FactoryBot.create(:planting) }
let(:harvest) { FactoryBot.create(:harvest) }
let(:not_my_planting) { create(:planting) }
let(:harvest) { create(:harvest) }
describe "does not save planting_id" do
before do

View File

@@ -1,8 +0,0 @@
# frozen_string_literal: true
require 'rails_helper'
describe HomeController do
describe "GET index" do
end
end

View File

@@ -3,9 +3,9 @@
require 'rails_helper'
describe LikesController do
let(:like) { FactoryBot.create(:like, member:) }
let(:member) { FactoryBot.create(:member) }
let(:blogpost) { FactoryBot.create(:post) }
let(:like) { create(:like, member:) }
let(:member) { create(:member) }
let(:blogpost) { create(:post) }
before { sign_in member }
@@ -19,10 +19,7 @@ describe LikesController do
it { JSON.parse(response.body)["description"] == "1 like" }
describe "Liking someone else's post" do
it { expect(response.code).to eq('201') }
end
describe "Liking your own post" do
it { expect(response).to have_http_status(:created) }
end
end
@@ -32,14 +29,14 @@ describe LikesController do
it { expect(response.content_type).to eq "application/json; charset=utf-8" }
describe "un-liking something i liked before" do
it { expect(response.code).to eq('200') }
it { expect(response).to have_http_status(:ok) }
it { JSON.parse(response.body)["description"] == "0 likes" }
end
describe "Deleting someone else's like" do
let(:like) { FactoryBot.create(:like) }
let(:like) { create(:like) }
it { expect(response.code).to eq('403') }
it { expect(response).to have_http_status(:forbidden) }
it { JSON.parse(response.body)["error"] == "Unable to like" }
end
end

View File

@@ -4,8 +4,8 @@ require 'rails_helper'
describe MembersController do
before do
@member = FactoryBot.create(:member)
@flickr_auth = FactoryBot.create(:flickr_authentication, member: @member)
@member = create(:member)
@flickr_auth = create(:flickr_authentication, member: @member)
end
describe "GET index" do
@@ -39,7 +39,7 @@ describe MembersController do
end
it "doesn't show unconfirmed members" do
@member2 = FactoryBot.create(:unconfirmed_member)
@member2 = create(:unconfirmed_member)
get :show, params: { slug: @member2.id }
expect(response).to have_http_status(:not_found)
end

View File

@@ -17,8 +17,8 @@ describe PhotoAssociationsController do
before { photo.harvests << harvest }
describe "my harvest my photo" do
let(:harvest) { FactoryBot.create(:harvest, owner: member) }
let(:photo) { FactoryBot.create(:photo, owner: member) }
let(:harvest) { create(:harvest, owner: member) }
let(:photo) { create(:photo, owner: member) }
it "removes link" do
expect { delete :destroy, params: valid_params }.to change { photo.harvests.count }.by(-1)
@@ -26,8 +26,8 @@ describe PhotoAssociationsController do
end
describe "another member's harvest from another member's photo" do
let(:harvest) { FactoryBot.create(:harvest, owner: photo.owner) }
let(:photo) { FactoryBot.create(:photo) }
let(:harvest) { create(:harvest, owner: photo.owner) }
let(:photo) { create(:photo) }
it do
expect do

View File

@@ -7,7 +7,7 @@ describe PhotosController, :search do
describe 'GET index' do
describe 'all photos' do
let!(:photo) { FactoryBot.create(:photo, :reindex) }
let!(:photo) { create(:photo, :reindex) }
before do
Photo.reindex
@@ -21,10 +21,10 @@ describe PhotosController, :search do
end
describe '#index crop photos' do
let!(:photo) { FactoryBot.create(:photo, :reindex, owner: member, title: 'no assocations photo') }
let!(:crop_photo) { FactoryBot.create(:photo, :reindex, owner: member, title: 'photos of planting') }
let!(:planting) { FactoryBot.create(:planting, :reindex, crop:, owner: member) }
let!(:crop) { FactoryBot.create(:crop, :reindex) }
let!(:photo) { create(:photo, :reindex, owner: member, title: 'no assocations photo') }
let!(:crop_photo) { create(:photo, :reindex, owner: member, title: 'photos of planting') }
let!(:planting) { create(:planting, :reindex, crop:, owner: member) }
let!(:crop) { create(:crop, :reindex) }
before do
planting.photos << crop_photo
@@ -49,12 +49,12 @@ describe PhotosController, :search do
end
describe "GET new" do
let(:tomato) { FactoryBot.create(:tomato) }
let(:planting) { FactoryBot.create(:planting, crop: tomato, owner: member) }
let(:garden) { FactoryBot.create(:garden, owner: member) }
let(:harvest) { FactoryBot.create(:harvest, owner: member) }
let(:member) { FactoryBot.create(:member) }
let!(:auth) { FactoryBot.create(:flickr_authentication, member:) }
let(:tomato) { create(:tomato) }
let(:planting) { create(:planting, crop: tomato, owner: member) }
let(:garden) { create(:garden, owner: member) }
let(:harvest) { create(:harvest, owner: member) }
let(:member) { create(:member) }
let!(:auth) { create(:flickr_authentication, member:) }
before do
sign_in member
@@ -97,11 +97,11 @@ describe PhotosController, :search do
link_url: "http://example.com")
end
let(:member) { FactoryBot.create(:member) }
let(:garden) { FactoryBot.create(:garden, owner: member) }
let(:planting) { FactoryBot.create(:planting, garden:, owner: member) }
let(:harvest) { FactoryBot.create(:harvest, owner: member) }
let(:photo) { FactoryBot.create(:photo, owner: member) }
let(:member) { create(:member) }
let(:garden) { create(:garden, owner: member) }
let(:planting) { create(:planting, garden:, owner: member) }
let(:harvest) { create(:harvest, owner: member) }
let(:photo) { create(:photo, owner: member) }
describe "with valid params" do
before { controller.stub(:current_member) { member } }
@@ -153,7 +153,7 @@ describe PhotosController, :search do
end
it "doesn't attach photo to a comment" do
comment = FactoryBot.create(:comment)
comment = create(:comment)
expect do
post :create, params: {
photo: { source_id: photo.source_id, source: 'flickr' }, type: "comment", id: comment.id
@@ -163,7 +163,7 @@ describe PhotosController, :search do
end
describe "for the second time" do
let(:planting) { FactoryBot.create(:planting, owner: member) }
let(:planting) { create(:planting, owner: member) }
let(:valid_params) { { photo: { source_id: 1 }, id: planting.id, type: 'planting' } }
it "does not add a photo twice" do
@@ -176,8 +176,8 @@ describe PhotosController, :search do
before { controller.stub(:current_member) { member } }
describe "creates the planting/photo link" do
let(:planting) { FactoryBot.create(:planting, garden:, owner: member) }
let(:photo) { FactoryBot.create(:photo, owner: member) }
let(:planting) { create(:planting, garden:, owner: member) }
let(:photo) { create(:photo, owner: member) }
before { post :create, params: { photo: { source_id: photo.source_id, source: 'flickr' }, type: "planting", id: planting.id } }
@@ -196,11 +196,11 @@ describe PhotosController, :search do
end
describe "with mismatched owners" do
let(:photo) { FactoryBot.create(:photo) }
let(:photo) { create(:photo) }
it "does not create the planting/photo link" do
# members will be auto-created, and different
another_planting = FactoryBot.create(:planting)
another_planting = create(:planting)
expect do
post :create, params: {
photo: { source_id: photo.source_id, source: 'flickr' },
@@ -212,7 +212,7 @@ describe PhotosController, :search do
it "does not create the harvest/photo link" do
# members will be auto-created, and different
another_harvest = FactoryBot.create(:harvest)
another_harvest = create(:harvest)
expect do
post :create, params: {
photo: { source_id: photo.source_id, source: 'flickr' }, type: "harvest", id: another_harvest.id

View File

@@ -9,8 +9,8 @@ describe PlacesController do
describe "GET show" do
before do
@member_london = FactoryBot.create(:london_member)
@member_south_pole = FactoryBot.create(:south_pole_member)
@member_london = create(:london_member)
@member_south_pole = create(:south_pole_member)
end
it "assigns place name" do

Some files were not shown because too many files have changed in this diff Show More