Class: Synvert::Rewriter
- Inherits:
-
Object
show all
- Defined in:
- lib/synvert/rewriter.rb
Defined Under Namespace
Classes: Action, AppendAction, Condition, GemSpec, IfExistCondition, IfOnlyExistCondition, InsertAction, InsertAfterAction, Instance, RemoveAction, ReplaceWithAction, Scope, UnlessExistCondition
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(name, description, &block) ⇒ Rewriter
Returns a new instance of Rewriter.
47
48
49
50
51
52
53
|
# File 'lib/synvert/rewriter.rb', line 47
def initialize(name, description, &block)
@name = name
@description = description
@block = block
@helpers = []
self.class.register(name, self)
end
|
Instance Attribute Details
#description ⇒ Object
Returns the value of attribute description.
45
46
47
|
# File 'lib/synvert/rewriter.rb', line 45
def description
@description
end
|
#name ⇒ Object
Returns the value of attribute name.
45
46
47
|
# File 'lib/synvert/rewriter.rb', line 45
def name
@name
end
|
#todo_list ⇒ Object
Returns the value of attribute todo_list.
45
46
47
|
# File 'lib/synvert/rewriter.rb', line 45
def todo_list
@todo_list
end
|
Class Method Details
.availables ⇒ Object
36
37
38
|
# File 'lib/synvert/rewriter.rb', line 36
def availables
@rewriters.values
end
|
.call(name) ⇒ Object
27
28
29
30
31
32
33
34
|
# File 'lib/synvert/rewriter.rb', line 27
def call(name)
if (rewriter = @rewriters[name.to_s])
rewriter.process
rewriter
else
raise RewriterNotFound.new "Rewriter #{name} not found"
end
end
|
.clear ⇒ Object
40
41
42
|
# File 'lib/synvert/rewriter.rb', line 40
def clear
@rewriters.clear
end
|
.register(name, rewriter) ⇒ Object
22
23
24
25
|
# File 'lib/synvert/rewriter.rb', line 22
def register(name, rewriter)
@rewriters ||= {}
@rewriters[name.to_s] = rewriter
end
|
Instance Method Details
#add_file(file, content) ⇒ Object
73
74
75
76
77
|
# File 'lib/synvert/rewriter.rb', line 73
def add_file(file, content)
File.open file, 'w' do |file|
file.write content
end
end
|
#add_snippet(name) ⇒ Object
79
80
81
|
# File 'lib/synvert/rewriter.rb', line 79
def add_snippet(name)
self.class.call(name)
end
|
#gem_spec(name, version) ⇒ Object
59
60
61
|
# File 'lib/synvert/rewriter.rb', line 59
def gem_spec(name, version)
@gem_spec = Rewriter::GemSpec.new(name, version)
end
|
#helper_method(name, &block) ⇒ Object
83
84
85
|
# File 'lib/synvert/rewriter.rb', line 83
def helper_method(name, &block)
@helpers << {name: name, block: block}
end
|
#process ⇒ Object
55
56
57
|
# File 'lib/synvert/rewriter.rb', line 55
def process
self.instance_eval &@block
end
|
#todo(list) ⇒ Object
87
88
89
|
# File 'lib/synvert/rewriter.rb', line 87
def todo(list)
@todo_list = list
end
|
#within_file(file_pattern, &block) ⇒ Object
Also known as:
within_files
63
64
65
66
67
68
69
|
# File 'lib/synvert/rewriter.rb', line 63
def within_file(file_pattern, &block)
if !@gem_spec || @gem_spec.match?
instance = Rewriter::Instance.new(file_pattern, &block)
@helpers.each { |helper| instance.singleton_class.send(:define_method, helper[:name], &helper[:block]) }
instance.process
end
end
|