class Eclix::Publication_Creator

Attributes

escenic[R]

Public Class Methods

new(escenic=default_env) click to toggle source
# File lib/eclix/publication_creator.rb, line 7
def initialize(escenic=default_env)
  @escenic = escenic
end

Public Instance Methods

create_publication(publication, cookies) click to toggle source
# File lib/eclix/publication_creator.rb, line 47
def create_publication(publication, cookies)
  RestClient.post(escenic.publish_url.absolute,
                  {
                      :name => publication.name,
                      :publisherName => publication.publisher,
                      :allowEmptyPassword => false,
                      :adminPassword => publication.password,
                      :adminPasswordConfirm => publication.password
                  },
                  {
                      :cookies => cookies
                  }
  ) { |response, request, result|
    case response.code
      when 200
        response
      else
        raise PublicationDefinitionException
    end
  }
end
default_env() click to toggle source
# File lib/eclix/publication_creator.rb, line 81
def default_env
  Escenic.new(Server.new)
end
deploy_resources(resources, cookies) click to toggle source
# File lib/eclix/publication_creator.rb, line 29
def deploy_resources(resources, cookies)
  RestClient.post(escenic.resource_url.absolute,
                  {
                      :type => resources.type,
                      :resourceFile => File.new(resources.file, 'rb'),
                      :multipart => true
                  },
                  {:cookies => cookies},
  ) { |response, request, result|
    case response.code
      when 200
        response
      else
        raise ResourceUploadException
    end
  }
end
get_session_id() click to toggle source
# File lib/eclix/publication_creator.rb, line 24
def get_session_id
  response = RestClient.get(escenic.admin_url.absolute)
  response.cookies
end
new_publication(resources, publication) click to toggle source
# File lib/eclix/publication_creator.rb, line 11
def new_publication(resources, publication)
  if publication_exists(publication)
    puts "Publication already exists, proceeding..."
  else
    @cookies = get_session_id
    puts "Uploading resources..."
    deploy_resources(resources, @cookies)
    puts "Adding publication config..."
    create_publication(publication, @cookies)
    puts "Done."
  end
end
publication_exists(publication) click to toggle source
# File lib/eclix/publication_creator.rb, line 69
def publication_exists(publication)
  url = escenic.publication_url(publication).absolute
  RestClient.get(url) { |response, request, result|
    case response.code
      when 200
        true
      else
        false
    end
  }
end