google_apps 0.4.2 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,22 +8,48 @@ module GoogleApps
8
8
  add_header
9
9
  end
10
10
 
11
+
12
+ # member= sets the member value, if @member is non-nil
13
+ # member= will replace the value in the XML document
14
+ # before setting @member to the new value.
15
+ #
16
+ # member = 'test_user@cnm.edu'
17
+ #
18
+ # member= returns the value of @member
11
19
  def member=(member)
12
20
  @member.nil? ? set_member(member) : change_member(member)
13
21
  end
14
22
 
23
+
24
+ # to_s returns @document as a string.
15
25
  def to_s
16
26
  @document.to_s
17
27
  end
18
28
 
29
+
19
30
  private
20
31
 
32
+ # set_member adds a memberId property element to
33
+ # the XML document and sets @member to the given
34
+ # value.
35
+ #
36
+ # set_member 'test_user@cnm.edu'
37
+ #
38
+ # set_member returns the value of @member
21
39
  def set_member(member)
22
40
  @document.root << build_node(member)
23
41
 
24
42
  @member = member
25
43
  end
26
44
 
45
+
46
+ # build_node creates an apps:property element
47
+ # for memberId with the provided argument as
48
+ # the value.
49
+ #
50
+ # build_node 'test_user@cnm.edu'
51
+ #
52
+ # build_node returns an apps:property XML Node.
27
53
  def build_node(member)
28
54
  node = Atom::XML::Node.new('apps:property')
29
55
  node.attributes['name'] = 'memberId'
@@ -32,6 +58,15 @@ module GoogleApps
32
58
  node
33
59
  end
34
60
 
61
+
62
+ # change_member changes the value attribute of the
63
+ # apps:property element in @document to the value
64
+ # of the provided argument. It also sets @member
65
+ # to the provided argument.
66
+ #
67
+ # change_member 'test_user@cnm.edu'
68
+ #
69
+ # change_member returns the value of @member
35
70
  def change_member(member)
36
71
  # This really should use find but I can't figure out how to
37
72
  # get the XPath to work with this document.
@@ -42,6 +77,8 @@ module GoogleApps
42
77
  @member = member
43
78
  end
44
79
 
80
+
81
+ # add_header sets the root element of @document
45
82
  def add_header
46
83
  @document.root = Atom::XML::Node.new('atom:entry')
47
84
 
@@ -136,11 +136,21 @@ module GoogleApps
136
136
  #
137
137
  # add_member_to returns the response received from Google.
138
138
  def add_member_to(group_id, document)
139
- puts @group + "/#{group_id}/member"
140
139
  add(@group + "/#{group_id}/member", document)
141
140
  end
142
141
 
143
142
 
143
+ # delete_member_from removes a member from a group in the
144
+ # domain. It takes a group_id and member_id as arguments.
145
+ #
146
+ # delete_member_from 'test_group', 'member@cnm.edu'
147
+ #
148
+ # delete_member_from returns the respnse received from Google.
149
+ def delete_member_from(group_id, member_id)
150
+ delete(@group + "/#{group_id}/member", member_id)
151
+ end
152
+
153
+
144
154
  # add is a generic target for method_missing. It is
145
155
  # intended to handle the general case of adding
146
156
  # to the GoogleApps Domain. It takes an API endpoint
@@ -268,10 +278,6 @@ module GoogleApps
268
278
  when :migrate
269
279
  @request['content-type'] = "multipart/related; boundary=\"#{BOUNDARY}\""
270
280
  @request['authorization'] = "GoogleLogin auth=#{@token}"
271
- when :member
272
- @request['content-type'] = "application/x-www-form-urlencoded"
273
- @request['content-length'] = 0
274
- @request['authorization'] = "GoogleLogin auth=#{@token}"
275
281
  else
276
282
  @request['content-type'] = "application/atom+xml"
277
283
  @request['authorization'] = "GoogleLogin auth=#{@token}"
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.4.2
4
+ version: 0.4.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,24 +9,45 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-09 00:00:00.000000000 Z
13
- dependencies: []
12
+ date: 2012-06-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: libxml-ruby
16
+ requirement: &70341104167920 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 2.2.2
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70341104167920
14
25
  description: Library for interfacing with Google Apps' Domain and Application APIs
15
26
  email:
16
27
  executables: []
17
28
  extensions: []
18
29
  extra_rdoc_files: []
19
30
  files:
20
- - lib/google_apps/atom/atom.rb
21
- - lib/google_apps/atom/export.rb
22
- - lib/google_apps/atom/group.rb
23
- - lib/google_apps/atom/group_member.rb
24
- - lib/google_apps/atom/message.rb
25
- - lib/google_apps/atom/message_attributes.rb
26
- - lib/google_apps/atom/public_key.rb
27
- - lib/google_apps/atom/user.rb
28
- - lib/google_apps/transport.rb
29
- - lib/google_apps.rb
31
+ - !binary |-
32
+ bGliL2dvb2dsZV9hcHBzL2F0b20vYXRvbS5yYg==
33
+ - !binary |-
34
+ bGliL2dvb2dsZV9hcHBzL2F0b20vZXhwb3J0LnJi
35
+ - !binary |-
36
+ bGliL2dvb2dsZV9hcHBzL2F0b20vZ3JvdXAucmI=
37
+ - !binary |-
38
+ bGliL2dvb2dsZV9hcHBzL2F0b20vZ3JvdXBfbWVtYmVyLnJi
39
+ - !binary |-
40
+ bGliL2dvb2dsZV9hcHBzL2F0b20vbWVzc2FnZS5yYg==
41
+ - !binary |-
42
+ bGliL2dvb2dsZV9hcHBzL2F0b20vbWVzc2FnZV9hdHRyaWJ1dGVzLnJi
43
+ - !binary |-
44
+ bGliL2dvb2dsZV9hcHBzL2F0b20vcHVibGljX2tleS5yYg==
45
+ - !binary |-
46
+ bGliL2dvb2dsZV9hcHBzL2F0b20vdXNlci5yYg==
47
+ - !binary |-
48
+ bGliL2dvb2dsZV9hcHBzL3RyYW5zcG9ydC5yYg==
49
+ - !binary |-
50
+ bGliL2dvb2dsZV9hcHBzLnJi
30
51
  homepage: https://github.com/LeakyBucket/google_apps
31
52
  licenses: []
32
53
  post_install_message:
@@ -47,9 +68,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
47
68
  version: '0'
48
69
  requirements: []
49
70
  rubyforge_project:
50
- rubygems_version: 1.8.23
71
+ rubygems_version: 1.8.10
51
72
  signing_key:
52
73
  specification_version: 3
53
74
  summary: Google Apps APIs
54
75
  test_files: []
55
- has_rdoc: