taski 0.1.1 → 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/README.md +295 -30
- data/Steepfile +20 -0
- data/examples/complex_example.rb +109 -0
- data/examples/readme_example.rb +30 -0
- data/lib/taski/dependency_analyzer.rb +162 -0
- data/lib/taski/exceptions.rb +14 -0
- data/lib/taski/reference.rb +40 -0
- data/lib/taski/task/base.rb +60 -0
- data/lib/taski/task/define_api.rb +125 -0
- data/lib/taski/task/dependency_resolver.rb +105 -0
- data/lib/taski/task/exports_api.rb +31 -0
- data/lib/taski/task/instance_management.rb +135 -0
- data/lib/taski/version.rb +1 -1
- data/lib/taski.rb +35 -138
- data/sig/taski.rbs +60 -2
- metadata +28 -4
- data/lib/taski/utils.rb +0 -53
data/sig/taski.rbs
CHANGED
|
@@ -1,4 +1,62 @@
|
|
|
1
1
|
module Taski
|
|
2
2
|
VERSION: String
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
|
|
4
|
+
# Custom exceptions
|
|
5
|
+
class CircularDependencyError < StandardError
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class TaskAnalysisError < StandardError
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
class TaskBuildError < StandardError
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Reference class for task references
|
|
15
|
+
class Reference
|
|
16
|
+
@klass: String
|
|
17
|
+
|
|
18
|
+
def initialize: (String klass) -> void
|
|
19
|
+
def deref: () -> Class
|
|
20
|
+
def ==: (untyped other) -> bool
|
|
21
|
+
def inspect: () -> String
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Main Task class
|
|
25
|
+
class Task
|
|
26
|
+
# Constants
|
|
27
|
+
THREAD_KEY_SUFFIX: String
|
|
28
|
+
TASKI_ANALYZING_DEFINE_KEY: Symbol
|
|
29
|
+
ANALYZED_METHODS: Array[Symbol]
|
|
30
|
+
|
|
31
|
+
# Hook methods
|
|
32
|
+
def self.method_added: (Symbol method_name) -> void
|
|
33
|
+
|
|
34
|
+
# Public API methods
|
|
35
|
+
def self.exports: (*Symbol names) -> void
|
|
36
|
+
def self.define: (Symbol name, Proc block, **untyped options) -> void
|
|
37
|
+
def self.build: () -> void
|
|
38
|
+
def self.clean: () -> void
|
|
39
|
+
def self.reset!: () -> self
|
|
40
|
+
def self.refresh: () -> self
|
|
41
|
+
def self.resolve: (Array[untyped] queue, Array[untyped] resolved) -> self
|
|
42
|
+
def self.ref: (String klass) -> Reference
|
|
43
|
+
def self.ensure_instance_built: () -> Task
|
|
44
|
+
|
|
45
|
+
# Instance methods
|
|
46
|
+
def build: () -> void
|
|
47
|
+
def clean: () -> void
|
|
48
|
+
|
|
49
|
+
# Allow dynamic method definitions
|
|
50
|
+
def method_missing: (Symbol name, *untyped args) ?{ (*untyped) -> untyped } -> untyped
|
|
51
|
+
def respond_to_missing?: (Symbol name, bool include_private) -> bool
|
|
52
|
+
|
|
53
|
+
# Allow dynamic class method definitions
|
|
54
|
+
def self.method_missing: (Symbol name, *untyped args) ?{ (*untyped) -> untyped } -> untyped
|
|
55
|
+
def self.respond_to_missing?: (Symbol name, bool include_private) -> bool
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# Dependency analyzer module
|
|
59
|
+
module DependencyAnalyzer
|
|
60
|
+
def self.analyze_method: (Class klass, Symbol method_name) -> Array[Class]
|
|
61
|
+
end
|
|
62
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,28 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: taski
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- ahogappa
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2025-
|
|
11
|
-
dependencies:
|
|
10
|
+
date: 2025-06-15 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: prism
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '1.4'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '1.4'
|
|
12
26
|
description: Taski is a Ruby-based task runner currently under development. It allows
|
|
13
27
|
you to define small, composable tasks along with the outputs they depend on. Taski
|
|
14
28
|
statically resolves dependencies and executes tasks in the correct topological order,
|
|
@@ -24,8 +38,18 @@ files:
|
|
|
24
38
|
- LICENSE
|
|
25
39
|
- README.md
|
|
26
40
|
- Rakefile
|
|
41
|
+
- Steepfile
|
|
42
|
+
- examples/complex_example.rb
|
|
43
|
+
- examples/readme_example.rb
|
|
27
44
|
- lib/taski.rb
|
|
28
|
-
- lib/taski/
|
|
45
|
+
- lib/taski/dependency_analyzer.rb
|
|
46
|
+
- lib/taski/exceptions.rb
|
|
47
|
+
- lib/taski/reference.rb
|
|
48
|
+
- lib/taski/task/base.rb
|
|
49
|
+
- lib/taski/task/define_api.rb
|
|
50
|
+
- lib/taski/task/dependency_resolver.rb
|
|
51
|
+
- lib/taski/task/exports_api.rb
|
|
52
|
+
- lib/taski/task/instance_management.rb
|
|
29
53
|
- lib/taski/version.rb
|
|
30
54
|
- sig/taski.rbs
|
|
31
55
|
homepage: https://github.com/ahogappa/taski
|
data/lib/taski/utils.rb
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
require 'fileutils'
|
|
2
|
-
require 'tmpdir'
|
|
3
|
-
|
|
4
|
-
module Taski
|
|
5
|
-
class Utils < FileUtils
|
|
6
|
-
def rm
|
|
7
|
-
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def rm_f
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def rm_rf
|
|
14
|
-
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def cp
|
|
18
|
-
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def cp_r
|
|
22
|
-
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def mkdir
|
|
26
|
-
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def mkdir_p
|
|
30
|
-
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def mktmpdir
|
|
34
|
-
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def cmd(command, info = nil, ret = false)
|
|
38
|
-
puts "exec: #{info}" if info
|
|
39
|
-
puts command
|
|
40
|
-
|
|
41
|
-
if ret
|
|
42
|
-
ret = `#{command}`.chomp
|
|
43
|
-
if $?.exited?
|
|
44
|
-
ret
|
|
45
|
-
else
|
|
46
|
-
raise "Failed to execute command: #{command}"
|
|
47
|
-
end
|
|
48
|
-
else
|
|
49
|
-
system command, exception: true
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|