tickly 2.1.7 → 2.2.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 79dee9e082c21c3cb365af477c63168331c4576e978c58ebff856daedce3a746
4
- data.tar.gz: 8d11fdb50e734105ae5b9dbf82a866252748ce6fe7c2b910b8f833935051164f
3
+ metadata.gz: 9ba8b0de3b58032c9d43f236a19e5757aa3185c14d9be5abed4220ef6b2fa41b
4
+ data.tar.gz: e0507eb51d99ff01cd6abf31acb56a00623f1aa1812f4b085ad4d096dbc3199c
5
5
  SHA512:
6
- metadata.gz: 410ac1d060bf206c34bc58a7a9ad2a324ad32835a283f0120782353ddd37e1b794bc80037cfaa717cc6767f283cb8022b70e747e0ae21c6c7265e97c867c07c7
7
- data.tar.gz: c07d44ac24fb4d9fa666d38f95a2fda2e6976ab5e18beba7951fb40bb2b66fee3fc4c2069367aefb644bfbe4bf6f9697867e8a5d16db61c6a2b247dfa8f7cb40
6
+ metadata.gz: b84fa70955320fb67bff6729f5e60185ced38ad54b1c1732ef1b1e0419ae4f694b6f524a41c5985ad0e11d3e955db6d7b6a4615697eee71cc52814070ac79878
7
+ data.tar.gz: 305dca21939f6141099e5e13ec76728886255d6213db375fa8de2aff21191d31278b3c67334dc24dc7a09b46e32752cc69d888d25018caad32733cfff98e4f45
@@ -0,0 +1,23 @@
1
+ name: CI
2
+
3
+ on:
4
+ - push
5
+ - pull_request
6
+
7
+ jobs:
8
+ test:
9
+ name: Ruby ${{ matrix.ruby }}
10
+ runs-on: ubuntu-latest
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ ruby:
15
+ - '2.6'
16
+ - '4.0'
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ - uses: ruby/setup-ruby@v1
20
+ with:
21
+ ruby-version: ${{ matrix.ruby }}
22
+ bundler-cache: true
23
+ - run: bundle exec rake test
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ Rake::TestTask.new(:test) do |test|
9
9
  end
10
10
 
11
11
  require 'rdoc/task'
12
- Rake::RDocTask.new do |rdoc|
12
+ RDoc::Task.new do |rdoc|
13
13
  version = File.exist?('VERSION') ? File.read('VERSION') : ""
14
14
 
15
15
  rdoc.rdoc_dir = 'rdoc'
data/lib/tickly/curve.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+ # shareable_constant_value: literal
1
3
  module Tickly
2
4
  # A shorthand class for Nuke's animation curves.
3
5
  # Will convert a passed Curve expression into a set of values,
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Tickly
2
3
  # Evaluates a passed TCL expression without expanding it's inner arguments.
3
4
  # The TCL should look like Nuke's node commands:
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Tickly
2
3
  # A combination of a Parser and an Evaluator
3
4
  # Evaluates a passed Nuke script without expanding it's inner arguments.
data/lib/tickly/parser.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+ # shareable_constant_value: literal
1
3
  require 'stringio'
2
4
 
3
5
  module Tickly
@@ -53,7 +55,7 @@ module Tickly
53
55
  private
54
56
 
55
57
  TERMINATORS = ["\n", ";"]
56
- ESC = 92.chr # Backslash (\)
58
+ ESC = 92.chr.freeze # Backslash (\)
57
59
  QUOTES = %w( " ' )
58
60
 
59
61
  # Package the expressions, stack and buffer.
@@ -91,7 +93,7 @@ module Tickly
91
93
  # A standard stack is an expression that does not evaluate to a string
92
94
  expressions = []
93
95
  stack = []
94
- buf = ''
96
+ buf = +''
95
97
 
96
98
  loop do
97
99
  char = io.read_one_char
@@ -109,7 +111,7 @@ module Tickly
109
111
  elsif char == " " || char == "\n" # Space
110
112
  if buf.length > 0
111
113
  stack << buf
112
- buf = ''
114
+ buf = +''
113
115
  end
114
116
  if TERMINATORS.include?(char) && stack.any? # Introduce a stack separator! This is a new line
115
117
 
@@ -148,7 +150,7 @@ module Tickly
148
150
 
149
151
  # Parse a string literal, in single or double quotes.
150
152
  def parse_str(io, stop_quote)
151
- buf = ''
153
+ buf = +''
152
154
  loop do
153
155
  c = io.read_one_char
154
156
  if c.nil?
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Tickly
2
- VERSION = "2.1.7"
3
+ VERSION = "2.2.1"
3
4
  end
data/lib/tickly.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require File.dirname(__FILE__) + "/tickly/parser"
2
3
  require File.dirname(__FILE__) + "/tickly/evaluator"
3
4
  require File.dirname(__FILE__) + "/tickly/curve"
@@ -0,0 +1,31 @@
1
+ require 'helper'
2
+
3
+ class TestRactor < Test::Unit::TestCase
4
+ class Tracker4
5
+ attr_reader :knobs
6
+ def initialize(knobs)
7
+ @knobs = knobs
8
+ end
9
+ end
10
+
11
+ def test_parses_and_evaluates_inside_a_ractor
12
+ omit "Needs Ruby 4.0+ Ractors" unless defined?(Ractor) && Ractor.method_defined?(:value)
13
+
14
+ path = File.dirname(__FILE__) + "/test-data/nuke7_tracker_2tracks.nk"
15
+ experimental_warnings, Warning[:experimental] = Warning[:experimental], false
16
+ begin
17
+ names = Ractor.new(path) do |script_path|
18
+ pe = Tickly::NodeProcessor.new
19
+ pe.add_node_handler_class(TestRactor::Tracker4)
20
+ File.open(script_path, "rb") do |f|
21
+ nodes = []
22
+ pe.parse(f) { |node| nodes << node.knobs["name"] }
23
+ nodes
24
+ end
25
+ end.value
26
+ assert_equal ["Tracker1"], names
27
+ ensure
28
+ Warning[:experimental] = experimental_warnings
29
+ end
30
+ end
31
+ end
data/tickly.gemspec CHANGED
@@ -4,7 +4,7 @@ Gem::Specification.new do |s|
4
4
  s.name = "tickly"
5
5
  s.version = Tickly::VERSION
6
6
 
7
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
7
+ s.required_ruby_version = ">= 2.6"
8
8
  s.require_paths = ["lib"]
9
9
  s.authors = ["Julik Tarkhanov"]
10
10
  s.date = Time.now.utc.strftime("%Y-%m-%d")
@@ -19,12 +19,10 @@ Gem::Specification.new do |s|
19
19
  end
20
20
  s.homepage = "http://github.com/julik/tickly"
21
21
  s.licenses = ["MIT"]
22
- s.rubygems_version = "2.2.2"
23
22
  s.summary = "Assists in parsing Nuke scripts in TCL"
24
23
 
25
- s.specification_version = 4
26
- s.add_development_dependency("rake", [">= 0"])
27
- s.add_development_dependency("rdoc", ["~> 3.12"])
28
- s.add_development_dependency("ruby-prof")
24
+ s.add_development_dependency("rake")
25
+ s.add_development_dependency("rdoc")
26
+ s.add_development_dependency("benchmark")
29
27
  s.add_development_dependency("test-unit")
30
28
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tickly
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.7
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julik Tarkhanov
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2018-12-19 00:00:00.000000000 Z
10
+ date: 2026-10-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: rake
@@ -28,18 +27,18 @@ dependencies:
28
27
  name: rdoc
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
- - - "~>"
30
+ - - ">="
32
31
  - !ruby/object:Gem::Version
33
- version: '3.12'
32
+ version: '0'
34
33
  type: :development
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
- - - "~>"
37
+ - - ">="
39
38
  - !ruby/object:Gem::Version
40
- version: '3.12'
39
+ version: '0'
41
40
  - !ruby/object:Gem::Dependency
42
- name: ruby-prof
41
+ name: benchmark
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - ">="
@@ -75,8 +74,8 @@ extra_rdoc_files:
75
74
  - README.md
76
75
  files:
77
76
  - ".document"
77
+ - ".github/workflows/ci.yml"
78
78
  - ".gitignore"
79
- - ".travis.yml"
80
79
  - Gemfile
81
80
  - LICENSE.txt
82
81
  - README.md
@@ -94,12 +93,12 @@ files:
94
93
  - test/test_evaluator.rb
95
94
  - test/test_node_processor.rb
96
95
  - test/test_parser.rb
96
+ - test/test_ractor.rb
97
97
  - tickly.gemspec
98
98
  homepage: http://github.com/julik/tickly
99
99
  licenses:
100
100
  - MIT
101
101
  metadata: {}
102
- post_install_message:
103
102
  rdoc_options: []
104
103
  require_paths:
105
104
  - lib
@@ -107,16 +106,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
107
106
  requirements:
108
107
  - - ">="
109
108
  - !ruby/object:Gem::Version
110
- version: '0'
109
+ version: '2.6'
111
110
  required_rubygems_version: !ruby/object:Gem::Requirement
112
111
  requirements:
113
112
  - - ">="
114
113
  - !ruby/object:Gem::Version
115
114
  version: '0'
116
115
  requirements: []
117
- rubyforge_project:
118
- rubygems_version: 2.7.6
119
- signing_key:
116
+ rubygems_version: 4.0.3
120
117
  specification_version: 4
121
118
  summary: Assists in parsing Nuke scripts in TCL
122
119
  test_files: []
data/.travis.yml DELETED
@@ -1,9 +0,0 @@
1
- rvm:
2
- - 1.8.7
3
- - 1.9.2
4
- - 1.9.3
5
- - 2.0.0-p247
6
- - 2.1.5
7
- - 2.2.2
8
- cache: bundler
9
- sudo: false