motion_blender 0.1.3 → 0.1.4

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
  SHA1:
3
- metadata.gz: 12f4f266de541f71f053210f9b089eb7a56fb77b
4
- data.tar.gz: f30217e63c3c013a07862c1ea6f4413b749f6b26
3
+ metadata.gz: 4453bab74e26706478046e31503f168eb4f7ea9a
4
+ data.tar.gz: 50a4811dd59a01f165228252ee61ebccb4131f20
5
5
  SHA512:
6
- metadata.gz: 8bbca25180fa862d2cdf18dc13589a6dfe8260b6972c19c4be497e25a48519571afe21537281111553f24a6114961262fe5c622b9cd344f7c5d1c918ca2db2f1
7
- data.tar.gz: dc18bde83fe86c28bdd3e4fbbaf38ea7e8fc0c5a04c92acb3b51ef6ba843918b524d97af251ee98fcb46a8de404d284bfce475fab8cb5bd9d0ce2e703a5aabbe
6
+ metadata.gz: d6d3128e4e23934d58f79e0e11ebf371f283255b531e3083ad91158f4cbc854e381ab2a0a112ac2165961f207d30651f538024ca841a45dd41663aa41017bf9c
7
+ data.tar.gz: 2ef7abbf5bd66df5c2b26800fa811b189c4cf29ef320dd7406307c7ca116803e6ab83855a153be00cda5933941c857ce7b642998e59804345843472af1c712d3
@@ -24,7 +24,7 @@ module MotionBlender
24
24
 
25
25
  def traverse ast, stack = []
26
26
  @exclude_files ||= Set.new
27
- if ast.type == :send && require_command?(ast)
27
+ if require_command?(ast)
28
28
  @last_trace = trace_for ast
29
29
  Evaluator.new(@file, ast, stack).parse_args.each do |arg|
30
30
  req = Require.new(@file, ast.children[1], arg)
@@ -33,7 +33,7 @@ module MotionBlender
33
33
  req.trace = @last_trace
34
34
  @requires << req
35
35
  end
36
- else
36
+ elsif !raketime_block?(ast)
37
37
  ast.children
38
38
  .select { |node| node.is_a?(::Parser::AST::Node) }
39
39
  .each { |node| traverse node, [*stack, ast] }
@@ -41,7 +41,12 @@ module MotionBlender
41
41
  end
42
42
 
43
43
  def require_command? ast
44
- REQUIREMENT_TOKENS.include?(ast.children[1])
44
+ (ast.type == :send) && REQUIREMENT_TOKENS.include?(ast.children[1])
45
+ end
46
+
47
+ def raketime_block? ast
48
+ (ast.type == :block) &&
49
+ (ast.children.first.loc.expression.source == 'MotionBlender.raketime')
45
50
  end
46
51
 
47
52
  def trace_for ast
@@ -1,3 +1,3 @@
1
1
  module MotionBlender
2
- VERSION = '0.1.3'
2
+ VERSION = '0.1.4'
3
3
  end
@@ -34,7 +34,15 @@ module MotionBlender
34
34
  def use_motion_dir dir = nil
35
35
  return unless motion?
36
36
 
37
- dir ||= File.expand_path('../../motion', caller.first.split(':', 2).first)
37
+ unless dir
38
+ file = caller.first.split(':', 2).first
39
+ Pathname.new(file).dirname.ascend do |path|
40
+ if $LOAD_PATH.include?(path.to_s)
41
+ dir = path.dirname.join('motion').to_s
42
+ break
43
+ end
44
+ end
45
+ end
38
46
  $LOAD_PATH.delete dir
39
47
  $LOAD_PATH.unshift dir
40
48
  end
@@ -43,11 +51,18 @@ module MotionBlender
43
51
  defined?(Motion::Project::Config)
44
52
  end
45
53
 
54
+ def raketime &proc
55
+ proc.call
56
+ end
57
+
58
+ def runtime &_
59
+ end
60
+
46
61
  def ext_file
47
62
  File.expand_path('../../motion/ext.rb', __FILE__)
48
63
  end
49
64
 
50
65
  def builtin_features
51
- %w(bigdecimal date thread)
66
+ %w(bigdecimal rational date thread)
52
67
  end
53
68
  end
data/motion/ext.rb CHANGED
@@ -23,4 +23,11 @@ module MotionBlender
23
23
  def motion?
24
24
  true
25
25
  end
26
+
27
+ def raketime &_
28
+ end
29
+
30
+ def runtime &proc
31
+ proc.call
32
+ end
26
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: motion_blender
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - kayhide
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-10-13 00:00:00.000000000 Z
11
+ date: 2015-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser