etherpad-lite 0.1.0.rc2 → 0.1.0
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/CHANGELOG +2 -2
- data/lib/etherpad-lite.rb +1 -0
- data/lib/etherpad-lite/client.rb +18 -4
- data/lib/etherpad-lite/models/author.rb +10 -0
- data/lib/etherpad-lite/models/pad.rb +21 -0
- data/lib/etherpad-lite/version.rb +5 -0
- data/spec/author_spec.rb +6 -0
- data/spec/config.yml +2 -3
- data/spec/pad_spec.rb +16 -0
- metadata +47 -28
data/CHANGELOG
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
** RELEASE 0.1.0 (
|
1
|
+
** RELEASE 0.1.0 (07/07/2012) **
|
2
2
|
|
3
3
|
* Requires Etherpad Lite 1.1+
|
4
|
-
* Added support for
|
4
|
+
* Added support for getHTML, setHTML, listAuthorsOfPad, listPadsOfAuthor, getLastEdited, and padUsersCount
|
5
5
|
* Uses POST for API calls which alter data - this allows much larger pad content to be written
|
6
6
|
* Various minor improvements and bugfixes
|
7
7
|
* More complete documentation and examples
|
data/lib/etherpad-lite.rb
CHANGED
data/lib/etherpad-lite/client.rb
CHANGED
@@ -7,10 +7,6 @@ require 'json'
|
|
7
7
|
BAD_RUBY = RUBY_VERSION < '1.9.0' # :nodoc:
|
8
8
|
|
9
9
|
module EtherpadLite
|
10
|
-
MAJOR_VERSION, MINOR_VERSION, TINY_VERSION, PRE_VERSION = 0, 1, 0, 'rc2' # :nodoc:
|
11
|
-
# The client version
|
12
|
-
VERSION = [MAJOR_VERSION, MINOR_VERSION, TINY_VERSION, PRE_VERSION].compact.join '.'
|
13
|
-
|
14
10
|
# An error returned by the server
|
15
11
|
class APIError < StandardError
|
16
12
|
MESSAGE = "Error while talking to the API (%s). Make sure you are running the latest version of the Etherpad Lite server. If that is not possible, try rolling this client back to an earlier version."
|
@@ -140,6 +136,10 @@ module EtherpadLite
|
|
140
136
|
post :createAuthorIfNotExistsFor, params
|
141
137
|
end
|
142
138
|
|
139
|
+
def listPadsOfAuthor(authorID)
|
140
|
+
get :listPadsOfAuthor, :authorID => authorID
|
141
|
+
end
|
142
|
+
|
143
143
|
# Sessions
|
144
144
|
# Sessions can be created between a group and an author. This allows
|
145
145
|
# an author to access more than one group. The sessionID will be set as
|
@@ -214,6 +214,16 @@ module EtherpadLite
|
|
214
214
|
get :getRevisionsCount, :padID => padID
|
215
215
|
end
|
216
216
|
|
217
|
+
# Returns the number of users currently editing the pad
|
218
|
+
def padUsersCount(padID)
|
219
|
+
get :padUsersCount, :padID => padID
|
220
|
+
end
|
221
|
+
|
222
|
+
# Returns the time the pad was last edited as a Unix timestamp
|
223
|
+
def getLastEdited(padID)
|
224
|
+
get :getLastEdited, :padID => padID
|
225
|
+
end
|
226
|
+
|
217
227
|
# Delete the given Pad
|
218
228
|
def deletePad(padID)
|
219
229
|
post :deletePad, :padID => padID
|
@@ -224,6 +234,10 @@ module EtherpadLite
|
|
224
234
|
get :getReadOnlyID, :padID => padID
|
225
235
|
end
|
226
236
|
|
237
|
+
def listAuthorsOfPad(padID)
|
238
|
+
get :listAuthorsOfPad, :padID => padID
|
239
|
+
end
|
240
|
+
|
227
241
|
# Sets a boolean for the public status of a Pad
|
228
242
|
def setPublicStatus(padID, publicStatus)
|
229
243
|
post :setPublicStatus, :padID => padID, :publicStatus => publicStatus
|
@@ -80,6 +80,16 @@ module EtherpadLite
|
|
80
80
|
@name = options[:name]
|
81
81
|
end
|
82
82
|
|
83
|
+
# Returns an array of pad ids that this author has edited
|
84
|
+
def pad_ids
|
85
|
+
@instance.client.listPadsOfAuthor(@id)[:padIDs] || []
|
86
|
+
end
|
87
|
+
|
88
|
+
# Returns an array of Pads that this author has edited
|
89
|
+
def pads
|
90
|
+
pad_ids.map { |id| Pad.new(@instance, id) }
|
91
|
+
end
|
92
|
+
|
83
93
|
# Create a new session for group that will last length_in_minutes.
|
84
94
|
def create_session(group, length_in_min)
|
85
95
|
Session.create(@instance, group.id, @id, length_in_min)
|
@@ -119,11 +119,32 @@ module EtherpadLite
|
|
119
119
|
revision_numbers.map { |n| Pad.new(@instance, @id, :rev => n) }
|
120
120
|
end
|
121
121
|
|
122
|
+
# Returns the number of users currently editing a pad
|
123
|
+
def user_count
|
124
|
+
@instance.client.padUsersCount(@id)[:padUsersCount]
|
125
|
+
end
|
126
|
+
alias_method :users_count, :user_count
|
127
|
+
|
122
128
|
# Returns the Pad's read-only id. This is cached.
|
123
129
|
def read_only_id
|
124
130
|
@read_only_id ||= @instance.client.getReadOnlyID(@id)[:readOnlyID]
|
125
131
|
end
|
126
132
|
|
133
|
+
# Returns the time the pad was last edited as a Unix timestamp
|
134
|
+
def last_edited
|
135
|
+
@instance.client.getLastEdited(@id)[:lastEdited]
|
136
|
+
end
|
137
|
+
|
138
|
+
# Returns an array of ids of authors who've edited this pad
|
139
|
+
def author_ids
|
140
|
+
@instance.client.listAuthorsOfPad(@id)[:authorIDs] || []
|
141
|
+
end
|
142
|
+
|
143
|
+
# Returns an array of Authors who've edited this pad
|
144
|
+
def authors
|
145
|
+
author_ids.map { |id| Author.new(@instance, id) }
|
146
|
+
end
|
147
|
+
|
127
148
|
# Returns true if this is a public Pad (opposite of private?).
|
128
149
|
# This only applies to Pads belonging to a Group.
|
129
150
|
def public?
|
data/spec/author_spec.rb
CHANGED
@@ -21,4 +21,10 @@ describe EtherpadLite::Author do
|
|
21
21
|
# They should be the same
|
22
22
|
author1.id.should == author2.id
|
23
23
|
end
|
24
|
+
|
25
|
+
it "should list pads of 'Author A'" do
|
26
|
+
author = @eth.create_author :mapper => 'Author A'
|
27
|
+
author.pad_ids.should == []
|
28
|
+
author.pads.should == []
|
29
|
+
end
|
24
30
|
end
|
data/spec/config.yml
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
:url:
|
2
|
-
|
3
|
-
# Full filesystem path to APIKEY.txt, may be used instead of the above :api_key setting
|
1
|
+
:url: 9003
|
2
|
+
#:api_key: UrdBfgceHYDZs4yr1rQ12rVOzo31XfEW
|
4
3
|
:api_key_file: /home/jhollinger/devel/etherpad-lite/APIKEY.txt
|
data/spec/pad_spec.rb
CHANGED
@@ -88,6 +88,22 @@ describe EtherpadLite::Pad do
|
|
88
88
|
pad.text.should == "Brand new text\n"
|
89
89
|
end
|
90
90
|
|
91
|
+
it "should list author ids" do
|
92
|
+
pad = @eth.pad 'brand new pad2'
|
93
|
+
pad.author_ids.should == []
|
94
|
+
pad.authors.should == []
|
95
|
+
end
|
96
|
+
|
97
|
+
it "should get the last edit date" do
|
98
|
+
pad = @eth.pad 'brand new pad3'
|
99
|
+
pad.last_edited.>(1).should == true
|
100
|
+
end
|
101
|
+
|
102
|
+
it "should return the number of users" do
|
103
|
+
pad = @eth.pad 'brand new pad3'
|
104
|
+
pad.user_count.should == 0
|
105
|
+
end
|
106
|
+
|
91
107
|
it "should be deleted" do
|
92
108
|
@eth.get_pad('another new pad').delete
|
93
109
|
@eth.create_pad('another new pad').id.should_not == nil
|
metadata
CHANGED
@@ -1,65 +1,84 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: etherpad-lite
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
version: 0.1.0
|
6
10
|
platform: ruby
|
7
|
-
authors:
|
11
|
+
authors:
|
8
12
|
- Jordan Hollinger
|
9
13
|
autorequire:
|
10
14
|
bindir: bin
|
11
15
|
cert_chain: []
|
12
|
-
|
16
|
+
|
17
|
+
date: 2012-07-07 00:00:00 -04:00
|
18
|
+
default_executable:
|
13
19
|
dependencies: []
|
20
|
+
|
14
21
|
description: etherpad-lite is a Ruby interface to Etherpad Lite's HTTP JSON API
|
15
22
|
email: jordan@jordanhollinger.com
|
16
23
|
executables: []
|
24
|
+
|
17
25
|
extensions: []
|
18
|
-
|
26
|
+
|
27
|
+
extra_rdoc_files:
|
19
28
|
- README.rdoc
|
20
|
-
files:
|
29
|
+
files:
|
21
30
|
- lib/etherpad-lite.rb
|
31
|
+
- lib/etherpad-lite/models.rb
|
32
|
+
- lib/etherpad-lite/models/session.rb
|
22
33
|
- lib/etherpad-lite/models/padded.rb
|
23
|
-
- lib/etherpad-lite/models/group.rb
|
24
|
-
- lib/etherpad-lite/models/pad.rb
|
25
34
|
- lib/etherpad-lite/models/author.rb
|
26
35
|
- lib/etherpad-lite/models/instance.rb
|
27
|
-
- lib/etherpad-lite/models/
|
36
|
+
- lib/etherpad-lite/models/pad.rb
|
37
|
+
- lib/etherpad-lite/models/group.rb
|
28
38
|
- lib/etherpad-lite/client.rb
|
29
|
-
- lib/etherpad-lite/
|
30
|
-
- spec/pad_spec.rb
|
31
|
-
- spec/config.yml.example
|
32
|
-
- spec/config.yml
|
39
|
+
- lib/etherpad-lite/version.rb
|
33
40
|
- spec/spec_helper.rb
|
34
41
|
- spec/instance_spec.rb
|
35
42
|
- spec/session_spec.rb
|
36
|
-
- spec/author_spec.rb
|
37
43
|
- spec/group_spec.rb
|
44
|
+
- spec/config.yml
|
45
|
+
- spec/config.yml.example
|
46
|
+
- spec/author_spec.rb
|
47
|
+
- spec/pad_spec.rb
|
38
48
|
- README.rdoc
|
39
49
|
- CHANGELOG
|
40
50
|
- LICENSE
|
51
|
+
has_rdoc: true
|
41
52
|
homepage: http://github.com/jhollinger/ruby-etherpad-lite
|
42
53
|
licenses: []
|
54
|
+
|
43
55
|
post_install_message:
|
44
56
|
rdoc_options: []
|
45
|
-
|
57
|
+
|
58
|
+
require_paths:
|
46
59
|
- lib
|
47
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
60
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
48
61
|
none: false
|
49
|
-
requirements:
|
50
|
-
- -
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
|
53
|
-
|
62
|
+
requirements:
|
63
|
+
- - ">="
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
segments:
|
66
|
+
- 0
|
67
|
+
version: "0"
|
68
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
54
69
|
none: false
|
55
|
-
requirements:
|
56
|
-
- -
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
segments:
|
74
|
+
- 0
|
75
|
+
version: "0"
|
59
76
|
requirements: []
|
77
|
+
|
60
78
|
rubyforge_project:
|
61
|
-
rubygems_version: 1.
|
79
|
+
rubygems_version: 1.3.7
|
62
80
|
signing_key:
|
63
81
|
specification_version: 3
|
64
82
|
summary: A Ruby client library for Etherpad Lite
|
65
83
|
test_files: []
|
84
|
+
|