
okay.news.rb Maven / Gradle / Ivy
#
# The !okay/news module for YAML.rb
#
require 'okay'
module Okay
class News < ModuleBase
attr_accessor :title, :link, :description, :updatePeriod, :items
def to_yaml_properties
[ '@title', '@link', '@description', '@updatePeriod', '@items' ]
end
def to_yaml_type
"!okay/news"
end
end
Okay.add_type( "news" ) { |type, val, modules|
Okay.object_maker( Okay::News, val, modules )
}
class NewsItem < ModuleBase
attr_accessor :title, :link, :description, :pubTime
def to_yaml_properties
[ '@title', '@link', '@description', '@pubTime' ]
end
def to_yaml_type
"!okay/news/item"
end
end
Okay.add_type( "news/item" ) { |type, val, modules|
Okay.object_maker( Okay::NewsItem, val, modules )
}
end
Okay.load_schema( <
Inspired by RSS, more limited...
examples: >
If I had a news site...
schema:
- map:
/title: [ str ]
/link: [ str ]
/description: [ str ]
/updatePeriod: [ str ]
/items:
- seq: { /*: [ okay/news/item ] }
okay/news/item:
description: >
Inside okay/news lies...
examples: >
See okay/news examples...
schema:
- map:
/title: [ str ]
/pubTime: [ time ]
/link: [ str ]
/description: [ str ]
optional: [ /title ]
EOY
© 2015 - 2025 Weber Informatics LLC | Privacy Policy