alba 1.1.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 36890dfa4b9b73b60f1d6a09cf674de7ff7a6dd495ff4b74bbb3d048f9cf5a85
4
- data.tar.gz: 3e3d49619f646be866262e14e21e5fba11e2caafbc24064d57eb9c549cb64e4d
3
+ metadata.gz: 34c441cbc87f959f73c3e7a0175309f780b23ce840add4d53cf5083488390f1f
4
+ data.tar.gz: f78fb2eea40f502c6f7b3c905317616054bd397d30aa9ce979285003205c81af
5
5
  SHA512:
6
- metadata.gz: fc7e025a035b41dadaab5300096cf920eb3557a4be900d31b514dfc66e8ae803b0fb63d77ec06174d72d70ad2e07da81c491502c8462ad306f2379720222fc65
7
- data.tar.gz: 741f5c1c69b2809aec51d2a2a139d4d8e00060c9aa174bf5fb68d5dbcec7996096aced5fb377d77fa147d7b6086a65191c8c764802c65bbd88d3806751ec0eb4
6
+ metadata.gz: 326ac8e731f2b4e0fe4afbb8f690059ecd578ffcb9270b9779bdcb6bb50d57d063ec0a98fc488398915c39ca2978b41e79d53bb1f5a809f9272ad885c383a549
7
+ data.tar.gz: 2b36eb5d07749505b4ab377b56cc7e564bcd6e86d872e7cb2c45f62ae2cf91a41b2c6e0b70cdcbb8d2a5d802528e4d9bfb113b723a2be7b1bdbc207c0277df45
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: ''
5
+ labels: bug
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ ## Describe the bug
11
+ A clear and concise description of what the bug is.
12
+
13
+ ## To Reproduce
14
+ Steps to reproduce the behavior:
15
+
16
+ ## Expected behavior
17
+ A clear and concise description of what you expected to happen.
18
+
19
+ ## Actual behavior
20
+ A clear and concise description of what actually happened.
21
+
22
+ ## Environment
23
+ - Ruby version:
24
+
25
+ ## Additional context
26
+ Add any other context about the problem here.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: ''
5
+ labels: enhancement
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ ## Is your feature request related to a problem? Please describe.
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ ## Describe the solution you'd like
14
+ A clear and concise description of what you want to happen.
15
+
16
+ ## Describe alternatives you've considered
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ ## Additional context
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,26 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: bundler
4
+ directory: "/"
5
+ schedule:
6
+ interval: daily
7
+ time: "20:00"
8
+ open-pull-requests-limit: 10
9
+ ignore:
10
+ - dependency-name: rubocop
11
+ versions:
12
+ - 1.12.0
13
+ - 1.9.0
14
+ - dependency-name: rubocop-performance
15
+ versions:
16
+ - 1.10.0
17
+ - 1.10.2
18
+ - dependency-name: oj
19
+ versions:
20
+ - 3.11.3
21
+ - dependency-name: minitest
22
+ versions:
23
+ - 5.14.4
24
+ - dependency-name: activesupport
25
+ versions:
26
+ - 6.1.2
@@ -0,0 +1,21 @@
1
+ name: Performance Check
2
+
3
+ on: [pull_request]
4
+
5
+ jobs:
6
+ build:
7
+ strategy:
8
+ fail-fast: false
9
+ matrix:
10
+ ruby: [2.5, 2.6, 2.7, 3.0]
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v2
14
+ - name: Set up Ruby
15
+ uses: ruby/setup-ruby@v1
16
+ with:
17
+ ruby-version: ${{ matrix.ruby }}
18
+ bundler-cache: true
19
+ - name: Run benchmark
20
+ run: |
21
+ ruby script/perf_check.rb
data/.rubocop.yml CHANGED
@@ -13,14 +13,24 @@ AllCops:
13
13
  - 'Rakefile'
14
14
  - 'alba.gemspec'
15
15
  - 'benchmark/**/*.rb'
16
+ - 'script/**/*.rb'
16
17
  NewCops: enable
17
18
  EnabledByDefault: true
18
19
  TargetRubyVersion: 2.5
19
20
 
20
- # Oneline comment is not valid so until it gets valid, we disable it
21
- Bundler/GemComment:
21
+ # Items in Gemfile is dev dependencies and we don't have to specify versions.
22
+ Bundler/GemVersion:
22
23
  Enabled: false
23
24
 
25
+ # We'd like to write something like:
26
+ # assert_equal(
27
+ # expected,
28
+ # actual
29
+ # )
30
+ Layout/RedundantLineBreak:
31
+ Exclude:
32
+ - 'test/**/*'
33
+
24
34
  Layout/SpaceInsideHashLiteralBraces:
25
35
  EnforcedStyle: no_space
26
36
 
@@ -35,17 +45,14 @@ Metrics:
35
45
  Exclude:
36
46
  - 'test/**/*.rb'
37
47
 
38
- Metrics/MethodLength:
39
- Max: 15
40
-
41
48
  # `Resource` module is a core module and its length tends to be long...
42
49
  Metrics/ModuleLength:
43
- Max: 150
50
+ Exclude:
51
+ - 'lib/alba/resource.rb'
44
52
 
45
53
  # Resource class includes DSLs, which tend to accept long list of parameters
46
54
  Metrics/ParameterLists:
47
55
  Exclude:
48
- - 'lib/alba/resource.rb'
49
56
  - 'test/**/*.rb'
50
57
 
51
58
  # We need to eval resource code to test errors on resource classes
@@ -71,7 +78,10 @@ Style/InlineComment:
71
78
  Enabled: false
72
79
 
73
80
  Style/MethodCallWithArgsParentheses:
74
- Enabled: false
81
+ IgnoredMethods: ['require', 'require_relative', 'include', 'extend', 'puts', 'p', 'warn', 'raise', 'send', 'public_send']
82
+ Exclude:
83
+ # There are so many `attributes` call without parenthese and that's absolutely fine
84
+ - 'test/**/*.rb'
75
85
 
76
86
  # There are so many cases we just want `if` expression!
77
87
  Style/MissingElse:
data/.yardopts CHANGED
@@ -1,2 +1,4 @@
1
1
  --no-private
2
2
  --exclude lib/alba/version.rb
3
+ --embed-mixin ClassMethods
4
+ --embed-mixin InstanceMethods
data/CHANGELOG.md CHANGED
@@ -6,6 +6,46 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.5.0] 2021-11-28
10
+
11
+ - [Feat] Add nil handler
12
+ - [Feat] Implement layout feature
13
+ - [Improve] if option now works with Symbol
14
+ - [Improve] Add an alias for serialize
15
+ - [Improve] Deprecation warning now printed with caller
16
+
17
+ ## [1.4.0] 2021-06-30
18
+
19
+ - [Feat] Add a config method to set encoder directly
20
+ - [Feat] Implement `meta` method and option for metadata
21
+ - [Feat] Add `root_key` option to `Resource#serialize`
22
+ - [Feat] Enable setting key for collection with `root_key`
23
+ - [Feat] Add `Resource.root_key` and `Resource.root_key!`
24
+ - [Feat] `Alba.serialize` now infers resource class
25
+ - [Deprecated] `Resource.key` and `Resource.key!` are deprecated
26
+
27
+ ## [1.3.0] 2021-05-31
28
+
29
+ - [Perf] Improve performance for `many` [641d8f9]
30
+ - https://github.com/okuramasafumi/alba/pull/125
31
+ - [Feat] Add custom inflector feature (#126) [ad73291]
32
+ - https://github.com/okuramasafumi/alba/pull/126
33
+ - Thank you @wuarmin !
34
+ - [Feat] Support params in if condition [6e9915e]
35
+ - https://github.com/okuramasafumi/alba/pull/128
36
+ - [Fix] fundamentally broken "circular association control" [fbbc9a1]
37
+ - https://github.com/okuramasafumi/alba/pull/130
38
+
39
+ ## [1.2.0] 2021-05-09
40
+
41
+ - [Fix] multiple word key inference [6c18e73]
42
+ - https://github.com/okuramasafumi/alba/pull/120
43
+ - Thank you @alfonsojimenez !
44
+ - [Feat] Add `Alba.enable_root_key_transformation!` [f172839]
45
+ - https://github.com/okuramasafumi/alba/pull/121
46
+ - [Feat] Implement type validation and auto conversion [cbe00c7]
47
+ - https://github.com/okuramasafumi/alba/pull/122
48
+
9
49
  ## [1.1.0] - 2021-04-23
10
50
 
11
51
  - [Feat] Implement circular associations control [71e1543]
data/Gemfile CHANGED
@@ -5,16 +5,17 @@ gemspec
5
5
 
6
6
  gem 'activesupport', require: false # For backend
7
7
  gem 'ffaker', require: false # For testing
8
+ gem 'inch', require: false # For inline documents
8
9
  gem 'minitest', '~> 5.14' # For test
9
10
  gem 'rake', '~> 13.0' # For test and automation
10
11
  gem 'rubocop', '>= 0.79.0', require: false # For lint
11
- gem 'rubocop-minitest', '~> 0.11.0', require: false # For lint
12
- gem 'rubocop-performance', '~> 1.11.0', require: false # For lint
12
+ gem 'rubocop-minitest', '~> 0.17.0', require: false # For lint
13
+ gem 'rubocop-performance', '~> 1.12.0', require: false # For lint
13
14
  gem 'rubocop-rake', '>= 0.5.1', require: false # For lint
14
15
  gem 'rubocop-sensible', '~> 0.3.0', require: false # For lint
15
16
  gem 'simplecov', '~> 0.21.0', require: false # For test coverage
16
17
  gem 'simplecov-cobertura', require: false # For test coverage
17
- gem 'yard', require: false
18
+ gem 'yard', require: false # For documentation
18
19
 
19
20
  platforms :ruby do
20
21
  gem 'oj', '~> 3.11', require: false # For backend