Module: Jiralicious

Extended by:
Jiralicious, Configuration
Included in:
Jiralicious
Defined in:
lib/jiralicious/field.rb,
lib/jiralicious.rb,
lib/jiralicious/base.rb,
lib/jiralicious/issue.rb,
lib/jiralicious/errors.rb,
lib/jiralicious/search.rb,
lib/jiralicious/project.rb,
lib/jiralicious/session.rb,
lib/jiralicious/version.rb,
lib/jiralicious/issue/fields.rb,
lib/jiralicious/basic_session.rb,
lib/jiralicious/configuration.rb,
lib/jiralicious/issue/comment.rb,
lib/jiralicious/search_result.rb,
lib/jiralicious/cookie_session.rb,
lib/jiralicious/issue/watchers.rb,
lib/jiralicious/issue/transitions.rb,
lib/jiralicious/custom_field_option.rb,
lib/jiralicious/parsers/field_parser.rb

Overview

To change this template, choose Tools | Templates and open the template in the editor.

Defined Under Namespace

Modules: Configuration, Parsers Classes: AuthenticationError, Base, BasicSession, CaptchaRequired, CookieExpired, CookieSession, CustomFieldOption, Field, InvalidLogin, Issue, IssueNotFound, JiraError, JqlError, NotLoggedIn, Project, SearchResult, Session, TransitionError

Constant Summary collapse

VERSION =
"0.2.0"

Constants included from Configuration

Configuration::DEFAULT_API_VERSION, Configuration::DEFAULT_AUTH_TYPE, Configuration::DEFAULT_PASSWORD, Configuration::DEFAULT_URI, Configuration::DEFAULT_USERNAME, Configuration::VALID_OPTIONS

Instance Method Summary collapse

Methods included from Configuration

configure, extended, load_yml, options, reset

Instance Method Details

#rest_pathObject



34
35
36
# File 'lib/jiralicious.rb', line 34

def rest_path
  "#{self.uri}/rest/api/#{self.api_version}"
end

#search(jql, options = {}) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/jiralicious/search.rb', line 3

def search(jql, options = {})
  options[:start_at] ||= 0
  options[:max_results] ||= 50
  options[:fields] = [options[:fields]] if options[:fields].is_a? String
  options[:fields] ||= ["*navigable"]

  request_body = {
    :jql => jql,
    :startAt => options[:start_at],
    :maxResults => options[:max_results],
    :fields => options[:fields]
  }.to_json

  handler = Proc.new do |response|
    if response.code == 200
      Jiralicious::SearchResult.new(response)
    else
      raise Jiralicious::JqlError.new(response['errorMessages'].join('\n'))
    end
  end

  Jiralicious.session.request(
    :post,
    "#{Jiralicious.rest_path}/search",
    :body => request_body,
    :handler => handler
  )
end

#sessionObject



29
30
31
32
# File 'lib/jiralicious.rb', line 29

def session
  session_type = "#{self.auth_type.to_s.capitalize}Session"
  @session ||= Jiralicious.const_get(session_type).new
end