nakamura 0.5 → 0.6

Sign up to get free protection for your applications and to get access to all the features.
data/lib/nakamura.rb CHANGED
@@ -53,9 +53,9 @@ module Net::HTTPHeader
53
53
 
54
54
  def encode_kvpair(k, vs)
55
55
  if vs.nil? or vs == '' then
56
- "#{urlencode(k)}="
56
+ "#{CGI::escape(k)}="
57
57
  else
58
- Array(vs).map {|v| "#{urlencode(k)}=#{urlencode(v.to_s)}" }
58
+ Array(vs).map {|v| "#{CGI::escape(k)}=#{CGI::escape(v.to_s)}" }
59
59
  end
60
60
  end
61
61
  end
@@ -88,6 +88,9 @@ module SlingInterface
88
88
 
89
89
  def initialize(server="http://localhost:8080/", trustedauth=false)
90
90
  @server = server
91
+ if not @server.end_with? '/'
92
+ @server += '/'
93
+ end
91
94
  @serveruri = URI.parse(server)
92
95
  @user = SlingUsers::User.admin_user()
93
96
  @trustedauth = trustedauth
@@ -284,10 +287,10 @@ module SlingInterface
284
287
  res = createHttp(uri).start{ |http| http.request(req) }
285
288
  if ( res.code == "200" )
286
289
  save_cookies(res)
287
- @log.info("Login Ok, cookie was {#@cookies}")
290
+ @log.info("Login Ok, cookie was {#@cookies}")
288
291
  @loggedin = true
289
292
  else
290
- @log.info("Failed to perform login, got "+res.code+" response code")
293
+ @log.info("Failed to perform login, got "+res.code+" response code")
291
294
  end
292
295
  end
293
296
 
@@ -74,7 +74,7 @@ module SlingContacts
74
74
  end
75
75
 
76
76
  def find_contacts(state)
77
- result = @sling.execute_get(@sling.url_for("var/contacts/findstate?state=#{state}"))
77
+ result = @sling.execute_get(@sling.url_for("var/contacts/findstate.json?state=#{state}"))
78
78
  return JSON.parse(result.body)
79
79
  end
80
80
 
@@ -22,9 +22,7 @@ module SlingUsers
22
22
 
23
23
  def initialize(sling, file_log = nil)
24
24
  @sling = sling
25
- @sling.log.level = Logger::INFO
26
25
  super sling
27
- @log.level = Logger::INFO
28
26
  @file_log = file_log
29
27
  end
30
28
 
@@ -55,7 +53,7 @@ module SlingUsers
55
53
  }]
56
54
  })}
57
55
 
58
- result = @sling.execute_post(@sling.url_for($GROUP_URI), params)
56
+ result = @sling.execute_post(@sling.url_for($GROUP_WORLD_URI), params)
59
57
  if (result.code.to_i > 299)
60
58
  @log.error result.body
61
59
  return nil
@@ -10,10 +10,6 @@ module SlingSearch
10
10
  @sling = sling
11
11
  end
12
12
 
13
- def search_for(string)
14
- return json_search("content", "q" => string)
15
- end
16
-
17
13
  def create_search_template(name, language, template)
18
14
  return @sling.create_node("#{$SEARCH}#{name}", "sakai:query-language" => language, "sakai:query-template" => template, "sling:resourceType" => "sakai/search")
19
15
  end
@@ -30,9 +26,14 @@ module SlingSearch
30
26
  return json_search("sites", "q" => sitepropertyvalue)
31
27
  end
32
28
 
29
+ def search_for_file(query)
30
+ return json_search('files/allfiles.json', 'q' => query)
31
+ end
32
+
33
33
  private
34
34
  def json_search(template, params)
35
- return JSON.parse(@sling.execute_get(@sling.url_for($SEARCH + template) + ".json?" + params.collect{|k,v| URI.escape(k) + "=" + URI.escape(v)}.join("&")).body)
35
+ url = @sling.url_for($SEARCH + template) + ".json?" + params.collect{|k,v| URI.escape(k) + "=" + URI.escape(v)}.join("&")
36
+ return JSON.parse(@sling.execute_get(url).body)
36
37
  end
37
38
  end
38
39
 
data/lib/nakamura/test.rb CHANGED
@@ -18,6 +18,8 @@ module SlingTest
18
18
  @s = SlingInterface::Sling.new()
19
19
  @um = SlingUsers::UserManager.new(@s)
20
20
  @search = SlingSearch::SearchManager.new(@s)
21
+ @fm = SlingFile::FileManager.new(@s)
22
+
21
23
  @created_nodes = []
22
24
  @created_users = []
23
25
  @created_groups = []
@@ -28,11 +30,11 @@ module SlingTest
28
30
 
29
31
  def teardown
30
32
  if ( @delete ) then
31
- @s.switch_user(SlingUsers::User.admin_user)
32
- @created_nodes.reverse.each { |n| @s.delete_node(n) }
33
- @created_groups.each { |g| @um.delete_group(g) }
34
- @created_users.each { |u| @um.delete_user(u.name) }
35
- end
33
+ @s.switch_user(SlingUsers::User.admin_user)
34
+ @created_nodes.reverse.each { |n| @s.delete_node(n) }
35
+ @created_groups.each { |g| @um.delete_group(g) }
36
+ @created_users.each { |u| @um.delete_user(u.name) }
37
+ end
36
38
  end
37
39
 
38
40
  def create_node(path, props={})
@@ -49,6 +51,19 @@ module SlingTest
49
51
  return res
50
52
  end
51
53
 
54
+ def create_pooled_content(filename, content, props={})
55
+ res = @fm.upload_pooled_file(filename,{},'text/plain')
56
+ assert_not_nil(res)
57
+ assert_equal(true, res.code.to_i >= 200 && res.code.to_i < 300, "Expected to be able to create node #{res.body}")
58
+ json = JSON.parse(res.body)
59
+ assert_not_nil(json[filename])
60
+ assert_not_nil(json[filename]['poolId'])
61
+
62
+ path = "/p/#{json[filename]['poolId']}"
63
+ @created_nodes << path unless @created_nodes.include?(path)
64
+ return path
65
+ end
66
+
52
67
  def create_user(username, firstname = nil, lastname = nil)
53
68
  u = @um.create_user(username, firstname, lastname)
54
69
  assert_not_nil(u, "Expected user to be created: #{username}")
@@ -4,7 +4,8 @@ require 'digest/sha1'
4
4
  require 'logger'
5
5
 
6
6
  $USERMANAGER_URI="system/userManager/"
7
- $GROUP_URI="system/world/create"
7
+ $GROUP_URI="#{$USERMANAGER_URI}group.create.html"
8
+ $GROUP_WORLD_URI="system/world/create"
8
9
  $USER_URI="#{$USERMANAGER_URI}user.create.html"
9
10
  $DEFAULT_PASSWORD="testuser"
10
11
 
@@ -351,7 +352,7 @@ module SlingUsers
351
352
  "creator" => "true"
352
353
  }]
353
354
  })}
354
- result = @sling.execute_post(@sling.url_for($GROUP_URI), params)
355
+ result = @sling.execute_post(@sling.url_for($GROUP_WORLD_URI), params)
355
356
  if (result.code.to_i > 299)
356
357
  @log.error(result.body)
357
358
  return nil
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nakamura
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.5'
4
+ version: '0.6'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-09 00:00:00.000000000Z
12
+ date: 2012-01-17 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Ruby library for interacting with Sakai Nakamura. Provides convenience
15
15
  methods for adding users and groups and other similar tasks.
@@ -18,14 +18,14 @@ executables: []
18
18
  extensions: []
19
19
  extra_rdoc_files: []
20
20
  files:
21
+ - lib/nakamura/test.rb
21
22
  - lib/nakamura/authz.rb
22
- - lib/nakamura/contacts.rb
23
- - lib/nakamura/file.rb
24
23
  - lib/nakamura/full_group_creator.rb
24
+ - lib/nakamura/users.rb
25
+ - lib/nakamura/contacts.rb
25
26
  - lib/nakamura/message.rb
26
27
  - lib/nakamura/search.rb
27
- - lib/nakamura/test.rb
28
- - lib/nakamura/users.rb
28
+ - lib/nakamura/file.rb
29
29
  - lib/nakamura.rb
30
30
  homepage: http://sakaiproject.org
31
31
  licenses: []