10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/yard-is-sequel/fields.rb', line 10
def process
table_name = statement.parameters.first.jump(:symbol, :string).source.delete(':"\'')
database = self.class.database
return unless database
table_schema = database.schema(table_name)
return unless table_schema
table_schema.each do |column_name, info|
type = [ map_type(info[:db_type]) ]
type << 'nil' unless info[:allow_null] == false
object = YARD::CodeObjects::MethodObject.new(namespace, column_name) do |o|
o.source = statement.source
o.parameters = []
o.docstring = 'Sequel data field'
o.docstring.add_tag YARD::Tags::Tag::new(:return, '', type)
o.docstring.add_tag YARD::Tags::Tag::new(:sequel_field, '')
o.is_attribute = true
o.group = 'Sequel Fields'
end
register object
namespace.attributes[:instance][column_name] = {
read: object,
write: object
}
end
end
|