arjad_version_tracker 0.2.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/arjad_version_tracker.gemspec +3 -0
- data/lib/arjad_version_tracker/version.rb +1 -1
- data/lib/arjad_version_tracker.rb +2 -2
- data/lib/generators/arjad_version_tracker/install_generator.rb +19 -0
- data/lib/generators/arjad_version_tracker/templates/migration.rb +12 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bbf705d7171dc9d343910f893066c4f821f1a9cf6e101544fa339a405b0425c4
|
4
|
+
data.tar.gz: b5a6cbf1dfe3dc1444a619fce5e4ab3fb05f1a20b9f88be2f8d25c381d99271b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec1f79121f31b5c4a8f457a4b812a9187308236ce7b727e26d7dc00855fccf321cd5a20f9a07e9ce709bb0ad1beec1b7d6fed7cb60269206397f14601c90e982
|
7
|
+
data.tar.gz: 176cc8d39d9d1ee2a01c3e8bd2bb84e50e2292bad5e06b8ce63f347ecac599a7cc322e1f308221f2e7782baa4255789ccc1b85186f2dd11bb3ccb9b5f83a9120
|
@@ -22,6 +22,9 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
23
23
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
|
24
24
|
end
|
25
|
+
spec.files += Dir["lib/**/*.rb"] # Add this line to include all .rb files in the lib directory
|
26
|
+
spec.files += Dir["lib/templates/**/*.rb"] # Add this line to include all .rb files in the lib/templates directory
|
27
|
+
|
25
28
|
spec.bindir = "exe"
|
26
29
|
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
27
30
|
spec.require_paths = ["lib"]
|
@@ -4,7 +4,7 @@ module ArjadVersionTracker
|
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
|
6
6
|
included do
|
7
|
-
has_many :versions,
|
7
|
+
has_many :versions, dependent: :destroy
|
8
8
|
before_update :track_version
|
9
9
|
end
|
10
10
|
|
@@ -15,6 +15,6 @@ module ArjadVersionTracker
|
|
15
15
|
private
|
16
16
|
|
17
17
|
def track_version
|
18
|
-
versions.create!(attributes.except("id", "created_at", "updated_at"))
|
18
|
+
versions.create!(versionable_id: self.id, versionable_name: self.class.name, data: attributes.except("id", "created_at", "updated_at"))
|
19
19
|
end
|
20
20
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# lib/generators/arjad_version_tracker/install_generator.rb
|
2
|
+
|
3
|
+
require 'rails/generators/base'
|
4
|
+
|
5
|
+
module ArjadVersionTracker
|
6
|
+
module Generators
|
7
|
+
class InstallGenerator < Rails::Generators::Base
|
8
|
+
source_root File.expand_path('templates', __dir__)
|
9
|
+
|
10
|
+
def create_migration
|
11
|
+
migration_template 'migration.rb', "db/migrate/#{timestamp}_create_versions.rb"
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.next_migration_number(dir)
|
15
|
+
Time.now.utc.strftime("%Y%m%d%H%M%S")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# lib/generators/arjad_version_tracker/templates/migration.rb
|
2
|
+
class CreateVersions < ActiveRecord::Migration[6.0]
|
3
|
+
def change
|
4
|
+
create_table :versions do |t|
|
5
|
+
# Add necessary fields here to store the version data
|
6
|
+
t.jsonb :data
|
7
|
+
t.string :versionable_name
|
8
|
+
t.integer :versionable_id
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arjad_version_tracker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- arjad
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-05-
|
11
|
+
date: 2024-05-25 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Arjad Version Tracker is a Ruby gem designed to simplify tracking and
|
14
14
|
managing version history of models in Rails applications. It provides a straightforward
|
@@ -30,6 +30,8 @@ files:
|
|
30
30
|
- bin/setup
|
31
31
|
- lib/arjad_version_tracker.rb
|
32
32
|
- lib/arjad_version_tracker/version.rb
|
33
|
+
- lib/generators/arjad_version_tracker/install_generator.rb
|
34
|
+
- lib/generators/arjad_version_tracker/templates/migration.rb
|
33
35
|
homepage: https://github.com/arjad/arjad_version_tracker
|
34
36
|
licenses: []
|
35
37
|
metadata:
|