rom-yesql 0.5.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. checksums.yaml +5 -5
  2. data/.action_hero.yml +20 -0
  3. data/.devtools/templates/README.md.erb +29 -0
  4. data/.devtools/templates/changelog.erb +43 -0
  5. data/.devtools/templates/release.erb +36 -0
  6. data/.github/FUNDING.yml +1 -0
  7. data/.github/ISSUE_TEMPLATE/bug-report.md +26 -0
  8. data/.github/ISSUE_TEMPLATE/config.yml +5 -0
  9. data/.github/SUPPORT.md +3 -0
  10. data/.github/workflows/ci.yml +61 -0
  11. data/.github/workflows/docsite.yml +63 -0
  12. data/.github/workflows/rubocop.yml +46 -0
  13. data/.github/workflows/sync_configs.yml +53 -0
  14. data/.rspec +2 -0
  15. data/.rubocop.yml +210 -37
  16. data/CHANGELOG.md +41 -12
  17. data/CODEOWNERS +1 -0
  18. data/CODE_OF_CONDUCT.md +13 -0
  19. data/CONTRIBUTING.md +29 -0
  20. data/Gemfile +9 -7
  21. data/Gemfile.devtools +20 -0
  22. data/Guardfile +7 -5
  23. data/LICENSE +20 -0
  24. data/README.md +13 -26
  25. data/Rakefile +5 -3
  26. data/changelog.yml +38 -0
  27. data/lib/rom/yesql/dataset.rb +2 -0
  28. data/lib/rom/yesql/gateway.rb +21 -18
  29. data/lib/rom/yesql/relation/class_interface.rb +5 -4
  30. data/lib/rom/yesql/relation.rb +10 -13
  31. data/lib/rom/yesql/version.rb +3 -1
  32. data/lib/rom/yesql.rb +4 -2
  33. data/lib/rom-yesql.rb +4 -2
  34. data/project.yml +2 -0
  35. data/rakelib/rubocop.rake +5 -3
  36. data/rom-yesql.gemspec +9 -8
  37. data/spec/integration/adapter_spec.rb +26 -24
  38. data/spec/shared/database_setup.rb +5 -3
  39. data/spec/shared/repository_setup.rb +8 -6
  40. data/spec/shared/users_and_tasks.rb +9 -7
  41. data/spec/spec_helper.rb +13 -19
  42. data/spec/support/coverage.rb +15 -0
  43. data/spec/support/rspec_options.rb +16 -0
  44. data/spec/support/warnings.rb +10 -0
  45. data/spec/unit/rom/yesql/repository_spec.rb +12 -10
  46. metadata +37 -53
  47. data/.rubocop_todo.yml +0 -21
  48. data/.travis.yml +0 -30
  49. data/LICENSE.txt +0 -22
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 5409778237a17aab103caee34e49e022840b0f9e
4
- data.tar.gz: 88895459bd1049bcf13d15f7e866de833f2e997b
2
+ SHA256:
3
+ metadata.gz: 332faa00fcb371dbfa8f7970458a83d923db7aa7af198898ec5512907900b3de
4
+ data.tar.gz: f2b3658976d44cb28ed12dc5da4f22fa4b3fd1fa912a8b6da157df97962e69f6
5
5
  SHA512:
6
- metadata.gz: c8c7eb4c02271d218a880ddde3cbc8a6a82a6fb7d4dcf710c8dd08da2d8fd5cfc931518da0860ade5188dbc1df2d29dce8352ac8d7a92a607e67075704f770e5
7
- data.tar.gz: d971f5152ce80fb77bee86691151f40c4ee3d8ba0196f647586c6a16873757f3e70f2977b0e9c7fb3017aba72b3806eb6e81b852c072381ca87bafeb82fb4fa4
6
+ metadata.gz: d285e7991c0753235e1e69024aa1069839687ad53c247004f9ecf4ed449a2ca082cad34e49fcdc4c58568e38a7822c859a2b22346f6f9dc7ea7ccdfd2dfc4835
7
+ data.tar.gz: 2d5b9f1b2d01ad06a142d96f1d07bba75cf690dc896ca46c8eea604788d62a76856915de090783fca6b3eb074fc369dfa34fd7fb96cd5809c9546644476de812
data/.action_hero.yml ADDED
@@ -0,0 +1,20 @@
1
+ # This is a config synced from rom-rb/template-gem repo
2
+
3
+ sources:
4
+ - repo: rom-rb/template-gem
5
+ sync:
6
+ - ".action_hero.yml.erb"
7
+ - ".devtools/templates/*.sync:${{dir}}/${{name}}"
8
+ - ".github/**/*.*"
9
+ - "spec/support/*"
10
+ - "CODE_OF_CONDUCT.md"
11
+ - "CONTRIBUTING.md"
12
+ - "CODEOWNERS"
13
+ - "LICENSE.erb"
14
+ - "README.erb"
15
+ - "Gemfile.devtools"
16
+ - ".rspec"
17
+ - ".rubocop.yml"
18
+ - repo: action-hero/workflows
19
+ sync:
20
+ - ".github/workflows/*.yml"
@@ -0,0 +1,29 @@
1
+ [gem]: https://rubygems.org/gems/<%= name %>
2
+ [actions]: https://github.com/rom-rb/<%= name %>/actions
3
+ [codacy]: https://www.codacy.com/gh/rom-rb/<%= name %>
4
+ [chat]: https://rom-rb.zulipchat.com
5
+ [inchpages]: http://inch-ci.org/github/rom-rb/<%= name %>
6
+
7
+ # <%= name %> [![Join the chat at https://rom-rb.zulipchat.com](https://img.shields.io/badge/rom--rb-join%20chat-%23346b7a.svg)][chat]
8
+
9
+ [![Gem Version](https://badge.fury.io/rb/<%= name %>.svg)][gem]
10
+ [![CI Status](https://github.com/rom-rb/<%= name %>/workflows/ci/badge.svg)][actions]
11
+ [![Codacy Badge](https://api.codacy.com/project/badge/Grade/<%= codacy_id %>)][codacy]
12
+ [![Codacy Badge](https://api.codacy.com/project/badge/Coverage/<%= codacy_id %>)][codacy]
13
+ [![Inline docs](http://inch-ci.org/github/rom-rb/<%= name %>.svg?branch=master)][inchpages]
14
+
15
+ ## Links
16
+
17
+ * [API documentation](http://rubydoc.info/gems/<%= name %>)
18
+ * User documentation - not written yet, but you [can write it](https://github.com/rom-rb/rom-yesql/issues/16)! 😄
19
+
20
+ ## Supported Ruby versions
21
+
22
+ This library officially supports the following Ruby versions:
23
+
24
+ * MRI >= `2.4`
25
+ * jruby >= `9.2`
26
+
27
+ ## License
28
+
29
+ See `LICENSE` file.
@@ -0,0 +1,43 @@
1
+
2
+ <!--- DO NOT EDIT THIS FILE - IT'S AUTOMATICALLY GENERATED VIA DEVTOOLS --->
3
+
4
+ <% releases.each_with_index do |r, idx| %>
5
+ ## <%= r.version %> <%= r.date %>
6
+
7
+ <% if r.summary %>
8
+ <%= r.summary %>
9
+
10
+ <% end %>
11
+
12
+ <% if r.added? %>
13
+ ### Added
14
+
15
+ <% r.added.each do |log| %>
16
+ - <%= log %>
17
+ <% end %>
18
+
19
+ <% end %>
20
+ <% if r.fixed? %>
21
+ ### Fixed
22
+
23
+ <% r.fixed.each do |log| %>
24
+ - <%= log %>
25
+ <% end %>
26
+
27
+ <% end %>
28
+ <% if r.changed? %>
29
+ ### Changed
30
+
31
+ <% r.changed.each do |log| %>
32
+ - <%= log %>
33
+ <% end %>
34
+ <% end %>
35
+ <% curr_ver = r.date ? "v#{r.version}" : 'master' %>
36
+ <% prev_rel = releases[idx + 1] %>
37
+ <% if prev_rel %>
38
+ <% ver_range = "v#{prev_rel.version}...#{curr_ver}" %>
39
+
40
+ [Compare <%=ver_range%>](https://github.com/rom-rb/<%= project.name %>/compare/<%=ver_range%>)
41
+ <% end %>
42
+
43
+ <% end %>
@@ -0,0 +1,36 @@
1
+
2
+ <!--- DO NOT EDIT THIS FILE - IT'S AUTOMATICALLY GENERATED VIA DEVTOOLS --->
3
+
4
+ <% if latest_release.summary %>
5
+ <%= latest_release.summary %>
6
+
7
+ <% end %>
8
+
9
+ <% if latest_release.added? %>
10
+ ### Added
11
+
12
+ <% latest_release.added.each do |log| %>
13
+ - <%= log %>
14
+ <% end %>
15
+
16
+ <% end %>
17
+ <% if latest_release.fixed? %>
18
+ ### Fixed
19
+
20
+ <% latest_release.fixed.each do |log| %>
21
+ - <%= log %>
22
+ <% end %>
23
+
24
+ <% end %>
25
+ <% if latest_release.changed? %>
26
+ ### Changed
27
+
28
+ <% latest_release.changed.each do |log| %>
29
+ - <%= log %>
30
+ <% end %>
31
+ <% end %>
32
+ <% if previous_release %>
33
+ <% ver_range = "v#{previous_release.version}...v#{latest_release.version}" %>
34
+
35
+ [Compare <%=ver_range%>](https://github.com/rom-rb/<%= project.name %>/compare/<%=ver_range%>)
36
+ <% end %>
@@ -0,0 +1 @@
1
+ github: hanami
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: "\U0001F41B Bug report"
3
+ about: See CONTRIBUTING.md for more information
4
+ title: ''
5
+ labels: bug, help wanted
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ ## Describe the bug
11
+
12
+ A clear and concise description of what the bug is.
13
+
14
+ ## To Reproduce
15
+
16
+ Provide detailed steps to reproduce, **an executable script would be best**.
17
+
18
+ ## Expected behavior
19
+
20
+ A clear and concise description of what you expected to happen.
21
+
22
+ ## My environment
23
+
24
+ - Affects my production application: **YES/NO**
25
+ - Ruby version: ...
26
+ - OS: ...
@@ -0,0 +1,5 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: Community Support
4
+ url: https://discourse.rom-rb.org
5
+ about: Please ask and answer questions here.
@@ -0,0 +1,3 @@
1
+ ## Support
2
+
3
+ If you need help with any of the rom-rb libraries, feel free to ask questions on our [discussion forum](https://discourse.rom-rb.org/). This is the best place to seek help. Make sure to search for a potential solution in past threads before posting your question. Thanks! :heart:
@@ -0,0 +1,61 @@
1
+ # This file is synced from rom-rb/template-gem repo
2
+ name: ci
3
+
4
+ on:
5
+ push:
6
+ paths:
7
+ - ".github/workflows/ci.yml"
8
+ - "lib/**"
9
+ - "*.gemspec"
10
+ - "spec/**"
11
+ - "Rakefile"
12
+ - "Gemfile"
13
+ - "Gemfile.devtools"
14
+ - ".rubocop.yml"
15
+ - "project.yml"
16
+ pull_request:
17
+ branches:
18
+ - main
19
+ create:
20
+
21
+ jobs:
22
+ tests:
23
+ runs-on: ubuntu-latest
24
+ name: Tests
25
+ strategy:
26
+ fail-fast: false
27
+ matrix:
28
+ ruby:
29
+ - "3.1"
30
+ - "3.2"
31
+ - "3.3"
32
+ - "3.4"
33
+ include:
34
+ - ruby: "3.4"
35
+ coverage: "true"
36
+ env:
37
+ COVERAGE: ${{matrix.coverage}}
38
+ COVERAGE_TOKEN: ${{secrets.CODACY_PROJECT_TOKEN}}
39
+ steps:
40
+ - name: Checkout
41
+ uses: actions/checkout@v1
42
+ - name: Install package dependencies
43
+ run: "[ -e $APT_DEPS ] || sudo apt-get install -y --no-install-recommends $APT_DEPS"
44
+ - name: Set up Ruby
45
+ uses: ruby/setup-ruby@v1
46
+ with:
47
+ ruby-version: ${{matrix.ruby}}
48
+ - name: Install latest bundler
49
+ run: |
50
+ gem install bundler --no-document
51
+ bundle config set without 'tools benchmarks docs'
52
+ - name: Bundle install
53
+ run: bundle install --jobs 4 --retry 3
54
+ - name: Run all tests
55
+ run: bundle exec rake
56
+ - name: Run codacy-coverage-reporter
57
+ uses: codacy/codacy-coverage-reporter-action@master
58
+ if: env.COVERAGE == 'true' && env.COVERAGE_TOKEN != ''
59
+ with:
60
+ project-token: ${{secrets.CODACY_PROJECT_TOKEN}}
61
+ coverage-reports: coverage/coverage.xml
@@ -0,0 +1,63 @@
1
+ # This file is synced from rom-rb/template-gem repo
2
+
3
+ name: docsite
4
+
5
+ on:
6
+ push:
7
+ paths:
8
+ - docsite/**
9
+ - .github/workflows/docsite.yml
10
+ branches:
11
+ - main
12
+ - release-**
13
+ tags:
14
+
15
+ jobs:
16
+ update-docs:
17
+ runs-on: ubuntu-latest
18
+ steps:
19
+ - uses: actions/checkout@v2
20
+ with:
21
+ fetch-depth: 0
22
+ - run: |
23
+ git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/*
24
+ - name: Set up Ruby
25
+ uses: actions/setup-ruby@v1
26
+ with:
27
+ ruby-version: "2.6.x"
28
+ - name: Set up git user
29
+ run: |
30
+ git config --local user.email "rom-bot@rom-rb.org"
31
+ git config --local user.name "rom-bot"
32
+ - name: Install dependencies
33
+ run: gem install ossy --no-document
34
+ - name: Update release branches
35
+ run: |
36
+ branches=`git log --format=%B -n 1 $GITHUB_SHA | grep "docsite:release-" || echo "nothing"`
37
+
38
+ if [[ ! $branches -eq "nothing" ]]; then
39
+ for b in $branches
40
+ do
41
+ name=`echo $b | ruby -e 'puts gets[/:(.+)/, 1].gsub(/\s+/, "")'`
42
+
43
+ echo "merging $GITHUB_SHA to $name"
44
+
45
+ git checkout -b $name --track origin/$name
46
+
47
+ echo `git log -n 1`
48
+
49
+ git cherry-pick $GITHUB_SHA -m 1
50
+ done
51
+
52
+ git push --all "https://rom-bot:${{secrets.GH_PAT}}@github.com/$GITHUB_REPOSITORY.git"
53
+
54
+ git checkout main
55
+ else
56
+ echo "no need to update branches"
57
+ fi
58
+ - name: Trigger rom-rb.org deploy
59
+ env:
60
+ GITHUB_LOGIN: rom-bot
61
+ GITHUB_TOKEN: ${{secrets.GH_PAT}}
62
+ run: ossy github workflow rom-rb/rom-rb.org ci
63
+
@@ -0,0 +1,46 @@
1
+ name: "RuboCop"
2
+ on:
3
+ push:
4
+ branches:
5
+ - "main"
6
+ - "master"
7
+ paths:
8
+ - "**/*.rb"
9
+ - "**/*.rake"
10
+ - "Rakefile"
11
+ - "Gemfile*"
12
+ - ".rubocop.yml"
13
+ pull_request:
14
+ branches:
15
+ - "main"
16
+ - "master"
17
+ types:
18
+ - "opened"
19
+ - "synchronize"
20
+ workflow_dispatch:
21
+ jobs:
22
+ run:
23
+ runs-on: ubuntu-latest
24
+ name: ${{ matrix.type }}
25
+ strategy:
26
+ fail-fast: false
27
+ matrix:
28
+ type: ["Style", "Layout", "Naming", "Lint", "Metrics", "Security"]
29
+ steps:
30
+ - name: Clone
31
+ uses: actions/checkout@v2
32
+ - name: Get git diff
33
+ id: get_diff
34
+ uses: technote-space/get-diff-action@v4
35
+ with:
36
+ PATTERNS: |
37
+ **/*.rb
38
+ **/*.rake
39
+ Gemfile
40
+ Rakefile
41
+ - name: Check ${{ matrix.type }}
42
+ uses: action-hero/actions/rubocop@main
43
+ if: ${{ env.GIT_DIFF != '' }}
44
+ with:
45
+ diff: ${{ env.GIT_DIFF }}
46
+ type: ${{ matrix.type }}
@@ -0,0 +1,53 @@
1
+ # This file is synced from rom-rb/template-gem repo
2
+
3
+ name: Changelog
4
+
5
+ on:
6
+ push:
7
+ paths:
8
+ - "changelog.yml"
9
+ branches:
10
+ - "main"
11
+ pull_request:
12
+ branches:
13
+ - "main"
14
+ types: [closed]
15
+
16
+ jobs:
17
+ sync:
18
+ runs-on: ubuntu-latest
19
+ if: github.event.pull_request.merged == true
20
+ name: Update
21
+ env:
22
+ GITHUB_LOGIN: rom-bot
23
+ GITHUB_TOKEN: ${{ secrets.GH_PAT }}
24
+ steps:
25
+ - name: Checkout ${{github.repository}}
26
+ uses: actions/checkout@v1
27
+ - name: Checkout devtools
28
+ uses: actions/checkout@v2
29
+ with:
30
+ repository: rom-rb/devtools
31
+ path: tmp/devtools
32
+ - name: Setup git user
33
+ run: |
34
+ git config --local user.email "rom-bot@rom-rb.org"
35
+ git config --local user.name "rom-bot"
36
+ - name: Set up Ruby
37
+ uses: actions/setup-ruby@v1
38
+ with:
39
+ ruby-version: "2.6"
40
+ - name: Install dependencies
41
+ run: gem install ossy --no-document
42
+ - name: Update changelog.yml from commit
43
+ run: tmp/devtools/bin/update-changelog-from-commit $GITHUB_SHA
44
+ - name: Compile CHANGELOG.md
45
+ run: tmp/devtools/bin/compile-changelog
46
+ - name: Commit
47
+ run: |
48
+ git add -A
49
+ git commit -m "Update CHANGELOG.md" || echo "nothing to commit"
50
+ - name: Push changes
51
+ run: |
52
+ git pull --rebase origin main
53
+ git push https://rom-bot:${{secrets.GH_PAT}}@github.com/${{github.repository}}.git HEAD:main
data/.rspec CHANGED
@@ -1,2 +1,4 @@
1
1
  --color
2
+ --require spec_helper
2
3
  --order random
4
+ --warnings