Class: Schematic::Generator::Sandbox
- Inherits:
-
Object
- Object
- Schematic::Generator::Sandbox
show all
- Defined in:
- lib/schematic/generator/sandbox.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(klass) ⇒ Sandbox
Returns a new instance of Sandbox.
6
7
8
9
10
|
# File 'lib/schematic/generator/sandbox.rb', line 6
def initialize(klass)
@klass = klass
@ignored_elements ||= []
@added_elements ||= {}
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
47
48
49
|
# File 'lib/schematic/generator/sandbox.rb', line 47
def method_missing(method, *args, &block)
@klass.send method, *args, &block
end
|
Instance Attribute Details
#added_elements ⇒ Object
Returns the value of attribute added_elements.
4
5
6
|
# File 'lib/schematic/generator/sandbox.rb', line 4
def added_elements
@added_elements
end
|
#ignored_elements ⇒ Object
Returns the value of attribute ignored_elements.
4
5
6
|
# File 'lib/schematic/generator/sandbox.rb', line 4
def ignored_elements
@ignored_elements
end
|
Instance Method Details
#add(*args) ⇒ Object
38
39
40
41
42
43
44
45
|
# File 'lib/schematic/generator/sandbox.rb', line 38
def add(*args)
name = args.shift
if name.is_a? Hash
added_elements[name.keys.first] = name.values.first
else
added_elements[name] = nil
end
end
|
#generate_xsd(builder, klass, options) ⇒ Object
29
30
31
32
|
# File 'lib/schematic/generator/sandbox.rb', line 29
def generate_xsd(builder, klass, options)
xsd_generator.options = options
xsd_generator.generate(builder, klass)
end
|
#ignore(*fields) ⇒ Object
34
35
36
|
# File 'lib/schematic/generator/sandbox.rb', line 34
def ignore(*fields)
fields.each { |field| ignored_elements << field }
end
|
#run(&block) ⇒ Object
12
13
14
|
# File 'lib/schematic/generator/sandbox.rb', line 12
def run(&block)
instance_eval &block
end
|
#to_xsd(options = {}) ⇒ Object
20
21
22
23
24
25
26
27
|
# File 'lib/schematic/generator/sandbox.rb', line 20
def to_xsd(options = {})
output = ""
builder = Builder::XmlMarkup.new(:target => output, :indent => 2)
xsd_generator.options = options
xsd_generator.(builder)
xsd_generator.schema(builder)
output
end
|
#xsd_generator ⇒ Object
16
17
18
|
# File 'lib/schematic/generator/sandbox.rb', line 16
def xsd_generator
@xsd_generator ||= Schematic::Generator::Xsd.new(@klass)
end
|