Class: XMLPipe2::XMLSchema

Inherits:
Object
  • Object
show all
Defined in:
lib/xml_pipe2/xml_schema.rb

Constant Summary collapse

TEMPLATE =
File.read(File.expand_path(File.dirname(__FILE__) + '/../../erb/xml_schema.xml.erb'))

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(clazz) ⇒ XMLSchema

Returns a new instance of XMLSchema.



7
8
9
# File 'lib/xml_pipe2/xml_schema.rb', line 7

def initialize(clazz)
  @clazz = clazz
end

Instance Attribute Details

#clazzObject (readonly)

Returns the value of attribute clazz.



11
12
13
# File 'lib/xml_pipe2/xml_schema.rb', line 11

def clazz
  @clazz
end

Instance Method Details

#generateObject



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/xml_pipe2/xml_schema.rb', line 13

def generate
  fields = clazz.sphinx_indexes.inject({ }) do |hash, index|
    index[:options].has_key?(:as) ? hash.merge!(index[:options][:as] => nil) : hash.merge!(index[:method] => nil)
    hash
  end
  attrs = clazz.sphinx_attributes.inject({ }) do |hash, attr|
    attr[:options].has_key?(:as) ? hash.merge!(attr[:options][:as] => nil) : hash.merge!(attr[:method] => nil)
    hash
  end
  ERB.new(TEMPLATE).result(binding)
end