reportable_rails 0.1.3 → 0.1.4
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 +4 -4
- data/README.md +7 -0
- data/Rakefile +6 -0
- data/lib/reportable_rails/errors.rb +3 -0
- data/lib/reportable_rails/models/hours_log.rb +1 -1
- data/lib/reportable_rails/models/report.rb +15 -3
- data/lib/reportable_rails/models/report_category.rb +1 -1
- data/lib/reportable_rails/version.rb +1 -1
- data/lib/reportable_rails.rb +1 -0
- metadata +102 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef90324ca92f03a4efba50015b5a1b7f39d613d401ba0232b7808567f473c2e7
|
4
|
+
data.tar.gz: ce4f851f7bd2f814d84b0b0bb73a03e9018392e54c38211dfcdda614f46d1dac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 293a7567e11664b79d5eea075a35f64cb112d1bb95de105fb2e7227902b55b97d2fd50886510c6d5d67c8eea1ff4816a6437b55ff72073d8b5978684807dd8b4
|
7
|
+
data.tar.gz: e530c203a222dab06ea1f1f184515a7ce114141b7d5a14e7c6c00e2176c0120b98f9b84e25db7521225df4e96927c991aaf6b93185876b377bcca386f8e0a993
|
data/README.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# ReportableRails
|
2
2
|
|
3
|
+
[](https://badge.fury.io/rb/reportable_rails)
|
4
|
+
[](https://github.com/adobocorp/reportable_rails/actions)
|
5
|
+
[](https://github.com/testdouble/standard)
|
6
|
+
[](https://codeclimate.com/github/adobocorp/reportable_rails)
|
7
|
+
[](https://codeclimate.com/github/adobocorp/reportable_rails)
|
8
|
+
[](https://www.ruby-lang.org/en/)
|
9
|
+
|
3
10
|
ReportableRails is a Ruby on Rails gem that provides a flexible reporting system for tracking and managing time-based reports with period management.
|
4
11
|
|
5
12
|
## Installation
|
data/Rakefile
ADDED
@@ -4,7 +4,7 @@ module ReportableRails
|
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
|
6
6
|
included do
|
7
|
-
belongs_to :report
|
7
|
+
belongs_to :report
|
8
8
|
|
9
9
|
validates :hours, presence: true, numericality: { greater_than: 0, less_than_or_equal_to: 24 }
|
10
10
|
validates :date, presence: true
|
@@ -5,12 +5,13 @@ module ReportableRails
|
|
5
5
|
|
6
6
|
included do
|
7
7
|
belongs_to :owner, class_name: ReportableRails.configuration.user_class
|
8
|
-
belongs_to :report_category,
|
9
|
-
has_many :hours_logs,
|
8
|
+
belongs_to :report_category, optional: true
|
9
|
+
has_many :hours_logs, dependent: :destroy
|
10
10
|
|
11
11
|
validates :owner, presence: true
|
12
12
|
|
13
13
|
def add_hours_log(hours_log_params)
|
14
|
+
validate_period_for_date(hours_log_params[:date])
|
14
15
|
hours_logs.create(hours_log_params)
|
15
16
|
end
|
16
17
|
|
@@ -28,7 +29,7 @@ module ReportableRails
|
|
28
29
|
|
29
30
|
def current_period_end_date
|
30
31
|
if Date.current.day <= 15
|
31
|
-
Date.current.beginning_of_month +
|
32
|
+
Date.current.beginning_of_month + 14.days
|
32
33
|
else
|
33
34
|
Date.current.end_of_month
|
34
35
|
end
|
@@ -47,6 +48,17 @@ module ReportableRails
|
|
47
48
|
def current_period_hours
|
48
49
|
hours_logs.select(&:current_period?)
|
49
50
|
end
|
51
|
+
|
52
|
+
private
|
53
|
+
|
54
|
+
def validate_period_for_date(date)
|
55
|
+
return if date.nil?
|
56
|
+
|
57
|
+
unless date >= current_period_start_date && date <= current_period_end_date
|
58
|
+
raise InvalidPeriodError, "Date must be within the current reporting period (#{current_period_start_date} to #{current_period_end_date})"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
50
62
|
end
|
51
63
|
end
|
52
64
|
end
|
@@ -4,7 +4,7 @@ module ReportableRails
|
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
|
6
6
|
included do
|
7
|
-
has_many :reports,
|
7
|
+
has_many :reports, dependent: :nullify
|
8
8
|
|
9
9
|
validates :name, presence: true, uniqueness: { case_sensitive: false }
|
10
10
|
validates :description, length: { maximum: 1000 }
|
data/lib/reportable_rails.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'rails/engine'
|
4
4
|
require 'active_model_serializers'
|
5
5
|
require 'reportable_rails/version'
|
6
|
+
require 'reportable_rails/errors'
|
6
7
|
require 'reportable_rails/models/report'
|
7
8
|
require 'reportable_rails/models/report_category'
|
8
9
|
require 'reportable_rails/models/hours_log'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reportable_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicu Listana
|
@@ -37,6 +37,90 @@ dependencies:
|
|
37
37
|
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: '0'
|
40
|
+
- !ruby/object:Gem::Dependency
|
41
|
+
name: actionview
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 6.1.0
|
47
|
+
type: :runtime
|
48
|
+
prerelease: false
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 6.1.0
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: activerecord
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 6.1.0
|
61
|
+
type: :runtime
|
62
|
+
prerelease: false
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 6.1.0
|
68
|
+
- !ruby/object:Gem::Dependency
|
69
|
+
name: activemodel
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 6.1.0
|
75
|
+
type: :runtime
|
76
|
+
prerelease: false
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: 6.1.0
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: activesupport
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 6.1.0
|
89
|
+
type: :runtime
|
90
|
+
prerelease: false
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: 6.1.0
|
96
|
+
- !ruby/object:Gem::Dependency
|
97
|
+
name: reportable_rails
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: 0.1.3
|
103
|
+
type: :runtime
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 0.1.3
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: tzinfo-data
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - "~>"
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '1.2023'
|
117
|
+
type: :runtime
|
118
|
+
prerelease: false
|
119
|
+
version_requirements: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - "~>"
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '1.2023'
|
40
124
|
- !ruby/object:Gem::Dependency
|
41
125
|
name: sqlite3
|
42
126
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,7 +128,7 @@ dependencies:
|
|
44
128
|
- - ">="
|
45
129
|
- !ruby/object:Gem::Version
|
46
130
|
version: '0'
|
47
|
-
type: :
|
131
|
+
type: :runtime
|
48
132
|
prerelease: false
|
49
133
|
version_requirements: !ruby/object:Gem::Requirement
|
50
134
|
requirements:
|
@@ -93,6 +177,20 @@ dependencies:
|
|
93
177
|
- - ">="
|
94
178
|
- !ruby/object:Gem::Version
|
95
179
|
version: '0'
|
180
|
+
- !ruby/object:Gem::Dependency
|
181
|
+
name: shoulda-matchers
|
182
|
+
requirement: !ruby/object:Gem::Requirement
|
183
|
+
requirements:
|
184
|
+
- - "~>"
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: '5.0'
|
187
|
+
type: :development
|
188
|
+
prerelease: false
|
189
|
+
version_requirements: !ruby/object:Gem::Requirement
|
190
|
+
requirements:
|
191
|
+
- - "~>"
|
192
|
+
- !ruby/object:Gem::Version
|
193
|
+
version: '5.0'
|
96
194
|
description: ReportableRails provides a complete solution for managing user reports,
|
97
195
|
hours logging, and report categories in Ruby on Rails applications
|
98
196
|
email:
|
@@ -102,7 +200,9 @@ extensions: []
|
|
102
200
|
extra_rdoc_files: []
|
103
201
|
files:
|
104
202
|
- README.md
|
203
|
+
- Rakefile
|
105
204
|
- lib/reportable_rails.rb
|
205
|
+
- lib/reportable_rails/errors.rb
|
106
206
|
- lib/reportable_rails/models/hours_log.rb
|
107
207
|
- lib/reportable_rails/models/report.rb
|
108
208
|
- lib/reportable_rails/models/report_category.rb
|