wtforum 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/wtforum/user.rb CHANGED
@@ -9,6 +9,8 @@ module WTForum
9
9
  def self.create attributes
10
10
  defaults = { pw: SecureRandom.hex(10) }
11
11
  attributes[:member] ||= attributes.delete(:username)
12
+ attributes[:field276177] ||= attributes.delete(:gender)
13
+ attributes[:field276179] ||= attributes.delete(:about)
12
14
  attributes.reverse_merge! defaults
13
15
  uri = create_uri attributes
14
16
 
@@ -27,6 +29,8 @@ module WTForum
27
29
  id: user_id,
28
30
  member: body.css(".tables td:contains('Username:') + td input").first["value"],
29
31
  email: body.css(".tables td:contains('Email Address:') + td").first.text.split(" - ").first,
32
+ field276177: body.css(".tables td:contains('Gender:') + td option[selected]").first.try(:text),
33
+ field276179: body.css(".tables td:contains('About Me:') + td textarea").first.text
30
34
  }
31
35
  new(attributes)
32
36
  end
@@ -73,6 +77,12 @@ module WTForum
73
77
  end
74
78
 
75
79
  def save!
80
+ self.class.authorized_agent.get(self.class.edit_uri(id)) do |page|
81
+ form = page.forms.first
82
+ form["field276177"] = field276177
83
+ form["field276179"] = field276179
84
+ form.submit
85
+ end
76
86
  self.class.authorized_agent.get(self.class.edit_username_uri(id)) do |page|
77
87
  form = page.forms.first
78
88
  form["new_username"] = username
@@ -89,7 +99,7 @@ module WTForum
89
99
  self.class.destroy id
90
100
  end
91
101
 
92
- attr_accessor :id, :member, :email
102
+ attr_accessor :id, :member, :email, :field276177, :field276179
93
103
  attr_writer :pw, :apikey
94
104
 
95
105
  def username
@@ -100,6 +110,22 @@ module WTForum
100
110
  self.member = value
101
111
  end
102
112
 
113
+ def gender
114
+ field276177
115
+ end
116
+
117
+ def gender= value
118
+ self.field276177 = value
119
+ end
120
+
121
+ def about
122
+ field276179
123
+ end
124
+
125
+ def about= value
126
+ self.field276179 = value
127
+ end
128
+
103
129
  private
104
130
 
105
131
  def attributes=(attributes={})
@@ -147,6 +173,10 @@ module WTForum
147
173
  uri
148
174
  end
149
175
 
176
+ def self.edit_uri user_id
177
+ find_uri user_id
178
+ end
179
+
150
180
  def self.edit_username_uri user_id
151
181
  uri = WTForum.base_uri
152
182
  uri.path = "/register/edit_username"
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module WTForum
4
- VERSION = "0.1.2"
4
+ VERSION = "0.2.0"
5
5
  end
@@ -8,22 +8,28 @@ describe WTForum::User do
8
8
  user = nil
9
9
 
10
10
  lambda {
11
- user = WTForum::User.create username: "wtforum_test_user", email: "wtforum_test_user@example.com"
11
+ user = WTForum::User.create username: "wtforum_test_user", email: "wtforum_test_user@example.com", gender: "Male", about: "I am a test user"
12
12
  }.should change(WTForum::User, :count).by(1)
13
13
 
14
14
  user = WTForum::User.find(user.id)
15
15
  user.username.should == "wtforum_test_user"
16
16
  user.email.should == "wtforum_test_user@example.com"
17
+ user.gender.should == "Male"
18
+ user.about.should == "I am a test user"
17
19
 
18
- user.update_attributes! username: "wtforum_test_user_2", email: "wtforum_test_user_2@example.com"
20
+ user.update_attributes! username: "wtforum_test_user_2", email: "wtforum_test_user_2@example.com", gender: "Female", about: "I am an updated test user"
19
21
 
20
22
  user = WTForum::User.find_by_username("wtforum_test_user_2")
21
23
  user.username.should == "wtforum_test_user_2"
22
24
  user.email.should == "wtforum_test_user_2@example.com"
25
+ user.gender.should == "Female"
26
+ user.about.should == "I am an updated test user"
23
27
 
24
28
  ensure
25
29
  lambda {
26
- WTForum::User.destroy(user.id)
30
+ WTForum::User.destroy(user.id) rescue nil or
31
+ WTForum::User.find_by_username("wtforum_test_user").destroy rescue nil or
32
+ WTForum::User.find_by_username("wtforum_test_user_2").destroy rescue nil
27
33
  }.should change(WTForum::User, :count).by(-1)
28
34
  end
29
35
  end
metadata CHANGED
@@ -2,14 +2,14 @@
2
2
  name: wtforum
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.2
5
+ version: 0.2.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Micah Geisel
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-01 00:00:00.000000000 Z
12
+ date: 2013-05-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  type: :runtime
@@ -155,7 +155,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
155
155
  requirements:
156
156
  - - ! '>='
157
157
  - !ruby/object:Gem::Version
158
- hash: 4397302379876706461
158
+ hash: 1492844664817071908
159
159
  segments:
160
160
  - 0
161
161
  version: '0'
@@ -164,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
164
164
  requirements:
165
165
  - - ! '>='
166
166
  - !ruby/object:Gem::Version
167
- hash: 4397302379876706461
167
+ hash: 1492844664817071908
168
168
  segments:
169
169
  - 0
170
170
  version: '0'