google_apps 0.4.2 → 0.4.5

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.
@@ -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: