rom-mongodb 0.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 12377480e4dd3b615a6e28bcd18fbb21b0f79bcf4cb6984477c93ecd72e4f1e5
4
+ data.tar.gz: 775aeb292984d39d3133460d5556a4115b1676ed482ce367d1c8ca5db18f338d
5
+ SHA512:
6
+ metadata.gz: bde24f9012589a387df98cd5fffe66ba8dbacb80fef5c10330a17220a01a7b4aec6bbe1b23bf008f441faf13b68b3d3bf5efe3e7de9d31dbc395e7a7d3c17c43
7
+ data.tar.gz: 88afd8363aa754bc1e03ec525b3543324c720f94c37e53297ee73561c2667364c2b482d8d6e2eb99e718d35e6d391af43f297fe65abe706595bb3cc9e3495645
@@ -0,0 +1,141 @@
1
+ version: 2.1
2
+
3
+ defaults: &defaults
4
+ working_directory: ~/rom-mongo
5
+ docker:
6
+ - image: cimg/ruby:<< parameters.ruby-version >>
7
+ - image: circleci/mongo:5.0.6-focal-ram
8
+
9
+ orbs:
10
+ ruby: circleci/ruby@1.8.0
11
+
12
+ references:
13
+ restore_bundle_cache: &restore_bundle_cache
14
+ restore_cache:
15
+ keys:
16
+ - rom-mongo-{{ checksum "rom-mongodb.gemspec" }}
17
+
18
+ bundle_install: &bundle_install
19
+ run:
20
+ name: Installing gems
21
+ command: |
22
+ bundle config set --local path 'vendor/bundle'
23
+ bundle install
24
+
25
+ save_bundle_cache: &save_bundle_cache
26
+ save_cache:
27
+ key: rom-mongo-{{ checksum "rom-mongodb.gemspec" }}
28
+ paths:
29
+ - vendor/bundle
30
+
31
+ install_codeclimate_reporter: &install_codeclimate_reporter
32
+ run:
33
+ name: Installing CodeClimate test reporter
34
+ command: |
35
+ curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
36
+ chmod +x ./cc-test-reporter
37
+
38
+ use_latest_gemspec: &use_latest_gemspec
39
+ run:
40
+ name: Using latest gemspec
41
+ command: |
42
+ cp .circleci/gemspec_latest rom-mongodb.gemspec
43
+
44
+ use_compatible_gemspec: &use_compatible_gemspec
45
+ run:
46
+ name: Using compatible gemspec
47
+ command: |
48
+ cp .circleci/gemspec_compatible rom-mongodb.gemspec
49
+
50
+ jobs:
51
+ linters-ruby:
52
+ parameters:
53
+ ruby-version:
54
+ type: string
55
+
56
+ <<: *defaults
57
+
58
+ steps:
59
+ - checkout
60
+
61
+ - <<: *use_latest_gemspec
62
+ - <<: *restore_bundle_cache
63
+ - <<: *bundle_install
64
+ - <<: *save_bundle_cache
65
+
66
+ - run:
67
+ name: Running Overcommit
68
+ command: |
69
+ bundle exec overcommit -s
70
+ SKIP=AuthorEmail,AuthorName bundle exec overcommit -r
71
+
72
+ tests-ruby:
73
+ parameters:
74
+ ruby-version:
75
+ type: string
76
+
77
+ <<: *defaults
78
+
79
+ steps:
80
+ - checkout
81
+
82
+ - <<: *use_latest_gemspec
83
+ - <<: *restore_bundle_cache
84
+ - <<: *bundle_install
85
+ - <<: *save_bundle_cache
86
+ - <<: *install_codeclimate_reporter
87
+
88
+ - run:
89
+ name: Running RSpec
90
+ command: |
91
+ ./cc-test-reporter before-build
92
+ bundle exec rspec
93
+
94
+ - run:
95
+ name: Creating CodeClimate test coverage report
96
+ command: |
97
+ ./cc-test-reporter format-coverage -t simplecov -o "coverage/codeclimate.$CIRCLE_NODE_INDEX.json"
98
+
99
+ - store_artifacts:
100
+ name: Saving Simplecov coverage artifacts
101
+ path: ~/rom-mongo/coverage
102
+ destination: coverage
103
+
104
+ - deploy:
105
+ name: Uploading CodeClimate test coverage report
106
+ command: |
107
+ ./cc-test-reporter sum-coverage --output - --parts $CIRCLE_NODE_TOTAL coverage/codeclimate.*.json | ./cc-test-reporter upload-coverage --debug --input -
108
+
109
+ compatibility-ruby:
110
+ parameters:
111
+ ruby-version:
112
+ type: string
113
+ docker:
114
+ - image: cimg/ruby:<< parameters.ruby-version >>
115
+ - image: circleci/mongo:5.0.6-focal-ram
116
+ steps:
117
+ - checkout
118
+ - <<: *use_compatible_gemspec
119
+ - ruby/install-deps:
120
+ bundler-version: "2.3.16"
121
+ with-cache: false
122
+ path: './vendor/custom_bundle'
123
+ - run:
124
+ name: Running compatibility tests
125
+ command: bundle exec rspec
126
+
127
+ workflows:
128
+ build_and_test:
129
+ jobs:
130
+ - linters-ruby:
131
+ matrix:
132
+ parameters:
133
+ ruby-version: ["3.1"]
134
+ - tests-ruby:
135
+ matrix:
136
+ parameters:
137
+ ruby-version: ["3.1"]
138
+ - compatibility-ruby:
139
+ matrix:
140
+ parameters:
141
+ ruby-version: ["2.5", "2.6", "2.7", "3.0"]
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/rom/mongo/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'rom-mongodb'
7
+ spec.version = ROM::Mongo::VERSION
8
+ spec.authors = ['Vladislav Trotsenko']
9
+ spec.email = ['admin@bestweb.com.ua']
10
+
11
+ spec.summary = %(rom-mongodb)
12
+ spec.description = 'MongoDB adapter for Ruby Object Mapper'
13
+
14
+ spec.homepage = 'https://github.com/bestwebua/rom-mongo'
15
+ spec.license = 'MIT'
16
+
17
+ spec.metadata = {
18
+ 'homepage_uri' => 'https://rom-rb.org',
19
+ 'changelog_uri' => 'https://github.com/bestwebua/rom-mongo/blob/master/CHANGELOG.md',
20
+ 'source_code_uri' => 'https://github.com/bestwebua/rom-mongo',
21
+ 'documentation_uri' => 'https://github.com/bestwebua/rom-mongo/blob/master/README.md',
22
+ 'bug_tracker_uri' => 'https://github.com/bestwebua/rom-mongo/issues'
23
+ }
24
+
25
+ spec.required_ruby_version = '>= 2.5.0'
26
+
27
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
28
+ spec.bindir = 'exe'
29
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| ::File.basename(f) }
30
+ spec.require_paths = ['lib']
31
+
32
+ spec.add_runtime_dependency 'mongo', '~> 2.17', '>= 2.17.1'
33
+ spec.add_runtime_dependency 'rom-core', '~> 5.2', '>= 5.2.6'
34
+
35
+ spec.add_development_dependency 'ffaker', '~> 2.21'
36
+ spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.6'
37
+ spec.add_development_dependency 'rom-repository', '~> 5.2', '>= 5.2.2'
38
+ spec.add_development_dependency 'rspec', '~> 3.11'
39
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/rom/mongo/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'rom-mongodb'
7
+ spec.version = ROM::Mongo::VERSION
8
+ spec.authors = ['Vladislav Trotsenko']
9
+ spec.email = ['admin@bestweb.com.ua']
10
+
11
+ spec.summary = %(rom-mongodb)
12
+ spec.description = 'MongoDB adapter for Ruby Object Mapper'
13
+
14
+ spec.homepage = 'https://github.com/bestwebua/rom-mongo'
15
+ spec.license = 'MIT'
16
+
17
+ spec.metadata = {
18
+ 'homepage_uri' => 'https://rom-rb.org',
19
+ 'changelog_uri' => 'https://github.com/bestwebua/rom-mongo/blob/master/CHANGELOG.md',
20
+ 'source_code_uri' => 'https://github.com/bestwebua/rom-mongo',
21
+ 'documentation_uri' => 'https://github.com/bestwebua/rom-mongo/blob/master/README.md',
22
+ 'bug_tracker_uri' => 'https://github.com/bestwebua/rom-mongo/issues'
23
+ }
24
+
25
+ spec.required_ruby_version = '>= 2.5.0'
26
+
27
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
28
+ spec.bindir = 'exe'
29
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| ::File.basename(f) }
30
+ spec.require_paths = ['lib']
31
+
32
+ spec.add_runtime_dependency 'mongo', '~> 2.17', '>= 2.17.1'
33
+ spec.add_runtime_dependency 'rom-core', '~> 5.2', '>= 5.2.6'
34
+
35
+ spec.add_development_dependency 'bundler-audit', '~> 0.9.1'
36
+ spec.add_development_dependency 'fasterer', '~> 0.10.0'
37
+ spec.add_development_dependency 'ffaker', '~> 2.21'
38
+ spec.add_development_dependency 'overcommit', '~> 0.59.1'
39
+ spec.add_development_dependency 'pry-byebug', '~> 3.9'
40
+ spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.6'
41
+ spec.add_development_dependency 'reek', '~> 6.1', '>= 6.1.1'
42
+ spec.add_development_dependency 'rom-repository', '~> 5.2', '>= 5.2.2'
43
+ spec.add_development_dependency 'rspec', '~> 3.11'
44
+ spec.add_development_dependency 'rubocop', '~> 1.31'
45
+ spec.add_development_dependency 'rubocop-performance', '~> 1.14', '>= 1.14.2'
46
+ spec.add_development_dependency 'rubocop-rspec', '~> 2.11', '>= 2.11.1'
47
+ spec.add_development_dependency 'simplecov', '~> 0.21.2'
48
+ end
data/.codeclimate.yml ADDED
@@ -0,0 +1,13 @@
1
+ checks:
2
+ argument-count:
3
+ enabled: false
4
+ method-complexity:
5
+ enabled: false
6
+
7
+ plugins:
8
+ rubocop:
9
+ enabled: true
10
+ channel: rubocop-1-31
11
+
12
+ reek:
13
+ enabled: true
@@ -0,0 +1,36 @@
1
+ # Branch naming convention
2
+
3
+ ## Branch naming
4
+
5
+ > Please note for new pull requests create new branches from current `develop` branch only.
6
+
7
+ Branch name should include type of your contribution and context. Please follow next pattern for naming your branches:
8
+
9
+ ```bash
10
+ feature/add-some-feature
11
+ technical/some-technical-improvements
12
+ bugfix/fix-some-bug-name
13
+ ```
14
+
15
+ ## Before PR actions
16
+
17
+ ### Squash commits
18
+
19
+ Please squash all branch commits into the one before openning your PR from your fork. It's simple to do with the git:
20
+
21
+ ```bash
22
+ git rebase -i [hash your first commit of your branch]~1
23
+ git rebase -i 6467fe36232401fa740af067cfd8ac9ec932fed2~1 # example
24
+ ```
25
+
26
+ ### Add commit description
27
+
28
+ Please complete your commit description folowing next pattern:
29
+
30
+ ```
31
+ Technical/Add info files # should be the same name as your branch name
32
+
33
+ * Added license, changelog, contributing, code of conduct docs
34
+ * Added GitHub templates
35
+ * Updated project license link
36
+ ```
@@ -0,0 +1,26 @@
1
+ # Development environment guide
2
+
3
+ ## Preparing
4
+
5
+ Clone `rom-mongodb` repository:
6
+
7
+ ```bash
8
+ git clone https://github.com/bestwebua/rom-mongo.git
9
+ cd rom-mongo
10
+ ```
11
+
12
+ Configure latest Ruby environment:
13
+
14
+ ```bash
15
+ echo 'ruby-3.1.2' > .ruby-version
16
+ cp .circleci/gemspec_latest rom-mongodb.gemspec
17
+ ```
18
+
19
+ ## Commiting
20
+
21
+ Commit your changes excluding `.ruby-version`, `rom-mongodb.gemspec`
22
+
23
+ ```bash
24
+ git add . ':!.ruby-version' ':!rom-mongodb.gemspec'
25
+ git commit -m 'Your new awesome rom-mongodb feature'
26
+ ```
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: "[BUG] Your bug report title here"
5
+ labels: bug
6
+ assignees: bestwebua
7
+
8
+ ---
9
+
10
+ <!-- Thanks for helping to make rom-mongodb better! Before submit your bug, please make sure to check the following boxes by putting an x in the [ ] (don't: [x ], [ x], do: [x]) -->
11
+
12
+ ### New bug checklist
13
+
14
+ - [ ] I have updated `rom-mongodb` to the latest version
15
+ - [ ] I have read the [Contribution Guidelines](https://github.com/bestwebua/rom-mongo/blob/master/CONTRIBUTING.md)
16
+ - [ ] I have read the [documentation](https://github.com/bestwebua/rom-mongo/blob/master/README.md)
17
+ - [ ] I have searched for [existing GitHub issues](https://github.com/bestwebua/rom-mongo/issues)
18
+
19
+ <!-- Please use next pattern for your bug report title: [BUG] Your bug report title here -->
20
+
21
+ ### Bug description
22
+ <!-- Please include what's happening, expected behavior, and any relevant code samples -->
23
+
24
+ ##### Complete output when running rom-mongo, including the stack trace and command used
25
+
26
+ <details>
27
+ <pre>[INSERT OUTPUT HERE]</pre>
28
+ </details>
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for rom-mongodb
4
+ title: "[FEATURE] Your feature request title here"
5
+ labels: enhancement
6
+ assignees: bestwebua
7
+
8
+ ---
9
+
10
+ <!-- Thanks for helping to make rom-mongodb better! Before submit your new feature request, please make sure to check the following boxes by putting an x in the [ ] (don't: [x ], [ x], do: [x]) -->
11
+
12
+ ### New feature request checklist
13
+
14
+ - [ ] I have updated `rom-mongodb` to the latest version
15
+ - [ ] I have read the [Contribution Guidelines](https://github.com/bestwebua/rom-mongo/blob/master/CONTRIBUTING.md)
16
+ - [ ] I have read the [documentation](https://github.com/bestwebua/rom-mongo/blob/master/README.md)
17
+ - [ ] I have searched for [existing GitHub issues](https://github.com/bestwebua/rom-mongo/issues)
18
+
19
+ <!-- Please use next pattern for your feature request title: [FEATURE] Your feature request title here -->
20
+
21
+ ### Feature description
22
+
23
+ <!-- Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
24
+
25
+ Describe the solution you'd like. A clear and concise description of what you want to happen.
26
+
27
+ Describe alternatives you've considered. A clear and concise description of any alternative solutions or features you've considered. -->
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: Issue report
3
+ about: Create a report to help us improve
4
+ title: "[ISSUE] Your issue report title here"
5
+ labels: ''
6
+ assignees: bestwebua
7
+
8
+ ---
9
+
10
+ <!-- Thanks for helping to make rom-mongodb better! Before submit your issue, please make sure to check the following boxes by putting an x in the [ ] (don't: [x ], [ x], do: [x]) -->
11
+
12
+ ### New issue checklist
13
+
14
+ - [ ] I have updated `rom-mongodb` to the latest version
15
+ - [ ] I have read the [Contribution Guidelines](https://github.com/bestwebua/rom-mongo/blob/master/CONTRIBUTING.md)
16
+ - [ ] I have read the [documentation](https://github.com/bestwebua/rom-mongo/blob/master/README.md)
17
+ - [ ] I have searched for [existing GitHub issues](https://github.com/bestwebua/rom-mongo/issues)
18
+
19
+ <!-- Please use next pattern for your issue report title: [ISSUE] Your issue report title here -->
20
+
21
+ ### Issue description
22
+ <!-- Please include what's happening, expected behavior, and any relevant code samples -->
23
+
24
+ ##### Complete output when running rom-mongodb, including the stack trace and command used
25
+
26
+ <details>
27
+ <pre>[INSERT OUTPUT HERE]</pre>
28
+ </details>
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: Question
3
+ about: Ask your question to rom-mongodb team
4
+ title: "[QUESTION] Your question title here"
5
+ labels: question
6
+ assignees: bestwebua
7
+
8
+ ---
9
+
10
+ <!-- Thanks for helping to make rom-mongodb better! Before submit your question, please make sure to check the following boxes by putting an x in the [ ] (don't: [x ], [ x], do: [x]) -->
11
+
12
+ ### New question checklist
13
+
14
+ - [ ] I have read the [Contribution Guidelines](https://github.com/bestwebua/rom-mongo/blob/master/CONTRIBUTING.md)
15
+ - [ ] I have read the [documentation](https://github.com/bestwebua/rom-mongo/blob/master/README.md)
16
+ - [ ] I have searched for [existing GitHub issues](https://github.com/bestwebua/rom-mongo/issues)
17
+
18
+ <!-- Please use next pattern for your question title: [QUESTION] Your question title here -->
19
+
20
+ ### Question
21
+
22
+ <!-- Your question context here -->
@@ -0,0 +1,49 @@
1
+ # PR Details
2
+
3
+ <!-- Provide a general summary of your changes in the Title above -->
4
+ <!-- PR name should the same name as your branch name, example: -->
5
+ <!-- Branch name is: feature/add-some-feature -->
6
+ <!-- PR name should be: Feature/Add some feature -->
7
+
8
+ ## Description
9
+
10
+ <!--- Describe your changes in detail -->
11
+
12
+ ## Related Issue
13
+
14
+ <!--- This project only accepts pull requests related to open issues -->
15
+ <!--- If suggesting a new feature or change, please discuss it in an issue first -->
16
+ <!--- If fixing a bug, there should be an issue describing it with steps to reproduce -->
17
+ <!--- Please link to the issue here: -->
18
+
19
+ ## Motivation and Context
20
+
21
+ <!--- Why is this change required? What problem does it solve? -->
22
+
23
+ ## How Has This Been Tested
24
+
25
+ <!--- Please describe in detail how you tested your changes. -->
26
+ <!--- Include details of your testing environment, and the tests you ran to -->
27
+ <!--- see how your change affects other areas of the code, etc. -->
28
+
29
+ ## Types of changes
30
+
31
+ <!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
32
+
33
+ - [ ] Docs change / refactoring / dependency upgrade
34
+ - [ ] Bug fix (non-breaking change which fixes an issue)
35
+ - [ ] New feature (non-breaking change which adds functionality)
36
+ - [ ] Breaking change (fix or feature that would cause existing functionality to change)
37
+
38
+ ## Checklist
39
+
40
+ <!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
41
+ <!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
42
+
43
+ - [ ] My code follows the code style of this project
44
+ - [ ] My change requires a change to the documentation
45
+ - [ ] I have updated the documentation accordingly
46
+ - [ ] I have read the [**CONTRIBUTING** document](https://github.com/bestwebua/rom-mongo/blob/master/CONTRIBUTING.md)
47
+ - [ ] I have added tests to cover my changes
48
+ - [ ] I have run `bundle exec rspec` from the root directory to see all new and existing tests pass
49
+ - [ ] I have run `rubocop` and `reek` to ensure the code style is valid
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ .rspec_status
10
+ .DS_Store
11
+ Gemfile.lock
data/.overcommit.yml ADDED
@@ -0,0 +1,32 @@
1
+ PreCommit:
2
+ AuthorEmail:
3
+ enabled: true
4
+ required: false
5
+
6
+ AuthorName:
7
+ enabled: false
8
+
9
+ BundleAudit:
10
+ enabled: true
11
+
12
+ Fasterer:
13
+ enabled: true
14
+ include: '**/*.rb'
15
+
16
+ TrailingWhitespace:
17
+ enabled: true
18
+
19
+ RuboCop:
20
+ enabled: true
21
+ flags: ['--format=emacs', '--force-exclusion', '--display-cop-names']
22
+
23
+ Reek:
24
+ enabled: true
25
+ flags: ['--force-exclusion']
26
+
27
+ PostCheckout:
28
+ ALL:
29
+ quiet: true
30
+
31
+ IndexTags:
32
+ enabled: true
data/.reek.yml ADDED
@@ -0,0 +1,16 @@
1
+ detectors:
2
+ IrresponsibleModule:
3
+ enabled: false
4
+
5
+ FeatureEnvy:
6
+ exclude:
7
+ - ROM::Mongo::Dataset#insert
8
+ - ROM::Mongo::Schema#to_output_hash
9
+ - ROM::Mongo::Commands::Create#execute
10
+
11
+ ManualDispatch:
12
+ exclude:
13
+ - ROM::Mongo::Commands::Helper#pk
14
+
15
+ exclude_paths:
16
+ - spec/support/helpers
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --require spec_helper
2
+ --format documentation
3
+ --color