timingapp 0.1.0 → 0.2.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 +4 -4
- data/.rubocop.yml +5 -1
- data/lib/timingapp/models/app_activity.rb +8 -11
- data/lib/timingapp/models/app_activity_with_strings.rb +11 -0
- data/lib/timingapp/models/application.rb +2 -0
- data/lib/timingapp/models/device.rb +3 -1
- data/lib/timingapp/models/event.rb +11 -0
- data/lib/timingapp/models/event_source.rb +15 -0
- data/lib/timingapp/models/event_source_task_activity.rb +11 -0
- data/lib/timingapp/models/filter.rb +4 -0
- data/lib/timingapp/models/integration.rb +9 -0
- data/lib/timingapp/models/integration_log_result.rb +5 -1
- data/lib/timingapp/models/integration_project.rb +18 -0
- data/lib/timingapp/models/project.rb +8 -0
- data/lib/timingapp/models/task_activity.rb +10 -0
- data/lib/timingapp/timing_record.rb +28 -0
- data/lib/timingapp/version.rb +1 -1
- data/schema.rb +0 -85
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0bbf343e9db9ad0a5cc47973b64324a5f8f2db9c4c212c506d685bb1012ca142
|
4
|
+
data.tar.gz: 385f3dfb6c8b4443cae10f63980c44dfe2da09b3068f3f76795ce4ef8b6e71ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 62e1b5c1ff904701269431b8c0b9940bf2cc03342ee1af63a0d9e3a514c236382854e6ba73831cacf130608bd27f089bb5e745dfaadea0de1b704c03e6628ec6
|
7
|
+
data.tar.gz: 680a1c4eba43e5d67a99d6aa74855380bbfbd1d2f3239b7b47cf95d7d861b96095b3075c9c9c18cbdf82c73a46bd118dcd3fab316e89b1d4751e9899c69b162e
|
data/.rubocop.yml
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
AllCops:
|
2
|
-
TargetRubyVersion: 3.
|
2
|
+
TargetRubyVersion: 3.2
|
3
3
|
NewCops: enable
|
4
4
|
SuggestExtensions: false
|
5
5
|
|
@@ -12,6 +12,10 @@ Style/StringLiteralsInInterpolation:
|
|
12
12
|
Style/Documentation:
|
13
13
|
Enabled: false
|
14
14
|
|
15
|
+
Naming/PredicateName:
|
16
|
+
Exclude:
|
17
|
+
- lib/timingapp/timing_record.rb
|
18
|
+
|
15
19
|
Naming/MethodName:
|
16
20
|
Exclude:
|
17
21
|
- lib/timingapp/models/**
|
@@ -5,18 +5,15 @@ module Timingapp
|
|
5
5
|
self.table_name = "AppActivity"
|
6
6
|
self.primary_key = "id"
|
7
7
|
|
8
|
-
belongs_to :
|
9
|
-
belongs_to :
|
10
|
-
belongs_to :
|
11
|
-
belongs_to :
|
12
|
-
belongs_to :
|
8
|
+
belongs_to :device, foreign_key: :localDeviceID
|
9
|
+
belongs_to :application, foreign_key: :applicationID
|
10
|
+
belongs_to :title, foreign_key: :titleID
|
11
|
+
belongs_to :path, foreign_key: :pathID
|
12
|
+
belongs_to :project, foreign_key: :projectID
|
13
13
|
|
14
|
-
|
15
|
-
Time.at(super)
|
16
|
-
end
|
14
|
+
scope :deleted, -> { where(isDeleted: true) }
|
17
15
|
|
18
|
-
|
19
|
-
|
20
|
-
end
|
16
|
+
time_column :startDate
|
17
|
+
time_column :endDate
|
21
18
|
end
|
22
19
|
end
|
@@ -4,5 +4,16 @@ module Timingapp
|
|
4
4
|
class AppActivityWithStrings < TimingRecord
|
5
5
|
self.table_name = "AppActivityWithStrings"
|
6
6
|
self.primary_key = "id"
|
7
|
+
|
8
|
+
belongs_to :device, foreign_key: :localDeviceID
|
9
|
+
belongs_to :application, foreign_key: :applicationID
|
10
|
+
belongs_to :title, foreign_key: :titleID
|
11
|
+
belongs_to :path, foreign_key: :pathID
|
12
|
+
belongs_to :project, foreign_key: :projectID
|
13
|
+
|
14
|
+
scope :deleted, -> { where(isDeleted: true) }
|
15
|
+
|
16
|
+
time_column :startDate
|
17
|
+
time_column :endDate
|
7
18
|
end
|
8
19
|
end
|
@@ -4,5 +4,16 @@ module Timingapp
|
|
4
4
|
class Event < TimingRecord
|
5
5
|
self.table_name = "Event"
|
6
6
|
self.primary_key = "id"
|
7
|
+
|
8
|
+
belongs_to :integration, foreign_key: :integration_id
|
9
|
+
belongs_to :event_source, foreign_key: :event_source_id
|
10
|
+
|
11
|
+
json_column :property_bag
|
12
|
+
|
13
|
+
time_column :start_date
|
14
|
+
time_column :end_date
|
15
|
+
time_column :last_modified_origin
|
16
|
+
time_column :last_modified_timing
|
17
|
+
time_column :deleted_at
|
7
18
|
end
|
8
19
|
end
|
@@ -4,5 +4,20 @@ module Timingapp
|
|
4
4
|
class EventSource < TimingRecord
|
5
5
|
self.table_name = "EventSource"
|
6
6
|
self.primary_key = "id"
|
7
|
+
|
8
|
+
belongs_to :integration, foreign_key: :integration_id
|
9
|
+
belongs_to :integration_project, foreign_key: :integration_project_id
|
10
|
+
belongs_to :template, foreign_key: :template_id
|
11
|
+
|
12
|
+
scope :templates, -> { where(is_template: true) }
|
13
|
+
scope :favorites, -> { where(is_favorite: true) }
|
14
|
+
|
15
|
+
time_column :last_modified_origin
|
16
|
+
time_column :last_modified_timing
|
17
|
+
time_column :created_by_integration_at
|
18
|
+
time_column :deleted_by_integration_at
|
19
|
+
time_column :hidden_at
|
20
|
+
|
21
|
+
json_column :property_bag
|
7
22
|
end
|
8
23
|
end
|
@@ -4,5 +4,16 @@ module Timingapp
|
|
4
4
|
class EventSourceTaskActivity < TimingRecord
|
5
5
|
self.table_name = "EventSourceTaskActivity"
|
6
6
|
self.primary_key = "id"
|
7
|
+
|
8
|
+
belongs_to :integration, foreign_key: :integration_id
|
9
|
+
belongs_to :event_source, foreign_key: :event_source_id
|
10
|
+
belongs_to :task_activity, foreign_key: :task_activity_id
|
11
|
+
belongs_to :event, foreign_key: :event_id
|
12
|
+
|
13
|
+
scope :deleted, -> { where.not(deleted_at: nil) }
|
14
|
+
|
15
|
+
time_column :deleted_at
|
16
|
+
|
17
|
+
json_column :property_bag
|
7
18
|
end
|
8
19
|
end
|
@@ -4,5 +4,14 @@ module Timingapp
|
|
4
4
|
class Integration < TimingRecord
|
5
5
|
self.table_name = "Integration"
|
6
6
|
self.primary_key = "id"
|
7
|
+
self.inheritance_column = nil
|
8
|
+
|
9
|
+
time_column :enabled_at
|
10
|
+
time_column :paused_at
|
11
|
+
time_column :deleted_at
|
12
|
+
time_column :last_modified_origin
|
13
|
+
time_column :last_modified_timing
|
14
|
+
|
15
|
+
json_column :property_bag
|
7
16
|
end
|
8
17
|
end
|
@@ -2,7 +2,11 @@
|
|
2
2
|
|
3
3
|
module Timingapp
|
4
4
|
class IntegrationLogResult < TimingRecord
|
5
|
-
self.table_name = "
|
5
|
+
self.table_name = "integration_log_result"
|
6
6
|
self.primary_key = "id"
|
7
|
+
|
8
|
+
belongs_to :integration, foreign_key: :integration_id
|
9
|
+
|
10
|
+
time_column :timestamp
|
7
11
|
end
|
8
12
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Timingapp
|
4
|
+
class IntegrationProject < TimingRecord
|
5
|
+
self.table_name = "IntegrationProject"
|
6
|
+
self.primary_key = "id"
|
7
|
+
|
8
|
+
belongs_to :integration, foreign_key: :integration_id
|
9
|
+
belongs_to :timing_project, foreign_key: :timing_project_id
|
10
|
+
|
11
|
+
time_column :last_modified_origin
|
12
|
+
time_column :last_modified_timing
|
13
|
+
time_column :deleted_by_integration_at
|
14
|
+
time_column :hidden_at
|
15
|
+
|
16
|
+
json_column :property_bag
|
17
|
+
end
|
18
|
+
end
|
@@ -4,5 +4,13 @@ module Timingapp
|
|
4
4
|
class Project < TimingRecord
|
5
5
|
self.table_name = "Project"
|
6
6
|
self.primary_key = "id"
|
7
|
+
|
8
|
+
has_parent
|
9
|
+
|
10
|
+
belongs_to :membership, foreign_key: :membershipID, class_name: "TODO"
|
11
|
+
|
12
|
+
scope :archived, -> { where(isArchived: true) }
|
13
|
+
|
14
|
+
json_column :property_bag
|
7
15
|
end
|
8
16
|
end
|
@@ -4,5 +4,15 @@ module Timingapp
|
|
4
4
|
class TaskActivity < TimingRecord
|
5
5
|
self.table_name = "TaskActivity"
|
6
6
|
self.primary_key = "id"
|
7
|
+
|
8
|
+
belongs_to :project, foreign_key: :projectID
|
9
|
+
|
10
|
+
scope :running, -> { where(isRunning: true) }
|
11
|
+
scope :deleted, -> { where(isDeleted: true) }
|
12
|
+
|
13
|
+
json_column :property_bag
|
14
|
+
|
15
|
+
time_column :startDate
|
16
|
+
time_column :endDate
|
7
17
|
end
|
8
18
|
end
|
@@ -11,5 +11,33 @@ module Timingapp
|
|
11
11
|
def before_destroy
|
12
12
|
raise ActiveRecord::ReadOnlyRecord, "Cannot delete a read-only record"
|
13
13
|
end
|
14
|
+
|
15
|
+
def self.has_parent(foreign_key = :parentID)
|
16
|
+
belongs_to :parent, foreign_key: foreign_key, class_name: name
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.json_column(column)
|
20
|
+
define_method(column) do |*args, &block|
|
21
|
+
value = super(*args, &block)
|
22
|
+
|
23
|
+
begin
|
24
|
+
JSON.parse(value)
|
25
|
+
rescue JSON::ParserError, TypeError
|
26
|
+
value
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.time_column(column)
|
32
|
+
define_method(column) do |*args, &block|
|
33
|
+
value = super(*args, &block)
|
34
|
+
|
35
|
+
begin
|
36
|
+
Time.at(value)
|
37
|
+
rescue TypeError
|
38
|
+
value
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
14
42
|
end
|
15
43
|
end
|
data/lib/timingapp/version.rb
CHANGED
data/schema.rb
CHANGED
@@ -85,88 +85,3 @@ ActiveRecord::Schema[8.0].define(version: 202_301_121_209) do
|
|
85
85
|
add_foreign_key "Project", "Project", column: "parentID", on_update: :cascade
|
86
86
|
add_foreign_key "TaskActivity", "Project", column: "projectID", on_update: :cascade
|
87
87
|
end
|
88
|
-
# This file is auto-generated from the current state of the database. Instead
|
89
|
-
# of editing this file, please use the migrations feature of Active Record to
|
90
|
-
# incrementally modify your database, and then regenerate this schema definition.
|
91
|
-
#
|
92
|
-
# This file is the source Rails uses to define your schema when running `bin/rails
|
93
|
-
# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
|
94
|
-
# be faster and is potentially less error prone than running all of your
|
95
|
-
# migrations from scratch. Old migrations may fail to apply correctly if those
|
96
|
-
# migrations use external dependencies or application code.
|
97
|
-
#
|
98
|
-
# It's strongly recommended that you check this file into your version control system.
|
99
|
-
|
100
|
-
ActiveRecord::Schema[8.0].define(version: 202_301_121_209) do
|
101
|
-
# Could not dump table "AppActivity" because of following StandardError
|
102
|
-
# Unknown type 'REAL' for column 'startDate'
|
103
|
-
|
104
|
-
create_table "Application", force: :cascade do |t|
|
105
|
-
t.text "bundleIdentifier"
|
106
|
-
t.text "executable"
|
107
|
-
t.text "title"
|
108
|
-
t.text "property_bag"
|
109
|
-
t.index %w[bundleIdentifier executable title], name: "index_application_on_bundleidentifier_executable_title"
|
110
|
-
end
|
111
|
-
|
112
|
-
create_table "Device", primary_key: "localID", force: :cascade do |t|
|
113
|
-
t.integer "globalID", null: false
|
114
|
-
t.binary "macAddress"
|
115
|
-
t.text "displayName"
|
116
|
-
t.text "property_bag"
|
117
|
-
end
|
118
|
-
|
119
|
-
# Could not dump table "Event" because of following StandardError
|
120
|
-
# Unknown type 'REAL' for column 'start_date'
|
121
|
-
|
122
|
-
# Could not dump table "EventSource" because of following StandardError
|
123
|
-
# Unknown type 'BOOL' for column 'is_template'
|
124
|
-
|
125
|
-
# Could not dump table "EventSourceTaskActivity" because of following StandardError
|
126
|
-
# Unknown type 'REAL' for column 'deleted_at'
|
127
|
-
|
128
|
-
create_table "Filter", force: :cascade do |t|
|
129
|
-
t.integer "parentID"
|
130
|
-
t.integer "listPosition", null: false
|
131
|
-
t.text "title", null: false
|
132
|
-
t.binary "predicate"
|
133
|
-
t.boolean "isSample", default: false, null: false
|
134
|
-
t.text "property_bag"
|
135
|
-
t.index %w[parentID listPosition], name: "index_filter_on_parentid_listposition"
|
136
|
-
end
|
137
|
-
|
138
|
-
# Could not dump table "Integration" because of following StandardError
|
139
|
-
# Unknown type 'REAL' for column 'enabled_at'
|
140
|
-
|
141
|
-
# Could not dump table "IntegrationProject" because of following StandardError
|
142
|
-
# Unknown type 'REAL' for column 'last_modified_origin'
|
143
|
-
|
144
|
-
create_table "Path", force: :cascade do |t|
|
145
|
-
t.text "stringValue", null: false
|
146
|
-
end
|
147
|
-
|
148
|
-
# Could not dump table "Project" because of following StandardError
|
149
|
-
# Unknown type 'REAL' for column 'productivityScore'
|
150
|
-
|
151
|
-
# Could not dump table "TaskActivity" because of following StandardError
|
152
|
-
# Unknown type 'REAL' for column 'startDate'
|
153
|
-
|
154
|
-
create_table "Title", force: :cascade do |t|
|
155
|
-
t.text "stringValue", null: false
|
156
|
-
end
|
157
|
-
|
158
|
-
# Could not dump table "integration_log_result" because of following StandardError
|
159
|
-
# Unknown type 'REAL' for column 'timestamp'
|
160
|
-
|
161
|
-
add_foreign_key "AppActivity", "Application", column: "applicationID"
|
162
|
-
add_foreign_key "AppActivity", "Device", column: "localDeviceID", primary_key: "localID"
|
163
|
-
add_foreign_key "AppActivity", "Path", column: "pathID"
|
164
|
-
add_foreign_key "AppActivity", "Project", column: "projectID", on_update: :cascade
|
165
|
-
add_foreign_key "AppActivity", "Title", column: "titleID"
|
166
|
-
add_foreign_key "Event", "Integration", column: "integration_id"
|
167
|
-
add_foreign_key "EventSource", "Integration", column: "integration_id"
|
168
|
-
add_foreign_key "Filter", "Filter", column: "parentID", on_update: :cascade
|
169
|
-
add_foreign_key "IntegrationProject", "Integration", column: "integration_id"
|
170
|
-
add_foreign_key "Project", "Project", column: "parentID", on_update: :cascade
|
171
|
-
add_foreign_key "TaskActivity", "Project", column: "projectID", on_update: :cascade
|
172
|
-
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: timingapp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marco Roth
|
@@ -76,6 +76,7 @@ files:
|
|
76
76
|
- lib/timingapp/models/filter.rb
|
77
77
|
- lib/timingapp/models/integration.rb
|
78
78
|
- lib/timingapp/models/integration_log_result.rb
|
79
|
+
- lib/timingapp/models/integration_project.rb
|
79
80
|
- lib/timingapp/models/path.rb
|
80
81
|
- lib/timingapp/models/project.rb
|
81
82
|
- lib/timingapp/models/schema_migration.rb
|
@@ -99,7 +100,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
99
100
|
requirements:
|
100
101
|
- - ">="
|
101
102
|
- !ruby/object:Gem::Version
|
102
|
-
version: 3.
|
103
|
+
version: 3.2.0
|
103
104
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
105
|
requirements:
|
105
106
|
- - ">="
|