nakamura 0.5 → 0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []