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.
data/sig/taski.rbs CHANGED
@@ -1,4 +1,62 @@
1
1
  module Taski
2
2
  VERSION: String
3
- # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
- end
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.1.1
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-05-18 00:00:00.000000000 Z
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/utils.rb
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