Class: CkanClient::Client
- Inherits:
-
Object
- Object
- CkanClient::Client
- Defined in:
- lib/ckanclient/ckanclient.rb
Instance Method Summary collapse
- #create_or_update_package(params = {}, resolve_delta = false, &block) ⇒ Object
- #create_or_update_resource(params = {}, file = nil, resolve_delta = false, &block) ⇒ Object
- #create_package(params = {}, &block) ⇒ Object
- #create_resource(params = {}, file = nil, &block) ⇒ Object
- #get_package(id, params = {}, &block) ⇒ Object
- #get_resource(id, params = {}, &block) ⇒ Object
-
#initialize(url, key) ⇒ Client
constructor
A new instance of Client.
- #update_package(id, params = {}, resolve_delta = false, &block) ⇒ Object
- #update_resource(id, params = {}, file = nil, resolve_delta = false, &block) ⇒ Object
Constructor Details
permalink #initialize(url, key) ⇒ Client
Returns a new instance of Client.
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
permalink #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 |
permalink #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 |
permalink #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 |
permalink #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 |
permalink #get_package(id, params = {}, &block) ⇒ Object
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 |
permalink #get_resource(id, params = {}, &block) ⇒ Object
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 |
permalink #update_package(id, params = {}, resolve_delta = false, &block) ⇒ Object
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 |
permalink #update_resource(id, params = {}, file = nil, resolve_delta = false, &block) ⇒ Object
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 |