to_source 0.1.3 → 0.2.16

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.
Files changed (89) hide show
  1. data/.gitignore +6 -6
  2. data/.rspec +1 -0
  3. data/.travis.yml +12 -1
  4. data/Changelog.md +115 -0
  5. data/Gemfile +5 -3
  6. data/Gemfile.devtools +67 -0
  7. data/Guardfile +18 -0
  8. data/LICENSE +21 -0
  9. data/README.md +52 -0
  10. data/Rakefile +3 -8
  11. data/TODO +9 -0
  12. data/bin/to_source +17 -0
  13. data/config/flay.yml +3 -0
  14. data/config/flog.yml +2 -0
  15. data/config/roodi.yml +26 -0
  16. data/config/site.reek +97 -0
  17. data/config/yardstick.yml +2 -0
  18. data/lib/to_source/command.rb +106 -0
  19. data/lib/to_source/emitter/access.rb +28 -0
  20. data/lib/to_source/emitter/actual_arguments.rb +89 -0
  21. data/lib/to_source/emitter/alias.rb +27 -0
  22. data/lib/to_source/emitter/assignment.rb +119 -0
  23. data/lib/to_source/emitter/attribute_assignment.rb +28 -0
  24. data/lib/to_source/emitter/begin.rb +71 -0
  25. data/lib/to_source/emitter/binary_operator.rb +63 -0
  26. data/lib/to_source/emitter/binary_operator_method.rb +58 -0
  27. data/lib/to_source/emitter/block.rb +29 -0
  28. data/lib/to_source/emitter/block_argument.rb +23 -0
  29. data/lib/to_source/emitter/block_pass.rb +23 -0
  30. data/lib/to_source/emitter/case.rb +85 -0
  31. data/lib/to_source/emitter/class.rb +44 -0
  32. data/lib/to_source/emitter/concat_arguments.rb +28 -0
  33. data/lib/to_source/emitter/default_arguments.rb +22 -0
  34. data/lib/to_source/emitter/define.rb +99 -0
  35. data/lib/to_source/emitter/defined.rb +24 -0
  36. data/lib/to_source/emitter/element_assignment.rb +29 -0
  37. data/lib/to_source/emitter/element_reference.rb +25 -0
  38. data/lib/to_source/emitter/empty_body.rb +21 -0
  39. data/lib/to_source/emitter/ensure.rb +50 -0
  40. data/lib/to_source/emitter/ensure_body.rb +27 -0
  41. data/lib/to_source/emitter/execute_string.rb +22 -0
  42. data/lib/to_source/emitter/formal_arguments.rb +212 -0
  43. data/lib/to_source/emitter/if.rb +96 -0
  44. data/lib/to_source/emitter/iter.rb +27 -0
  45. data/lib/to_source/emitter/keyword_value.rb +67 -0
  46. data/lib/to_source/emitter/literal/dynamic.rb +178 -0
  47. data/lib/to_source/emitter/literal.rb +232 -0
  48. data/lib/to_source/emitter/loop.rb +40 -0
  49. data/lib/to_source/emitter/match3.rb +25 -0
  50. data/lib/to_source/emitter/module.rb +28 -0
  51. data/lib/to_source/emitter/multiple_assignment.rb +49 -0
  52. data/lib/to_source/emitter/nth_ref.rb +22 -0
  53. data/lib/to_source/emitter/op_assign1.rb +27 -0
  54. data/lib/to_source/emitter/op_assign2.rb +27 -0
  55. data/lib/to_source/emitter/pattern_arguments.rb +24 -0
  56. data/lib/to_source/emitter/rescue.rb +28 -0
  57. data/lib/to_source/emitter/rescue_condition.rb +93 -0
  58. data/lib/to_source/emitter/scope.rb +24 -0
  59. data/lib/to_source/emitter/scope_name.rb +23 -0
  60. data/lib/to_source/emitter/scoped_name.rb +28 -0
  61. data/lib/to_source/emitter/send.rb +133 -0
  62. data/lib/to_source/emitter/send_with_arguments.rb +103 -0
  63. data/lib/to_source/emitter/singleton_class.rb +38 -0
  64. data/lib/to_source/emitter/splat.rb +24 -0
  65. data/lib/to_source/emitter/splat_when.rb +23 -0
  66. data/lib/to_source/emitter/static.rb +52 -0
  67. data/lib/to_source/emitter/super.rb +92 -0
  68. data/lib/to_source/emitter/to_array.rb +22 -0
  69. data/lib/to_source/emitter/to_string.rb +24 -0
  70. data/lib/to_source/emitter/toplevel.rb +24 -0
  71. data/lib/to_source/emitter/unary_operator_method.rb +27 -0
  72. data/lib/to_source/emitter/unless.rb +45 -0
  73. data/lib/to_source/emitter/util.rb +28 -0
  74. data/lib/to_source/emitter/when.rb +63 -0
  75. data/lib/to_source/emitter/yield.rb +28 -0
  76. data/lib/to_source/emitter/z_super.rb +24 -0
  77. data/lib/to_source/emitter.rb +278 -0
  78. data/lib/to_source/state.rb +144 -0
  79. data/lib/to_source.rb +78 -11
  80. data/spec/spec_helper.rb +11 -0
  81. data/spec/unit/to_source/class_methods/run_spec.rb +1254 -0
  82. data/to_source.gemspec +16 -14
  83. metadata +160 -20
  84. data/.rvmrc +0 -1
  85. data/Readme.md +0 -38
  86. data/lib/to_source/core_ext/node.rb +0 -22
  87. data/lib/to_source/version.rb +0 -3
  88. data/lib/to_source/visitor.rb +0 -377
  89. data/test/to_source/visitor_test.rb +0 -202
data/lib/to_source.rb CHANGED
@@ -1,16 +1,83 @@
1
- require "to_source/version"
2
- require "to_source/core_ext/node"
3
- require "to_source/visitor"
1
+ require 'set'
2
+ require 'melbourne'
3
+ require 'adamantium'
4
+ require 'abstract_type'
5
+ require 'equalizer'
6
+ require 'to_source/command'
7
+ require 'to_source/state'
8
+ require 'to_source/emitter'
9
+ require 'to_source/emitter/literal'
10
+ require 'to_source/emitter/literal/dynamic'
11
+ require 'to_source/emitter/access'
12
+ require 'to_source/emitter/formal_arguments'
13
+ require 'to_source/emitter/actual_arguments'
14
+ require 'to_source/emitter/scope'
15
+ require 'to_source/emitter/define'
16
+ require 'to_source/emitter/assignment'
17
+ require 'to_source/emitter/static'
18
+ require 'to_source/emitter/block'
19
+ require 'to_source/emitter/toplevel'
20
+ require 'to_source/emitter/keyword_value'
21
+ require 'to_source/emitter/execute_string'
22
+ require 'to_source/emitter/singleton_class'
23
+ require 'to_source/emitter/empty_body'
24
+ require 'to_source/emitter/rescue_condition'
25
+ require 'to_source/emitter/rescue'
26
+ require 'to_source/emitter/ensure_body'
27
+ require 'to_source/emitter/scope_name'
28
+ require 'to_source/emitter/nth_ref'
29
+ require 'to_source/emitter/scoped_name'
30
+ require 'to_source/emitter/send'
31
+ require 'to_source/emitter/send_with_arguments'
32
+ require 'to_source/emitter/block_pass'
33
+ require 'to_source/emitter/block_argument'
34
+ require 'to_source/emitter/iter'
35
+ require 'to_source/emitter/pattern_arguments'
36
+ require 'to_source/emitter/unary_operator_method'
37
+ require 'to_source/emitter/binary_operator_method'
38
+ require 'to_source/emitter/binary_operator'
39
+ require 'to_source/emitter/element_reference'
40
+ require 'to_source/emitter/to_array'
41
+ require 'to_source/emitter/to_string'
42
+ require 'to_source/emitter/defined'
43
+ require 'to_source/emitter/attribute_assignment'
44
+ require 'to_source/emitter/element_assignment'
45
+ require 'to_source/emitter/if'
46
+ require 'to_source/emitter/loop'
47
+ require 'to_source/emitter/ensure'
48
+ require 'to_source/emitter/case'
49
+ require 'to_source/emitter/when'
50
+ require 'to_source/emitter/splat_when'
51
+ require 'to_source/emitter/unless'
52
+ require 'to_source/emitter/class'
53
+ require 'to_source/emitter/module'
54
+ require 'to_source/emitter/op_assign2'
55
+ require 'to_source/emitter/op_assign1'
56
+ require 'to_source/emitter/z_super'
57
+ require 'to_source/emitter/default_arguments'
58
+ require 'to_source/emitter/multiple_assignment'
59
+ require 'to_source/emitter/concat_arguments'
60
+ require 'to_source/emitter/super'
61
+ require 'to_source/emitter/match3'
62
+ require 'to_source/emitter/yield'
63
+ require 'to_source/emitter/alias'
64
+ require 'to_source/emitter/splat'
65
+ require 'to_source/emitter/begin'
66
+ require 'to_source/emitter/util'
4
67
 
68
+ # Library namespace
5
69
  module ToSource
6
- # Public: Converts the node back to its original source code.
70
+
71
+ # Convert node to string
72
+ #
73
+ # @param [Rubinius::AST::Node] node
74
+ #
75
+ # @return [String]
7
76
  #
8
- # Returns the String output.
9
- def to_source
10
- visitor = Visitor.new
11
- lazy_visit(visitor)
12
- visitor.output
77
+ # @api private
78
+ #
79
+ def self.to_source(node)
80
+ Emitter.run(node)
13
81
  end
14
- end
15
82
 
16
- Rubinius::AST::Node.send :include, ToSource
83
+ end
@@ -0,0 +1,11 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rspec'
4
+
5
+ # require spec support files and shared behavior
6
+ Dir[File.expand_path('../{support,shared}/**/*.rb', __FILE__)].each { |f| require f }
7
+
8
+ require 'to_source'
9
+
10
+ RSpec.configure do |config|
11
+ end