iated 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. data/.gitignore +6 -0
  2. data/Gemfile +3 -0
  3. data/Guardfile +24 -0
  4. data/LICENSE +23 -0
  5. data/Makefile +72 -0
  6. data/README.md +87 -0
  7. data/Rakefile +10 -0
  8. data/bin/iated +13 -0
  9. data/config.ru +5 -0
  10. data/extensions/chrome/background.html +5 -0
  11. data/extensions/chrome/background.js +105 -0
  12. data/extensions/chrome/contentscript.css +0 -0
  13. data/extensions/chrome/contentscript.js +110 -0
  14. data/extensions/chrome/jquery-ui.js +45 -0
  15. data/extensions/chrome/jquery.js +16 -0
  16. data/extensions/chrome/jquery.updater.js +46 -0
  17. data/extensions/chrome/manifest.json +19 -0
  18. data/extensions/chrome/yaml.js +489 -0
  19. data/extensions/tests/simple.html +23 -0
  20. data/features/extension_authenticates.feature +30 -0
  21. data/features/extension_edits.feature +45 -0
  22. data/features/step_definitions/extension_steps.rb +134 -0
  23. data/features/support/env.rb +47 -0
  24. data/features/support/hooks.rb +11 -0
  25. data/iated.gemspec +48 -0
  26. data/lib/iated.rb +111 -0
  27. data/lib/iated/browser_token_db.rb +76 -0
  28. data/lib/iated/edit_session.rb +221 -0
  29. data/lib/iated/helpers.rb +9 -0
  30. data/lib/iated/mcp.rb +144 -0
  31. data/lib/iated/page_helpers.rb +33 -0
  32. data/lib/iated/public/jquery-ui.js +101 -0
  33. data/lib/iated/public/jquery.js +2 -0
  34. data/lib/iated/public/robots.txt +5 -0
  35. data/lib/iated/server.rb +162 -0
  36. data/lib/iated/sys_pref.rb +201 -0
  37. data/lib/iated/version.rb +3 -0
  38. data/lib/iated/views/hello.haml +13 -0
  39. data/lib/iated/views/preferences.haml +27 -0
  40. data/lib/iated/views/reference.coffee +79 -0
  41. data/lib/iated/views/reference.haml +94 -0
  42. data/lib/iated/views/reference.scss +36 -0
  43. data/lib/iated/views/root.haml +13 -0
  44. data/spec/lib/iated/browser_token_db_spec.rb +68 -0
  45. data/spec/lib/iated/edit_session_spec.rb +157 -0
  46. data/spec/lib/iated/mcp_spec.rb +86 -0
  47. data/spec/lib/iated/sys_pref_spec.rb +40 -0
  48. data/spec/protocol/edit_spec.rb +88 -0
  49. data/spec/protocol/hello_spec.rb +18 -0
  50. data/spec/protocol/notfound_spec.rb +11 -0
  51. data/spec/protocol/ping_spec.rb +10 -0
  52. data/spec/protocol/preferences_spec.rb +35 -0
  53. data/spec/spec_helper.rb +21 -0
  54. metadata +460 -0
@@ -0,0 +1,86 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Iated::mcp" do
4
+
5
+ it "should be able to fetch the port number from preferences" do
6
+ Iated::mcp.prefs.port.should_not be_nil
7
+ end
8
+
9
+ it "should be able to set the port number to preferences" do
10
+ mcp = Iated::mcp
11
+ mcp.prefs.port = 1234
12
+ mcp.prefs.port.should == 1234
13
+ end
14
+
15
+ context "while showing a secret" do
16
+ before(:each) do
17
+ Iated::mcp.show_secret
18
+ end
19
+ after(:each) do
20
+ Iated::mcp.hide_secret
21
+ end
22
+ describe "#secret" do
23
+ it "should be a string" do
24
+ Iated::mcp.secret.should be_a_kind_of(String)
25
+ end
26
+ it "should be 4 digits" do
27
+ Iated::mcp.secret.should =~ /^[0-9]{4}$/
28
+ end
29
+ end
30
+ describe "#showing_secret?" do
31
+ it "should be true" do
32
+ Iated::mcp.should be_showing_secret
33
+ end
34
+ end
35
+ describe "#confirm_secret" do
36
+ it "should return true if secret matches" do
37
+ Iated::mcp.confirm_secret(Iated::mcp.secret).should be_true
38
+ end
39
+ it "should return false if secret doesn't match" do
40
+ Iated::mcp.confirm_secret("qqqq").should be_false
41
+ end
42
+ it "should stow showing the secret" do
43
+ Iated::mcp.confirm_secret(Iated::mcp.secret)
44
+ Iated::mcp.should_not be_showing_secret
45
+ end
46
+ end
47
+ end
48
+
49
+ context "while not showing a secret" do
50
+ describe "#secret" do
51
+ it "should return :notset" do
52
+ Iated::mcp.secret.should == :notset
53
+ end
54
+ end
55
+ describe "#showing_secret?" do
56
+ it "should be false" do
57
+ Iated::mcp.should_not be_showing_secret
58
+ end
59
+ end
60
+ end
61
+
62
+
63
+ describe "#generate_token" do
64
+ before(:each) do
65
+ @token = Iated::mcp.generate_token "bogus user agent string"
66
+ end
67
+ it "should return a 32 hex character token" do
68
+ Iated::mcp.rspec_coverage_check
69
+ @token.should =~ /^[0-9a-f]{32}$/
70
+ end
71
+ it "should return a different token each time" do
72
+ token2 = Iated::mcp.generate_token "bogus user agent string"
73
+ @token.should_not == token2
74
+ end
75
+ end
76
+
77
+ describe "#ui" do
78
+ it "should only accept :test, :text, and :gui" do
79
+ Iated::mcp.ui = :gui
80
+ Iated::mcp.ui = :text
81
+ Iated::mcp.ui = :test
82
+ lambda { Iated::mcp.ui = nil }.should raise_error
83
+ lambda { Iated::mcp.ui = :flibbit }.should raise_error
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+ require 'pathname'
3
+
4
+ describe SysPref do
5
+ context "FakeStore" do
6
+ before(:each) do
7
+ Iated::reset
8
+ @prefs = Iated.mcp.prefs
9
+ end
10
+ after(:each) do
11
+ Iated::reset
12
+ end
13
+
14
+ context "#home" do
15
+ it "should return the home directory as a string" do
16
+ @prefs.home.should be_a(String)
17
+ end
18
+ end
19
+
20
+ context "#port" do
21
+ it "should return the correct value" do
22
+ @prefs.port = 2020
23
+ @prefs.port.should == 2020
24
+ end
25
+ end
26
+
27
+ context "#config_dir" do
28
+ it "should return the same default value repeatedly" do
29
+ first_value = @prefs.config_dir
30
+ @prefs.config_dir.should == first_value
31
+ end
32
+ end
33
+
34
+ context "#editor" do
35
+ it "should be able to load the jar to calculate the default" do
36
+ @prefs.editor.should be_a Pathname
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,88 @@
1
+ require 'spec_helper'
2
+ require 'json'
3
+
4
+ describe 'Iated /edit' do
5
+ def last_json
6
+ JSON::load(last_response.body)
7
+ end
8
+
9
+ before(:each) do
10
+ Iated::reset
11
+ end
12
+ after(:each) do
13
+ Iated::purge
14
+ end
15
+
16
+ context "creating a new edit session" do
17
+ before(:each) do
18
+ @token = Iated::mcp.generate_token 'bogus UA'
19
+ post '/edit', { :token => @token,
20
+ :url => "http://example.com/create-a-new-edit-session",
21
+ :text => 'sometext' }
22
+ end
23
+
24
+ it "should return 200 (success)" do
25
+ last_response.status.should == 200
26
+ end
27
+
28
+ it "should return a valid session id" do
29
+ last_json["sid"].should_not be_nil
30
+ Iated::sessions[last_json["sid"]].should_not be_nil
31
+ end
32
+
33
+ context "polling the new session" do
34
+ before(:each) do
35
+ @sid = last_json["sid"]
36
+ get "/edit/#{@sid}/0"
37
+ end
38
+ it "should return 200 (success)" do
39
+ last_response.status.should == 200
40
+ end
41
+
42
+ it "should return no changes" do
43
+ last_json["change_id"].should == 0
44
+ end
45
+
46
+ it "should return no text" do
47
+ last_json["text"].should be_nil
48
+ end
49
+ end
50
+
51
+ context "after one change" do
52
+ before(:each) do
53
+ @sid = last_json["sid"]
54
+ @text = "first_change"
55
+ @session = Iated::sessions[@sid]
56
+ @session.text = @text
57
+ get "/edit/#{@sid}/0"
58
+ end
59
+
60
+ it "should return a change_id of 1" do
61
+ last_json["change_id"].should == 1
62
+ end
63
+
64
+ it "should return the text" do
65
+ last_json["text"].should == @text
66
+ end
67
+ end
68
+ end
69
+
70
+ context "repopening an existing file/session" do
71
+ before(:each) do
72
+ @token = Iated::mcp.generate_token 'bogus UA'
73
+ post '/edit', { :token => @token,
74
+ :url => "http://example.com/reopen-an-existing"
75
+ }
76
+ end
77
+
78
+ it "should return 200 (success)" do
79
+ last_response.status.should == 200
80
+ end
81
+
82
+ it "should return a valid session id" do
83
+ last_json["sid"].should_not be_nil
84
+ Iated::sessions[last_json["sid"]].should_not be_nil
85
+ end
86
+ end
87
+
88
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Iated /hello' do
4
+ include Rack::Test::Methods
5
+
6
+ def app
7
+ Sinatra::Application
8
+ end
9
+
10
+ it "returns options" do
11
+ header "Origin", "null"
12
+ options "/hello"
13
+ last_response.should be_ok
14
+ last_response.content_type.should =~ /text\/plain/
15
+ last_response.headers['Access-Control-Allow-Origin'].should == 'null'
16
+ last_response.body.should == ''
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Iated /doesnotexist' do
4
+ it "returns a 404 for a POST" do
5
+ get '/doesnotexist'
6
+ last_response.status.should == 404
7
+ last_response.content_type =~ /text\/plain/
8
+ last_response.body.should_not =~ /sinatra/i
9
+ end
10
+
11
+ end
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Iated /ping' do
4
+ it "says pong" do
5
+ get '/ping'
6
+ last_response.should be_ok
7
+ last_response.content_type.should =~ /text\/plain/
8
+ last_response.body.should == 'pong'
9
+ end
10
+ end
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Iated pages' do
4
+ describe "/preferences" do
5
+
6
+ context "without authentication" do
7
+ it "reports an error without a token" do
8
+ get "/preferences"
9
+ last_response.status.should == 403 # Forbidden
10
+ end
11
+ end
12
+
13
+
14
+ context "authenticated" do
15
+ before(:each) do
16
+ Iated::reset
17
+ @token = Iated::mcp.generate_token 'bogus UA'
18
+ end
19
+
20
+ it "returns a preferences web page" do
21
+ get "/preferences", { :token => @token }
22
+ last_response.status.should == 200
23
+ last_response.content_type.should =~ /text\/html/
24
+ last_response.body =~ /<h1>/i
25
+ end
26
+
27
+ it "returns a preferences web page" do
28
+ post "/preferences", { :token => @token }
29
+ last_response.content_type.should =~ /text\/html/
30
+ last_response.body =~ /<h1>/i
31
+ end
32
+ end
33
+ end
34
+
35
+ end
@@ -0,0 +1,21 @@
1
+
2
+ require 'pathname'
3
+ require 'rspec'
4
+ require 'rack/test'
5
+
6
+ $: << (Pathname.new(__FILE__).dirname.dirname + 'src' + 'lib').to_s
7
+
8
+ puts "Runing with #{RUBY_ENGINE}"
9
+
10
+ require 'iated/server'
11
+
12
+ set :environment, :test
13
+ Iated::environment = :test
14
+
15
+ def app
16
+ Iated::Server
17
+ end
18
+
19
+ RSpec.configure do |conf|
20
+ conf.include Rack::Test::Methods, :example_group => { :file_path => /spec\/protocol/ }
21
+ end
metadata ADDED
@@ -0,0 +1,460 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: iated
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Christian Höltje
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-09-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: sinatra
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 1.3.3
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 1.3.3
30
+ - !ruby/object:Gem::Dependency
31
+ name: haml
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 3.1.7
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 3.1.7
46
+ - !ruby/object:Gem::Dependency
47
+ name: json
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '1.1'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '1.1'
62
+ - !ruby/object:Gem::Dependency
63
+ name: addressable
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 2.3.2
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 2.3.2
78
+ - !ruby/object:Gem::Dependency
79
+ name: coffee-script
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :runtime
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: sass
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: rake
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: 0.9.2
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 0.9.2
126
+ - !ruby/object:Gem::Dependency
127
+ name: rspec
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>'
132
+ - !ruby/object:Gem::Version
133
+ version: '2.0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>'
140
+ - !ruby/object:Gem::Version
141
+ version: '2.0'
142
+ - !ruby/object:Gem::Dependency
143
+ name: yard
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ - !ruby/object:Gem::Dependency
159
+ name: kramdown
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ - !ruby/object:Gem::Dependency
175
+ name: cucumber
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: 1.1.0
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: 1.1.0
190
+ - !ruby/object:Gem::Dependency
191
+ name: webrat
192
+ requirement: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ! '>='
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ - !ruby/object:Gem::Dependency
207
+ name: syntax
208
+ requirement: !ruby/object:Gem::Requirement
209
+ none: false
210
+ requirements:
211
+ - - ! '>='
212
+ - !ruby/object:Gem::Version
213
+ version: '0'
214
+ type: :development
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ! '>='
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ - !ruby/object:Gem::Dependency
223
+ name: rack-test
224
+ requirement: !ruby/object:Gem::Requirement
225
+ none: false
226
+ requirements:
227
+ - - ! '>='
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ none: false
234
+ requirements:
235
+ - - ! '>='
236
+ - !ruby/object:Gem::Version
237
+ version: '0'
238
+ - !ruby/object:Gem::Dependency
239
+ name: guard
240
+ requirement: !ruby/object:Gem::Requirement
241
+ none: false
242
+ requirements:
243
+ - - ! '>='
244
+ - !ruby/object:Gem::Version
245
+ version: 1.3.0
246
+ type: :development
247
+ prerelease: false
248
+ version_requirements: !ruby/object:Gem::Requirement
249
+ none: false
250
+ requirements:
251
+ - - ! '>='
252
+ - !ruby/object:Gem::Version
253
+ version: 1.3.0
254
+ - !ruby/object:Gem::Dependency
255
+ name: guard-bundler
256
+ requirement: !ruby/object:Gem::Requirement
257
+ none: false
258
+ requirements:
259
+ - - ! '>='
260
+ - !ruby/object:Gem::Version
261
+ version: '0'
262
+ type: :development
263
+ prerelease: false
264
+ version_requirements: !ruby/object:Gem::Requirement
265
+ none: false
266
+ requirements:
267
+ - - ! '>='
268
+ - !ruby/object:Gem::Version
269
+ version: '0'
270
+ - !ruby/object:Gem::Dependency
271
+ name: guard-cucumber
272
+ requirement: !ruby/object:Gem::Requirement
273
+ none: false
274
+ requirements:
275
+ - - ! '>='
276
+ - !ruby/object:Gem::Version
277
+ version: '0'
278
+ type: :development
279
+ prerelease: false
280
+ version_requirements: !ruby/object:Gem::Requirement
281
+ none: false
282
+ requirements:
283
+ - - ! '>='
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
286
+ - !ruby/object:Gem::Dependency
287
+ name: guard-rspec
288
+ requirement: !ruby/object:Gem::Requirement
289
+ none: false
290
+ requirements:
291
+ - - ! '>='
292
+ - !ruby/object:Gem::Version
293
+ version: '0'
294
+ type: :development
295
+ prerelease: false
296
+ version_requirements: !ruby/object:Gem::Requirement
297
+ none: false
298
+ requirements:
299
+ - - ! '>='
300
+ - !ruby/object:Gem::Version
301
+ version: '0'
302
+ - !ruby/object:Gem::Dependency
303
+ name: rb-fsevent
304
+ requirement: !ruby/object:Gem::Requirement
305
+ none: false
306
+ requirements:
307
+ - - ! '>='
308
+ - !ruby/object:Gem::Version
309
+ version: '0'
310
+ type: :development
311
+ prerelease: false
312
+ version_requirements: !ruby/object:Gem::Requirement
313
+ none: false
314
+ requirements:
315
+ - - ! '>='
316
+ - !ruby/object:Gem::Version
317
+ version: '0'
318
+ - !ruby/object:Gem::Dependency
319
+ name: terminal-notifier-guard
320
+ requirement: !ruby/object:Gem::Requirement
321
+ none: false
322
+ requirements:
323
+ - - ! '>='
324
+ - !ruby/object:Gem::Version
325
+ version: '0'
326
+ type: :development
327
+ prerelease: false
328
+ version_requirements: !ruby/object:Gem::Requirement
329
+ none: false
330
+ requirements:
331
+ - - ! '>='
332
+ - !ruby/object:Gem::Version
333
+ version: '0'
334
+ - !ruby/object:Gem::Dependency
335
+ name: growl
336
+ requirement: !ruby/object:Gem::Requirement
337
+ none: false
338
+ requirements:
339
+ - - ! '>='
340
+ - !ruby/object:Gem::Version
341
+ version: '0'
342
+ type: :development
343
+ prerelease: false
344
+ version_requirements: !ruby/object:Gem::Requirement
345
+ none: false
346
+ requirements:
347
+ - - ! '>='
348
+ - !ruby/object:Gem::Version
349
+ version: '0'
350
+ description: The It's All Text! Editor Daemon
351
+ email:
352
+ - docwhat@gerf.org
353
+ executables:
354
+ - iated
355
+ extensions: []
356
+ extra_rdoc_files: []
357
+ files:
358
+ - .gitignore
359
+ - Gemfile
360
+ - Guardfile
361
+ - LICENSE
362
+ - Makefile
363
+ - README.md
364
+ - Rakefile
365
+ - bin/iated
366
+ - config.ru
367
+ - extensions/chrome/background.html
368
+ - extensions/chrome/background.js
369
+ - extensions/chrome/contentscript.css
370
+ - extensions/chrome/contentscript.js
371
+ - extensions/chrome/jquery-ui.js
372
+ - extensions/chrome/jquery.js
373
+ - extensions/chrome/jquery.updater.js
374
+ - extensions/chrome/manifest.json
375
+ - extensions/chrome/yaml.js
376
+ - extensions/tests/simple.html
377
+ - features/extension_authenticates.feature
378
+ - features/extension_edits.feature
379
+ - features/step_definitions/extension_steps.rb
380
+ - features/support/env.rb
381
+ - features/support/hooks.rb
382
+ - iated.gemspec
383
+ - lib/iated.rb
384
+ - lib/iated/browser_token_db.rb
385
+ - lib/iated/edit_session.rb
386
+ - lib/iated/helpers.rb
387
+ - lib/iated/mcp.rb
388
+ - lib/iated/page_helpers.rb
389
+ - lib/iated/public/jquery-ui.js
390
+ - lib/iated/public/jquery.js
391
+ - lib/iated/public/robots.txt
392
+ - lib/iated/server.rb
393
+ - lib/iated/sys_pref.rb
394
+ - lib/iated/version.rb
395
+ - lib/iated/views/hello.haml
396
+ - lib/iated/views/preferences.haml
397
+ - lib/iated/views/reference.coffee
398
+ - lib/iated/views/reference.haml
399
+ - lib/iated/views/reference.scss
400
+ - lib/iated/views/root.haml
401
+ - spec/lib/iated/browser_token_db_spec.rb
402
+ - spec/lib/iated/edit_session_spec.rb
403
+ - spec/lib/iated/mcp_spec.rb
404
+ - spec/lib/iated/sys_pref_spec.rb
405
+ - spec/protocol/edit_spec.rb
406
+ - spec/protocol/hello_spec.rb
407
+ - spec/protocol/notfound_spec.rb
408
+ - spec/protocol/ping_spec.rb
409
+ - spec/protocol/preferences_spec.rb
410
+ - spec/spec_helper.rb
411
+ homepage: http://github.com/docwhat/iated
412
+ licenses:
413
+ - MIT
414
+ post_install_message:
415
+ rdoc_options: []
416
+ require_paths:
417
+ - lib
418
+ required_ruby_version: !ruby/object:Gem::Requirement
419
+ none: false
420
+ requirements:
421
+ - - ! '>='
422
+ - !ruby/object:Gem::Version
423
+ version: '0'
424
+ segments:
425
+ - 0
426
+ hash: -553895368460339829
427
+ required_rubygems_version: !ruby/object:Gem::Requirement
428
+ none: false
429
+ requirements:
430
+ - - ! '>='
431
+ - !ruby/object:Gem::Version
432
+ version: '0'
433
+ segments:
434
+ - 0
435
+ hash: -553895368460339829
436
+ requirements: []
437
+ rubyforge_project:
438
+ rubygems_version: 1.8.24
439
+ signing_key:
440
+ specification_version: 3
441
+ summary: This is the core IAT Editor Daemon functionality as a gem. It comes with
442
+ the command line version of `iated` that gives you all the functionality of the
443
+ GUI versions.
444
+ test_files:
445
+ - features/extension_authenticates.feature
446
+ - features/extension_edits.feature
447
+ - features/step_definitions/extension_steps.rb
448
+ - features/support/env.rb
449
+ - features/support/hooks.rb
450
+ - spec/lib/iated/browser_token_db_spec.rb
451
+ - spec/lib/iated/edit_session_spec.rb
452
+ - spec/lib/iated/mcp_spec.rb
453
+ - spec/lib/iated/sys_pref_spec.rb
454
+ - spec/protocol/edit_spec.rb
455
+ - spec/protocol/hello_spec.rb
456
+ - spec/protocol/notfound_spec.rb
457
+ - spec/protocol/ping_spec.rb
458
+ - spec/protocol/preferences_spec.rb
459
+ - spec/spec_helper.rb
460
+ has_rdoc: