Class: CkanClient::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/ckanclient/ckanclient.rb

Instance Method Summary collapse

Constructor Details

#initialize(url, key) ⇒ Client

Returns a new instance of Client.

Raises:

  • (ArgumentError)
[View source]

8
9
10
11
12
13
14
15
16
17
# File 'lib/ckanclient/ckanclient.rb', line 8

def initialize(url, key)
  raise ArgumentError, "No URL provided" unless !url.nil?
  raise ArgumentError, "No API KEY provided" unless !key.nil?

  # remove trailig slashes
  @url = url.sub(/(\/)+$/,"")
  @key = key
  @headers = {}
  @headers[:Authorization] = @key
end

Instance Method Details

#create_or_update_package(params = {}, resolve_delta = false, &block) ⇒ Object

[View source]

99
100
101
102
103
104
105
# File 'lib/ckanclient/ckanclient.rb', line 99

def create_or_update_package(params = {}, resolve_delta = false, &block)
  if params["id"].nil?
    create_package(params, &block)
  else 
    update_package(params["id"], params, resolve_delta, &block)
  end
end

#create_or_update_resource(params = {}, file = nil, resolve_delta = false, &block) ⇒ Object

[View source]

57
58
59
60
61
62
63
# File 'lib/ckanclient/ckanclient.rb', line 57

def create_or_update_resource(params = {}, file = nil, resolve_delta = false, &block)
  if params["id"].nil?
    create_resource(params, file, &block)
  else 
    update_resource(params["id"], params, file, resolve_delta, &block)
  end
end

#create_package(params = {}, &block) ⇒ Object

[View source]

80
81
82
# File 'lib/ckanclient/ckanclient.rb', line 80

def create_package(params = {}, &block)
  post("package_create", params, nil, &block)
end

#create_resource(params = {}, file = nil, &block) ⇒ Object

[View source]

34
35
36
37
38
39
40
# File 'lib/ckanclient/ckanclient.rb', line 34

def create_resource(params = {}, file = nil, &block)
  if params["name"].nil? && !file.nil?
    params["name"] = File.basename(file.path)
  end

  post("resource_create", params, file, &block)
end

#get_package(id, params = {}, &block) ⇒ Object

Raises:

  • (ArgumentError)
[View source]

65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/ckanclient/ckanclient.rb', line 65

def get_package(id, params = {}, &block)
  raise ArgumentError, "No ID provided for package" unless !id.nil?

  result = nil
  params["id"] = id

  post("package_show", params, nil){ |response, status_ok|
    if status_ok
      result = JSON.parse(response.body)["result"]
    end
  }

  return result
end

#get_resource(id, params = {}, &block) ⇒ Object

Raises:

  • (ArgumentError)
[View source]

19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/ckanclient/ckanclient.rb', line 19

def get_resource(id, params = {}, &block)
  raise ArgumentError, "No ID provided for resource" unless !id.nil?

  result = nil
  params["id"] = id

  post("resource_show", params, nil){ |response, status_ok|
    if status_ok
      result = JSON.parse(response.body)["result"]
    end
  }

  return result
end

#update_package(id, params = {}, resolve_delta = false, &block) ⇒ Object

Raises:

  • (ArgumentError)
[View source]

84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/ckanclient/ckanclient.rb', line 84

def update_package(id, params = {}, resolve_delta = false, &block)
  raise ArgumentError, "No ID provided for package update" unless !id.nil?

  params["id"] = id

  if resolve_delta
     = get_package(id)
    if !.nil?
      params = .merge(params)
    end
  end

  post("package_update", params, nil, &block)
end

#update_resource(id, params = {}, file = nil, resolve_delta = false, &block) ⇒ Object

Raises:

  • (ArgumentError)
[View source]

42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/ckanclient/ckanclient.rb', line 42

def update_resource(id, params = {}, file = nil, resolve_delta = false, &block)
  raise ArgumentError, "No ID provided for resource update" unless !id.nil?

  params["id"] = id

  if resolve_delta
     = get_resource(id)
    if !.nil?
      params = .merge(params)
    end
  end

  post("resource_update", params, file, &block)
end