activerecord-bitemporal 0.0.1 → 1.0.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: 9789038631ae804c5af1c795f716d5771cc3aeaf95ad80c3e1cdc93fb6e547d7
4
- data.tar.gz: a135d656d36526d61e0aed46795f19145c68987b18de9bcf7486bc959e5cb931
3
+ metadata.gz: f3801f30411bb5e26d32aa1cb27ed45e5c12ebea99b688fcc27b9be1289099fc
4
+ data.tar.gz: a1ef742f3e2b7c8cb3bd280ba0fb92a5f1f45b2504fc29dc7b789d2694c2b284
5
5
  SHA512:
6
- metadata.gz: e5ebbcd1d42ef4c7273a3201a0a7616e94e26a0b619d446168c80fa868609e251295885c9cd35de979015ff5353f0c5508a2bb4377346cb6aa00b0c5ade0039f
7
- data.tar.gz: 60e060ec7b96e3c828c1b81abb695761e9c2115bb425fe07f3a2c5d340e494680211540ca3c1de5763a2c82492f8cdd69fcd2faf77e554d8cf48609f044254a7
6
+ metadata.gz: 48b484ead6164bd5784a9060085267e7b6b9ae80a23f5015177ed45e4e82e702634731b2bb90a5ac67018c6d3052edf6839095327bc22bfbab98d412a013f279
7
+ data.tar.gz: 004c5991bcebf4079b98665fb295d45cb473ebf2f83f0cdbf4ca08770003e7f4cf38f969b18e8d265fe2b39e3621ae5201953396dcecf9a79010f55c875be1b4
@@ -0,0 +1,123 @@
1
+ version: 2.1
2
+
3
+ executors:
4
+ ruby_2_7:
5
+ docker:
6
+ - image: ruby:2.7.5
7
+ - image: circleci/postgres:11-alpine
8
+
9
+ ruby_3_0:
10
+ docker:
11
+ - image: ruby:3.0.3
12
+ - image: circleci/postgres:11-alpine
13
+
14
+ ruby_3_1:
15
+ docker:
16
+ - image: ruby:3.1.0
17
+ - image: circleci/postgres:11-alpine
18
+
19
+ commands:
20
+ run_rspec:
21
+ parameters:
22
+ gemfile:
23
+ type: string
24
+ steps:
25
+ - checkout
26
+ - run: gem install bundler
27
+ - run: bundle install
28
+ - run: bundle exec appraisal << parameters.gemfile >> bundle install
29
+ - run: bundle exec appraisal << parameters.gemfile >> rspec
30
+
31
+ jobs:
32
+ ruby_2_7_rails_5_2:
33
+ executor: ruby_2_7
34
+ steps:
35
+ - run_rspec:
36
+ gemfile: rails-5.2
37
+
38
+ ruby_2_7_rails_6_0:
39
+ executor: ruby_2_7
40
+ steps:
41
+ - run_rspec:
42
+ gemfile: rails-6.0
43
+
44
+ ruby_2_7_rails_6_1:
45
+ executor: ruby_2_7
46
+ steps:
47
+ - run_rspec:
48
+ gemfile: rails-6.1
49
+
50
+ ruby_2_7_rails_7_0:
51
+ executor: ruby_2_7
52
+ steps:
53
+ - run_rspec:
54
+ gemfile: rails-7.0
55
+
56
+ ruby_2_7_rails_main:
57
+ executor: ruby_2_7
58
+ steps:
59
+ - run_rspec:
60
+ gemfile: rails-main
61
+
62
+ ruby_3_0_rails_6_1:
63
+ executor: ruby_3_0
64
+ steps:
65
+ - run_rspec:
66
+ gemfile: rails-6.1
67
+
68
+ ruby_3_0_rails_7_0:
69
+ executor: ruby_3_0
70
+ steps:
71
+ - run_rspec:
72
+ gemfile: rails-7.0
73
+
74
+ ruby_3_0_rails_main:
75
+ executor: ruby_3_0
76
+ steps:
77
+ - run_rspec:
78
+ gemfile: rails-main
79
+
80
+ ruby_3_1_rails_6_1:
81
+ executor: ruby_3_1
82
+ steps:
83
+ - run_rspec:
84
+ gemfile: rails-6.1
85
+
86
+ ruby_3_1_rails_7_0:
87
+ executor: ruby_3_1
88
+ steps:
89
+ - run_rspec:
90
+ gemfile: rails-7.0
91
+
92
+ ruby_3_1_rails_main:
93
+ executor: ruby_3_1
94
+ steps:
95
+ - run_rspec:
96
+ gemfile: rails-main
97
+
98
+ workflows:
99
+ version: 2
100
+
101
+ test:
102
+ jobs: &jobs
103
+ - ruby_2_7_rails_5_2
104
+ - ruby_2_7_rails_6_0
105
+ - ruby_2_7_rails_6_1
106
+ - ruby_2_7_rails_7_0
107
+ - ruby_2_7_rails_main
108
+ - ruby_3_0_rails_6_1
109
+ - ruby_3_0_rails_7_0
110
+ - ruby_3_0_rails_main
111
+ - ruby_3_1_rails_6_1
112
+ - ruby_3_1_rails_7_0
113
+ - ruby_3_1_rails_main
114
+
115
+ daily_test:
116
+ triggers:
117
+ - schedule:
118
+ cron: "0 23 * * *"
119
+ filters:
120
+ branches:
121
+ only:
122
+ - master
123
+ jobs: *jobs
@@ -0,0 +1,27 @@
1
+ # Set to true to add reviewers to pull requests
2
+ addReviewers: true
3
+
4
+ # Set to true to add assignees to pull requests
5
+ addAssignees: false
6
+
7
+ # A list of reviewers to be added to pull requests (GitHub user name)
8
+ reviewers:
9
+ - 16bitidol
10
+ - k-myst
11
+ - kodera123
12
+ - kouryou
13
+ - marumarism
14
+ - motsat
15
+ - osyo-manga
16
+ - sugamasao
17
+ - tknzk
18
+ - wakasa51
19
+ - wata727
20
+ - yono
21
+
22
+ # A list of keywords to be skipped the process that add reviewers if pull requests include it
23
+ skipKeywords:
24
+
25
+ # A number of reviewers added to the pull request
26
+ # Set 0 to add all the reviewers (default: 0)
27
+ numberOfReviewers: 2
data/.gitignore CHANGED
@@ -1,8 +1,2 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/
1
+ .bundle/
2
+ gemfiles/*.gemfile.lock
data/Appraisals ADDED
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ appraise "rails-5.2" do
4
+ gem "rails", "~> 5.2.0"
5
+ end
6
+
7
+ appraise "rails-main" do
8
+ gem "rails", git: 'https://github.com/rails/rails.git', branch: "main"
9
+ end
10
+
11
+ appraise "rails-6.0" do
12
+ gem "rails", "~> 6.0.2"
13
+ end
14
+
15
+ appraise "rails-6.1" do
16
+ gem "rails", "~> 6.1.0"
17
+ end
18
+
19
+ appraise "rails-7.0" do
20
+ gem "rails", "~> 7.0.1"
21
+ end
data/CHANGELOG.md ADDED
@@ -0,0 +1,39 @@
1
+ # Changelog
2
+
3
+ ## Unreleased
4
+
5
+ ### Breaking Changes
6
+
7
+ - [#15](https://github.com/kufu/activerecord-bitemporal/pull/15) - `validates :bitemporal_id, uniqueness: true` is no raise by default.
8
+ - [#19](https://github.com/kufu/activerecord-bitemporal/pull/19) - Fix create history records after logical destroy in #destroy.
9
+
10
+ ### Added
11
+
12
+ - [#12](https://github.com/kufu/activerecord-bitemporal/pull/12) - Added utility (and extension) scopes.
13
+ - `.bitemporl_for(id)`
14
+ - `.valid_in(from: from, to: to)`
15
+ - `.valid_allin(from: from, to: to)`
16
+ - `.bitemporal_histories_by(id)`
17
+ - `.bitemporal_most_future(id)`
18
+ - `.bitemporal_most_past(id)`
19
+ - [#15](https://github.com/kufu/activerecord-bitemporal/pull/15) - Added `.bitemporalize`. Use `.bitemporalize` instead of `include ActiveRecord::Bitemporal`.
20
+ - [#15](https://github.com/kufu/activerecord-bitemporal/pull/15) - Added `.bitemporalize` options.
21
+
22
+ | option | describe | default |
23
+ | --- | --- | --- |
24
+ | `enable_strict_by_validates_bitemporal_id` | raised with `validates :bitemporal_id, uniqueness: true` if `true` | false |
25
+
26
+
27
+ ### Fixed
28
+
29
+ - [#17](https://github.com/kufu/activerecord-bitemporal/pull/17) - Fixed bug in create record with valid_datetime out of the range valid_from to valid_to.
30
+ - [#18](https://github.com/kufu/activerecord-bitemporal/pull/18) - `record.valid_datetime` is not nil when after `Model.valid_at("2019/1/1").ignore_valid_datetime`.
31
+ - [#18](https://github.com/kufu/activerecord-bitemporal/pull/18) - `ignore_valid_datetime` is not applied in `ActiveRecord::Bitemporal.valid_at!`.
32
+ - [#21](https://github.com/kufu/activerecord-bitemporal/pull/21) - Fixed bug in multi thread with `#update`.
33
+ - [#24](https://github.com/kufu/activerecord-bitemporal/pull/24) [#25](https://github.com/kufu/activerecord-bitemporal/pull/25) - Fixed bug. Does not respect table alias on join clause.
34
+ - [#27](https://github.com/kufu/activerecord-bitemporal/pull/27) - Fixed a bug that `swapped_id` doesn't change after `#reload`.
35
+ - [#28](https://github.com/kufu/activerecord-bitemporal/pull/28) - Fix the bug that `valid_from == valid_to` record is generated.
36
+
37
+ ### Deprecated
38
+
39
+ - None
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at dev@smarthr.jp. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [http://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: http://contributor-covenant.org
74
+ [version]: http://contributor-covenant.org/version/1/4/
data/Gemfile CHANGED
@@ -1,6 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source "https://rubygems.org"
2
4
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
5
+ git_source(:github) {|repo_name| "https://github.com/kufu/activerecord-bitemporal" }
4
6
 
5
- # Specify your gem's dependencies in activerecord-bitemporal.gemspec
6
7
  gemspec
8
+
9
+ gem 'appraisal'
data/Gemfile.lock CHANGED
@@ -1,17 +1,77 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- activerecord-bitemporal (0.0.1)
4
+ activerecord-bitemporal (0.1.0)
5
+ activerecord (>= 5.2)
5
6
 
6
7
  GEM
7
8
  remote: https://rubygems.org/
8
9
  specs:
10
+ activemodel (6.1.3)
11
+ activesupport (= 6.1.3)
12
+ activerecord (6.1.3)
13
+ activemodel (= 6.1.3)
14
+ activesupport (= 6.1.3)
15
+ activesupport (6.1.3)
16
+ concurrent-ruby (~> 1.0, >= 1.0.2)
17
+ i18n (>= 1.6, < 2)
18
+ minitest (>= 5.1)
19
+ tzinfo (~> 2.0)
20
+ zeitwerk (~> 2.3)
21
+ appraisal (2.2.0)
22
+ bundler
23
+ rake
24
+ thor (>= 0.14.0)
25
+ byebug (10.0.2)
26
+ coderay (1.1.2)
27
+ concurrent-ruby (1.1.8)
28
+ database_cleaner (1.7.0)
29
+ diff-lcs (1.3)
30
+ i18n (1.8.9)
31
+ concurrent-ruby (~> 1.0)
32
+ method_source (0.9.0)
33
+ minitest (5.14.4)
34
+ pg (1.1.3)
35
+ pry (0.11.3)
36
+ coderay (~> 1.1.0)
37
+ method_source (~> 0.9.0)
38
+ pry-byebug (3.6.0)
39
+ byebug (~> 10.0)
40
+ pry (~> 0.10)
41
+ rake (13.0.1)
42
+ rspec (3.8.0)
43
+ rspec-core (~> 3.8.0)
44
+ rspec-expectations (~> 3.8.0)
45
+ rspec-mocks (~> 3.8.0)
46
+ rspec-core (3.8.0)
47
+ rspec-support (~> 3.8.0)
48
+ rspec-expectations (3.8.1)
49
+ diff-lcs (>= 1.2.0, < 2.0)
50
+ rspec-support (~> 3.8.0)
51
+ rspec-mocks (3.8.0)
52
+ diff-lcs (>= 1.2.0, < 2.0)
53
+ rspec-support (~> 3.8.0)
54
+ rspec-support (3.8.0)
55
+ thor (0.20.3)
56
+ timecop (0.9.1)
57
+ tzinfo (2.0.4)
58
+ concurrent-ruby (~> 1.0)
59
+ zeitwerk (2.4.2)
9
60
 
10
61
  PLATFORMS
11
62
  ruby
12
63
 
13
64
  DEPENDENCIES
14
65
  activerecord-bitemporal!
66
+ appraisal
67
+ bundler
68
+ database_cleaner
69
+ pg
70
+ pry
71
+ pry-byebug
72
+ rake (~> 13.0)
73
+ rspec (~> 3.0)
74
+ timecop
15
75
 
16
76
  BUNDLED WITH
17
- 1.17.2
77
+ 2.2.3
data/LICENSE ADDED
@@ -0,0 +1,202 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright 2018 SmartHR, Inc.
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.