class Mobiorm

Constants

HTTP_SERVICE
MOBIORM_VERSION
VERTABELO_API_XML

Public Class Methods

downloadModel(token, id, tag) click to toggle source
# File lib/mobiorm.rb, line 14
def self.downloadModel(token, id, tag)
    RestClient::Resource.new(VERTABELO_API_XML + id + (tag ? "/" + tag : ""), token, "") { 
        |response, request, result, &block|
        case response.code
        when 200
            response
        else
            abort "Could not download you model, HTTP request ended with code: " + response.code.to_s + "."
        end
    }
end
generateOrm(file, platform, classPrefix, propertyPrefix, package) click to toggle source
# File lib/mobiorm.rb, line 26
def self.generateOrm(file, platform, classPrefix, propertyPrefix, package)
    parameters = Hash.new
    parameters['vertabeloXML'] = file

    if platform == "objectivec"
        if propertyPrefix
            parameters['propertyPrefix'] = propertyPrefix
        end

        if classPrefix
            parameters['classPrefix'] = classPrefix
        end
    elsif platform == "android"
        if package
            parameters['package'] = package
        end
    end        

    RestClient.post(HTTP_SERVICE + platform, parameters) { 
        |response, request, result, &block|
        case response.code
        when 200
            response
        else
            abort "Generation unsuccessful, HTTP request ended with code: " + response.code.to_s + "."
        end
    }
end
getOrm(file, path, platform, classPrefix, propertyPrefix, package) click to toggle source
# File lib/mobiorm.rb, line 67
def self.getOrm(file, path, platform, classPrefix, propertyPrefix, package)
    response = JSON.parse(generateOrm(file, platform, classPrefix, propertyPrefix, package))
    if response["status"] == "OK"
        response["result"]["errors"].each do |error|
            puts "ERROR: " + error
        end
        response["result"]["warnings"].each do |warning|
            puts "WARNING: " + warning
        end
        self.saveOrm(response["result"]["content"], path)
        puts
        puts "Generation successful, files saved in: " + path
        puts
    elsif response["status"] == "ERROR"
        abort "Error during ORM generation: " + response["result"]["error"]
    else
        abort "Error during ORM generation"
    end
end
getOrmFromFile(dest, platform, xml, classPrefix, propertyPrefix, package) click to toggle source
# File lib/mobiorm.rb, line 97
def self.getOrmFromFile(dest, platform, xml, classPrefix, propertyPrefix, package)
    path = "" + dest + "/"
    File.open(xml) do |f|
        self.getOrm(f, path, platform, classPrefix, propertyPrefix, package)
    end
end
getOrmFromVertabelo(dest, platform, token, id, tag, classPrefix, propertyPrefix, package) click to toggle source
# File lib/mobiorm.rb, line 87
def self.getOrmFromVertabelo(dest, platform, token, id, tag, classPrefix, propertyPrefix, package)
    path = "" + dest + "/"
    resource = self.downloadModel(token, id, tag)
    Tempfile.open("temp.xml") do |f|
        f.write(resource.get)
        f.rewind
        self.getOrm(f, path, platform, classPrefix, propertyPrefix, package)
    end
end
saveOrm(response, path) click to toggle source
# File lib/mobiorm.rb, line 55
def self.saveOrm(response, path)
    Zip::Archive.open_buffer(Base64.decode64(response)) do |archive|
        archive.each do |entry|
            if not entry.directory?
                open(path + File.basename(entry.name), "wb") do |f|
                    f << entry.read
                end
            end
        end
    end
end