wiki 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/README.md +10 -2
- data/bin/wiki +4 -0
- data/default-data/pages/how-to-wiki +1069 -0
- data/default-data/pages/welcome-visitors +336 -0
- data/default-data/status/favicon.png +0 -0
- data/default-data/status/local-identity +7 -0
- data/lib/wiki/favicon.rb +0 -1
- data/lib/wiki/page.rb +3 -6
- data/lib/wiki/server.rb +7 -3
- data/lib/wiki/version.rb +1 -1
- data/package.json +70 -0
- data/wiki.gemspec +20 -13
- metadata +205 -58
- data/lib/wiki/views/client/Gruntfile.js +0 -50
- data/lib/wiki/views/client/ReadMe.md +0 -67
- data/lib/wiki/views/client/build-test.bat +0 -10
- data/lib/wiki/views/client/build.bat +0 -8
- data/lib/wiki/views/client/builder.pl +0 -41
- data/lib/wiki/views/client/client.coffee +0 -3
- data/lib/wiki/views/client/client.js +0 -3607
- data/lib/wiki/views/client/crosses.png +0 -0
- data/lib/wiki/views/client/images/external-link-ltr-icon.png +0 -0
- data/lib/wiki/views/client/images/noise.png +0 -0
- data/lib/wiki/views/client/images/oops.jpg +0 -0
- data/lib/wiki/views/client/js/d3/d3.behavior.js +0 -198
- data/lib/wiki/views/client/js/d3/d3.chart.js +0 -984
- data/lib/wiki/views/client/js/d3/d3.csv.js +0 -92
- data/lib/wiki/views/client/js/d3/d3.geo.js +0 -566
- data/lib/wiki/views/client/js/d3/d3.geom.js +0 -825
- data/lib/wiki/views/client/js/d3/d3.js +0 -3597
- data/lib/wiki/views/client/js/d3/d3.layout.js +0 -1923
- data/lib/wiki/views/client/js/d3/d3.time.js +0 -660
- data/lib/wiki/views/client/js/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/lib/wiki/views/client/js/images/ui-icons_222222_256x240.png +0 -0
- data/lib/wiki/views/client/js/jquery-1.6.2.min.js +0 -18
- data/lib/wiki/views/client/js/jquery-1.7.1.min.js +0 -4
- data/lib/wiki/views/client/js/jquery-1.9.1.min.js +0 -5
- data/lib/wiki/views/client/js/jquery-migrate-1.1.1.min.js +0 -3
- data/lib/wiki/views/client/js/jquery-ui-1.10.1.custom.min.css +0 -5
- data/lib/wiki/views/client/js/jquery-ui-1.10.1.custom.min.js +0 -6
- data/lib/wiki/views/client/js/jquery-ui-1.8.16.custom.css +0 -339
- data/lib/wiki/views/client/js/jquery-ui-1.8.16.custom.min.js +0 -315
- data/lib/wiki/views/client/js/jquery.ie.cors.js +0 -310
- data/lib/wiki/views/client/js/jquery.ui.touch-punch.min.js +0 -11
- data/lib/wiki/views/client/js/modernizr.custom.63710.js +0 -824
- data/lib/wiki/views/client/js/sockjs-0.3.min.js +0 -27
- data/lib/wiki/views/client/js/underscore-min.js +0 -30
- data/lib/wiki/views/client/mkplugin.sh +0 -97
- data/lib/wiki/views/client/package.json +0 -36
- data/lib/wiki/views/client/runtests.html +0 -26
- data/lib/wiki/views/client/style.css +0 -339
- data/lib/wiki/views/client/test/mocha.css +0 -231
- data/lib/wiki/views/client/test/mocha.js +0 -5340
- data/lib/wiki/views/client/test/testclient.js +0 -17133
- data/lib/wiki/views/client/testclient.coffee +0 -18
- data/lib/wiki/views/client/theme/granite.css +0 -59
- data/lib/wiki/views/client/theme/stoneSeamless.jpg +0 -0
- data/lib/wiki/views/client/twitter-maintainance.jpg +0 -0
data/wiki.gemspec
CHANGED
@@ -5,24 +5,31 @@ require 'wiki/version'
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "wiki"
|
8
|
+
spec.platform = Gem::Platform::RUBY
|
8
9
|
spec.version = Wiki::VERSION
|
9
|
-
spec.authors = ["
|
10
|
-
spec.email = ["
|
11
|
-
spec.
|
12
|
-
spec.
|
10
|
+
spec.authors = ["Ward Cunningham", "Jonan Scheffler", "Daniel Stark"]
|
11
|
+
spec.email = ["ward@c2.com", "jonanscheffler@gmail.com", "daniel@studiostark.com"]
|
12
|
+
spec.summary = %q{A Federated Wiki Server}
|
13
|
+
spec.description = %q{Wiki is a single-page application for browsing and editing content distributed throughout a federation of similar creative-commons licensed sites. What is a federated wiki, and why does federation matter? Authors throughout the federation pull content towards themselves as they edit. With this package authors publish their own edits back to the federation as they edit.}
|
13
14
|
spec.homepage = "http://fed.wiki.org"
|
14
15
|
spec.licenses = ['MIT', 'GPL-2']
|
15
16
|
|
16
17
|
spec.files = `git ls-files`.split($/)
|
17
|
-
|
18
|
-
|
18
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
19
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
20
|
spec.require_paths = ["lib"]
|
21
|
+
spec.add_runtime_dependency 'sinatra'
|
22
|
+
spec.add_runtime_dependency 'thin'
|
23
|
+
spec.add_runtime_dependency 'png'
|
24
|
+
spec.add_runtime_dependency 'openid'
|
25
|
+
spec.add_runtime_dependency 'haml'
|
26
|
+
spec.add_runtime_dependency 'sass'
|
27
|
+
spec.add_runtime_dependency 'json'
|
28
|
+
spec.add_runtime_dependency 'RubyInline'
|
29
|
+
spec.add_runtime_dependency 'ZenTest'
|
30
|
+
spec.add_runtime_dependency 'rest-client'
|
31
|
+
spec.add_runtime_dependency 'ruby-openid'
|
32
|
+
spec.add_runtime_dependency 'couchrest'
|
33
|
+
spec.add_runtime_dependency 'memcache-client'
|
20
34
|
|
21
|
-
# spec.add_dependency "openid"
|
22
|
-
# spec.add_dependency "png"
|
23
|
-
# spec.add_dependency "sinatra"
|
24
|
-
# spec.add_dependency "haml"
|
25
|
-
|
26
|
-
# spec.add_development_dependency "bundler", "~> 1.3"
|
27
|
-
# spec.add_development_dependency "rake"
|
28
35
|
end
|
metadata
CHANGED
@@ -1,21 +1,210 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wiki
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Daniel Stark
|
8
7
|
- Ward Cunningham
|
8
|
+
- Jonan Scheffler
|
9
|
+
- Daniel Stark
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date:
|
13
|
-
dependencies:
|
14
|
-
|
13
|
+
date: 2014-02-12 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: sinatra
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - '>='
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '0'
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: thin
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - '>='
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '0'
|
36
|
+
type: :runtime
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - '>='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0'
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: png
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - '>='
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0'
|
50
|
+
type: :runtime
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - '>='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: openid
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - '>='
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
64
|
+
type: :runtime
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: haml
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
type: :runtime
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - '>='
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: sass
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - '>='
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
type: :runtime
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: json
|
101
|
+
requirement: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - '>='
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0'
|
106
|
+
type: :runtime
|
107
|
+
prerelease: false
|
108
|
+
version_requirements: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - '>='
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0'
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: RubyInline
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - '>='
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '0'
|
120
|
+
type: :runtime
|
121
|
+
prerelease: false
|
122
|
+
version_requirements: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - '>='
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
127
|
+
- !ruby/object:Gem::Dependency
|
128
|
+
name: ZenTest
|
129
|
+
requirement: !ruby/object:Gem::Requirement
|
130
|
+
requirements:
|
131
|
+
- - '>='
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
134
|
+
type: :runtime
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
requirements:
|
138
|
+
- - '>='
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: '0'
|
141
|
+
- !ruby/object:Gem::Dependency
|
142
|
+
name: rest-client
|
143
|
+
requirement: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - '>='
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '0'
|
148
|
+
type: :runtime
|
149
|
+
prerelease: false
|
150
|
+
version_requirements: !ruby/object:Gem::Requirement
|
151
|
+
requirements:
|
152
|
+
- - '>='
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: '0'
|
155
|
+
- !ruby/object:Gem::Dependency
|
156
|
+
name: ruby-openid
|
157
|
+
requirement: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - '>='
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '0'
|
162
|
+
type: :runtime
|
163
|
+
prerelease: false
|
164
|
+
version_requirements: !ruby/object:Gem::Requirement
|
165
|
+
requirements:
|
166
|
+
- - '>='
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: '0'
|
169
|
+
- !ruby/object:Gem::Dependency
|
170
|
+
name: couchrest
|
171
|
+
requirement: !ruby/object:Gem::Requirement
|
172
|
+
requirements:
|
173
|
+
- - '>='
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
version: '0'
|
176
|
+
type: :runtime
|
177
|
+
prerelease: false
|
178
|
+
version_requirements: !ruby/object:Gem::Requirement
|
179
|
+
requirements:
|
180
|
+
- - '>='
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '0'
|
183
|
+
- !ruby/object:Gem::Dependency
|
184
|
+
name: memcache-client
|
185
|
+
requirement: !ruby/object:Gem::Requirement
|
186
|
+
requirements:
|
187
|
+
- - '>='
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0'
|
190
|
+
type: :runtime
|
191
|
+
prerelease: false
|
192
|
+
version_requirements: !ruby/object:Gem::Requirement
|
193
|
+
requirements:
|
194
|
+
- - '>='
|
195
|
+
- !ruby/object:Gem::Version
|
196
|
+
version: '0'
|
197
|
+
description: Wiki is a single-page application for browsing and editing content distributed
|
198
|
+
throughout a federation of similar creative-commons licensed sites. What is a federated
|
199
|
+
wiki, and why does federation matter? Authors throughout the federation pull content
|
200
|
+
towards themselves as they edit. With this package authors publish their own edits
|
201
|
+
back to the federation as they edit.
|
15
202
|
email:
|
16
|
-
- daniel@studiostark.com
|
17
203
|
- ward@c2.com
|
18
|
-
|
204
|
+
- jonanscheffler@gmail.com
|
205
|
+
- daniel@studiostark.com
|
206
|
+
executables:
|
207
|
+
- wiki
|
19
208
|
extensions: []
|
20
209
|
extra_rdoc_files: []
|
21
210
|
files:
|
@@ -24,6 +213,11 @@ files:
|
|
24
213
|
- LICENSE.txt
|
25
214
|
- README.md
|
26
215
|
- Rakefile
|
216
|
+
- bin/wiki
|
217
|
+
- default-data/pages/how-to-wiki
|
218
|
+
- default-data/pages/welcome-visitors
|
219
|
+
- default-data/status/favicon.png
|
220
|
+
- default-data/status/local-identity
|
27
221
|
- lib/wiki.rb
|
28
222
|
- lib/wiki/ReadMe.md
|
29
223
|
- lib/wiki/config.ru
|
@@ -38,56 +232,12 @@ files:
|
|
38
232
|
- lib/wiki/stores/file.rb
|
39
233
|
- lib/wiki/stores/store.rb
|
40
234
|
- lib/wiki/version.rb
|
41
|
-
- lib/wiki/views/client/Gruntfile.js
|
42
|
-
- lib/wiki/views/client/ReadMe.md
|
43
|
-
- lib/wiki/views/client/build-test.bat
|
44
|
-
- lib/wiki/views/client/build.bat
|
45
|
-
- lib/wiki/views/client/builder.pl
|
46
|
-
- lib/wiki/views/client/client.coffee
|
47
|
-
- lib/wiki/views/client/client.js
|
48
|
-
- lib/wiki/views/client/crosses.png
|
49
|
-
- lib/wiki/views/client/images/external-link-ltr-icon.png
|
50
|
-
- lib/wiki/views/client/images/noise.png
|
51
|
-
- lib/wiki/views/client/images/oops.jpg
|
52
|
-
- lib/wiki/views/client/js/d3/d3.behavior.js
|
53
|
-
- lib/wiki/views/client/js/d3/d3.chart.js
|
54
|
-
- lib/wiki/views/client/js/d3/d3.csv.js
|
55
|
-
- lib/wiki/views/client/js/d3/d3.geo.js
|
56
|
-
- lib/wiki/views/client/js/d3/d3.geom.js
|
57
|
-
- lib/wiki/views/client/js/d3/d3.js
|
58
|
-
- lib/wiki/views/client/js/d3/d3.layout.js
|
59
|
-
- lib/wiki/views/client/js/d3/d3.time.js
|
60
|
-
- lib/wiki/views/client/js/images/ui-bg_glass_65_ffffff_1x400.png
|
61
|
-
- lib/wiki/views/client/js/images/ui-icons_222222_256x240.png
|
62
|
-
- lib/wiki/views/client/js/jquery-1.6.2.min.js
|
63
|
-
- lib/wiki/views/client/js/jquery-1.7.1.min.js
|
64
|
-
- lib/wiki/views/client/js/jquery-1.9.1.min.js
|
65
|
-
- lib/wiki/views/client/js/jquery-migrate-1.1.1.min.js
|
66
|
-
- lib/wiki/views/client/js/jquery-ui-1.10.1.custom.min.css
|
67
|
-
- lib/wiki/views/client/js/jquery-ui-1.10.1.custom.min.js
|
68
|
-
- lib/wiki/views/client/js/jquery-ui-1.8.16.custom.css
|
69
|
-
- lib/wiki/views/client/js/jquery-ui-1.8.16.custom.min.js
|
70
|
-
- lib/wiki/views/client/js/jquery.ie.cors.js
|
71
|
-
- lib/wiki/views/client/js/jquery.ui.touch-punch.min.js
|
72
|
-
- lib/wiki/views/client/js/modernizr.custom.63710.js
|
73
|
-
- lib/wiki/views/client/js/sockjs-0.3.min.js
|
74
|
-
- lib/wiki/views/client/js/underscore-min.js
|
75
|
-
- lib/wiki/views/client/mkplugin.sh
|
76
|
-
- lib/wiki/views/client/package.json
|
77
|
-
- lib/wiki/views/client/runtests.html
|
78
|
-
- lib/wiki/views/client/style.css
|
79
|
-
- lib/wiki/views/client/test/mocha.css
|
80
|
-
- lib/wiki/views/client/test/mocha.js
|
81
|
-
- lib/wiki/views/client/test/testclient.js
|
82
|
-
- lib/wiki/views/client/testclient.coffee
|
83
|
-
- lib/wiki/views/client/theme/granite.css
|
84
|
-
- lib/wiki/views/client/theme/stoneSeamless.jpg
|
85
|
-
- lib/wiki/views/client/twitter-maintainance.jpg
|
86
235
|
- lib/wiki/views/layout.haml
|
87
236
|
- lib/wiki/views/oops.haml
|
88
237
|
- lib/wiki/views/page.haml
|
89
238
|
- lib/wiki/views/static.html
|
90
239
|
- lib/wiki/views/view.haml
|
240
|
+
- package.json
|
91
241
|
- wiki.gemspec
|
92
242
|
homepage: http://fed.wiki.org
|
93
243
|
licenses:
|
@@ -110,12 +260,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
260
|
version: '0'
|
111
261
|
requirements: []
|
112
262
|
rubyforge_project:
|
113
|
-
rubygems_version: 2.
|
263
|
+
rubygems_version: 2.0.14
|
114
264
|
signing_key:
|
115
265
|
specification_version: 4
|
116
|
-
summary:
|
117
|
-
throughout a federation of similar creative-commons licensed sites. What is a federated
|
118
|
-
wiki, and why does federation matter? Authors thoughout the federation pull content
|
119
|
-
towards themselves as they edit. With this package authors publish their own edits
|
120
|
-
back to the federation as they edit.
|
266
|
+
summary: A Federated Wiki Server
|
121
267
|
test_files: []
|
268
|
+
has_rdoc:
|
@@ -1,50 +0,0 @@
|
|
1
|
-
module.exports = function (grunt) {
|
2
|
-
grunt.loadNpmTasks('grunt-browserify');
|
3
|
-
grunt.loadNpmTasks('grunt-contrib-coffee');
|
4
|
-
grunt.loadNpmTasks('grunt-contrib-watch');
|
5
|
-
|
6
|
-
grunt.initConfig({
|
7
|
-
browserify: {
|
8
|
-
client: {
|
9
|
-
src: ['client.coffee'],
|
10
|
-
dest: 'client.js',
|
11
|
-
options: {
|
12
|
-
transform: ['coffeeify'],
|
13
|
-
debug: true
|
14
|
-
}
|
15
|
-
},
|
16
|
-
testClient: {
|
17
|
-
src: ['testclient.coffee', 'plugins/*/test.coffee'],
|
18
|
-
dest: 'test/testclient.js',
|
19
|
-
options: {
|
20
|
-
transform: ['coffeeify'],
|
21
|
-
debug: true
|
22
|
-
}
|
23
|
-
}
|
24
|
-
},
|
25
|
-
|
26
|
-
coffee: {
|
27
|
-
plugins: {
|
28
|
-
expand: true,
|
29
|
-
src: ['plugins/**/*.coffee'],
|
30
|
-
ext: '.js'
|
31
|
-
}
|
32
|
-
},
|
33
|
-
|
34
|
-
watch: {
|
35
|
-
all: {
|
36
|
-
files: [
|
37
|
-
'<%= browserify.testClient.src %>',
|
38
|
-
'<%= browserify.client.src %>',
|
39
|
-
'<%= coffee.plugins.src %>',
|
40
|
-
'lib/**/*.coffee'
|
41
|
-
],
|
42
|
-
tasks: ['browserify', 'coffee']
|
43
|
-
}
|
44
|
-
}
|
45
|
-
});
|
46
|
-
|
47
|
-
grunt.registerTask('build', ['coffee', 'browserify']);
|
48
|
-
grunt.registerTask('default', ['build']);
|
49
|
-
|
50
|
-
};
|
@@ -1,67 +0,0 @@
|
|
1
|
-
Client Goals
|
2
|
-
============
|
3
|
-
|
4
|
-
A server offers direct restful read/write access to pages it owns and proxy access to pages held elsewhere in federated space.
|
5
|
-
A page is owned if it was created with the server or has been cloned and edited such that it is believed to be the most authoritative copy of a page previously owned elsewhere.
|
6
|
-
A server operates as a proxy to the rest of the federated wiki.
|
7
|
-
In this role it reformats data and metadata providing a unified experience.
|
8
|
-
It is welcome to collect behavioral statistics in order to improve this experience by anticipating permitted peer-to-peer server operations.
|
9
|
-
|
10
|
-
In summary, the server's client side exists to:
|
11
|
-
|
12
|
-
* Offer to a user a browsing experience that is independent of any specific server.
|
13
|
-
* Support writing, editing and curating of one server in a way that offers suitable influence over others.
|
14
|
-
|
15
|
-
Working with Browserify
|
16
|
-
=======================
|
17
|
-
|
18
|
-
The client side is written in CoffeeScript, and built with Browserify.
|
19
|
-
If you are not checking in changes you need not concern yourself with this.
|
20
|
-
We've checked in the generated Javascript for the client application.
|
21
|
-
|
22
|
-
If you do want to check in changes, install node v0.6.x
|
23
|
-
|
24
|
-
* On Linux download the source from [GitHub](https://github.com/joyent/node)
|
25
|
-
* On Windows get the installer from the [main node.js site](http://nodejs.org).
|
26
|
-
* On Mac you should be able to choose either.
|
27
|
-
|
28
|
-
Once node is installed come back to this directory and run:
|
29
|
-
|
30
|
-
* `npm install` To install CoffeeScript, Browserify, and all their dependencies.
|
31
|
-
|
32
|
-
You can now use:
|
33
|
-
|
34
|
-
* `npm start` To build the main client.
|
35
|
-
* `npm test` To build the test client.
|
36
|
-
|
37
|
-
These commands build client.js and test/testclient.js from client.coffee and
|
38
|
-
testclient.coffee respectively. They use their entry files to require the
|
39
|
-
rest of the coffee script they need from the source CS files in /lib.
|
40
|
-
|
41
|
-
We also have a cool automated talking (Mac only) Perl build script that uses
|
42
|
-
a globally installed browserify via `npm install -g browserify`, it watches
|
43
|
-
for changes, builds the clients automatically, and gives a verbal report
|
44
|
-
when you have syntax errors.
|
45
|
-
|
46
|
-
Testing
|
47
|
-
=======
|
48
|
-
|
49
|
-
All the client tests can be run by visiting /runtests.html on your server
|
50
|
-
or by running the full ruby test suite. Information about the libraries we
|
51
|
-
are using for testing can be found at:
|
52
|
-
|
53
|
-
* http://visionmedia.github.com/mocha/
|
54
|
-
* https://github.com/LearnBoost/expect.js
|
55
|
-
* http://sinonjs.org/
|
56
|
-
|
57
|
-
CoffeeScript hints
|
58
|
-
==================
|
59
|
-
|
60
|
-
We recommend taking time to learn the CoffeeScript syntax and the rationale for the Javascript idioms it employs. Start here:
|
61
|
-
|
62
|
-
http://jashkenas.github.com/coffee-script/
|
63
|
-
|
64
|
-
We used a Javascript to Coffeescript converter to create the first draft of client.coffee. You may find this converter useful for importing sample codes.
|
65
|
-
|
66
|
-
http://ricostacruz.com/js2coffee/
|
67
|
-
|