class Moko::Server

Attributes

items[R]

Public Class Methods

draw(&block) click to toggle source
# File lib/moko.rb, line 48
def self.draw &block
    server = Server.new
    server.instance_eval(&block)
    server.render
end
new() click to toggle source
# File lib/moko.rb, line 78
def initialize
    f = File.join(File.dirname(File.expand_path(__FILE__)), 'template/resource.erb')
    @template = File.read(f)
    @items = []
end

Public Instance Methods

render() click to toggle source
# File lib/moko.rb, line 63
def render
    @items = @items.uniq
    touch_resources

    result = @items.reduce([]) do |result, item|
        result << ERB.new(@template).result(Item.new(item).get_binding)
    end
    result << ERB.new(File.read(File.join(File.dirname(File.expand_path(__FILE__)), 'template/mount.erb'))).result
    
    resources = "[#{result.join(',')}]"

    File.open("conf/moko.conf.json", "w") { |f| f.write(resources) }
end
touch_resources() click to toggle source
# File lib/moko.rb, line 55
def touch_resources

    @items.each do |item|
        FileUtils.touch "resources/#{item}.json"
        FileUtils.touch "resources/#{item}-single.json"
    end
end

Private Instance Methods

resource(res, &block) click to toggle source
# File lib/moko.rb, line 90
def resource res, &block
    obj = Moko::Dual.new
    obj.instance_eval(&block) if block_given?
    resources res.to_s.pluralize.to_sym
    File.open("resources/#{res.to_s.pluralize}.json", "w") { |io| io.write(obj.render) }
    File.open("resources/#{res.to_s.pluralize}-single.json", "w") { |io| io.write(obj.render_single) }
end
resources(*arguments) click to toggle source
# File lib/moko.rb, line 84
def resources *arguments
    arguments.each do |item|
        @items << item
    end
end