google_apps 0.3.2 → 0.3.3

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.
@@ -1,5 +1,5 @@
1
1
  require 'libxml'
2
- require 'digest/sha1'
2
+ require 'openssl'
3
3
  require 'base64'
4
4
 
5
5
  module GoogleApps
@@ -6,6 +6,15 @@ module GoogleApps
6
6
  add_header
7
7
  end
8
8
 
9
+ # new_group populates the Group XML document with
10
+ # the provided values. new_group accepts a hash
11
+ # with the following keys: id, name, description
12
+ # and perms.
13
+ #
14
+ # new_group id: 'ID', name: 'Name', description: 'Group Description',
15
+ # perms: 'emailPermissions'
16
+ #
17
+ # new_group returns @document.root
9
18
  def new_group(group_data)
10
19
  group_data.keys.each do |key|
11
20
  prop = Atom::XML::Node.new('apps:property')
@@ -13,14 +22,19 @@ module GoogleApps
13
22
  prop.attributes['value'] = group_data[key]
14
23
  @document.root << prop
15
24
  end
25
+
26
+ @document.root
16
27
  end
17
28
 
29
+ # to_s returns @document as a String.
18
30
  def to_s
19
31
  @document.to_s
20
32
  end
21
33
 
22
34
  private
23
35
 
36
+ # add_header sets the required boilerplate for a
37
+ # Google Apps group.
24
38
  def add_header
25
39
  @document.root = Atom::XML::Node.new('atom:entry')
26
40
 
@@ -29,6 +43,11 @@ module GoogleApps
29
43
  Atom::XML::Namespace.new(@document.root, 'gd', 'http://schemas.google.com/g/2005')
30
44
  end
31
45
 
46
+ # prop_name takes a LibXML::XML::Node object and
47
+ # sets the name attribute based on the provided
48
+ # key.
49
+ #
50
+ # prop_name returns the modified LibXML::XML::Node
32
51
  def prop_name(property, key)
33
52
  case key
34
53
  when :id
@@ -6,6 +6,12 @@ module GoogleApps
6
6
  add_header
7
7
  end
8
8
 
9
+ # new_key adds the actual key to the PublicKey
10
+ # XML document.
11
+ #
12
+ # new_key 'key'
13
+ #
14
+ # new_key returns @document.root
9
15
  def new_key(key)
10
16
  property = Atom::XML::Node.new('apps:property')
11
17
  property['name'] = 'publicKey'
@@ -14,6 +20,7 @@ module GoogleApps
14
20
  @document.root << property
15
21
  end
16
22
 
23
+ # to_s returns @document as a String
17
24
  def to_s
18
25
  @document.to_s
19
26
  end
@@ -25,7 +25,7 @@ module GoogleApps
25
25
  def login_node(user_name, password)
26
26
  login = Atom::XML::Node.new('apps:login')
27
27
  login['userName'] = user_name
28
- login['password'] = Digest::SHA1.hexdigest password
28
+ login['password'] = OpenSSL::Digest::SHA1.hexdigest password
29
29
  login['hashFunctionName'] = Atom::HASH_FUNCTION
30
30
  login['suspended'] = "false"
31
31
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google_apps
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: