reportable_rails 0.1.3 → 0.1.5
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 +3 -3
- data/lib/reportable_rails.rb +1 -0
- metadata +88 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f498fabac21446a41514e65bf1ca67d28d31e6bf5ffe8d4f963293a361ab90a0
|
4
|
+
data.tar.gz: 0d0e88421369ff82a6758cec28fabb68997d78aa04aaeeb4d1a513fda005f4e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1115b02026cb76fb5f3b0daae2c35fd33193890e40ab6154157837b16d44bf3a20618d81722abd4e243ff8e93381ccd7e8f59edf3ee80172659768c41312c92c
|
7
|
+
data.tar.gz: 862550fcba4edac2242b7bad13ea4546c8c0d314a4186c91f85ba04ce2e45ba794223b5db0859db1f40cc94e910aff14ec800cc8c0a78190f8d022ae2c6e884b
|
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 }
|
@@ -1,3 +1,3 @@
|
|
1
|
-
module ReportableRails
|
2
|
-
VERSION = "0.1.
|
3
|
-
end
|
1
|
+
module ReportableRails
|
2
|
+
VERSION = "0.1.5"
|
3
|
+
end
|
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.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicu Listana
|
@@ -37,6 +37,76 @@ 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: tzinfo-data
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '1.2023'
|
103
|
+
type: :runtime
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '1.2023'
|
40
110
|
- !ruby/object:Gem::Dependency
|
41
111
|
name: sqlite3
|
42
112
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,7 +114,7 @@ dependencies:
|
|
44
114
|
- - ">="
|
45
115
|
- !ruby/object:Gem::Version
|
46
116
|
version: '0'
|
47
|
-
type: :
|
117
|
+
type: :runtime
|
48
118
|
prerelease: false
|
49
119
|
version_requirements: !ruby/object:Gem::Requirement
|
50
120
|
requirements:
|
@@ -93,6 +163,20 @@ dependencies:
|
|
93
163
|
- - ">="
|
94
164
|
- !ruby/object:Gem::Version
|
95
165
|
version: '0'
|
166
|
+
- !ruby/object:Gem::Dependency
|
167
|
+
name: shoulda-matchers
|
168
|
+
requirement: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - "~>"
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '5.0'
|
173
|
+
type: :development
|
174
|
+
prerelease: false
|
175
|
+
version_requirements: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - "~>"
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: '5.0'
|
96
180
|
description: ReportableRails provides a complete solution for managing user reports,
|
97
181
|
hours logging, and report categories in Ruby on Rails applications
|
98
182
|
email:
|
@@ -102,7 +186,9 @@ extensions: []
|
|
102
186
|
extra_rdoc_files: []
|
103
187
|
files:
|
104
188
|
- README.md
|
189
|
+
- Rakefile
|
105
190
|
- lib/reportable_rails.rb
|
191
|
+
- lib/reportable_rails/errors.rb
|
106
192
|
- lib/reportable_rails/models/hours_log.rb
|
107
193
|
- lib/reportable_rails/models/report.rb
|
108
194
|
- lib/reportable_rails/models/report_category.rb
|