mad_chatter 0.2.7 → 0.2.8
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/Gemfile.lock +5 -1
- data/lib/mad_chatter/message_history.rb +19 -0
- data/lib/mad_chatter/server.rb +4 -0
- data/lib/mad_chatter/version.rb +1 -1
- data/lib/mad_chatter.rb +1 -0
- data/mad_chatter.gemspec +4 -2
- data/spec/message_history_spec.rb +30 -0
- data/templates/web/index.html +8 -7
- data/templates/web/mad_chatter.js +27 -10
- data/templates/web/mad_chatter_config.js +1 -0
- data/templates/web/markitup/sets/markdown/style.css +0 -55
- data/templates/web/styles.css +5 -9
- metadata +49 -24
- data/templates/web/markitup/sets/markdown/set.js +0 -52
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
mad_chatter (0.2.
|
4
|
+
mad_chatter (0.2.7)
|
5
5
|
daemons (= 1.1.4)
|
6
6
|
em-websocket
|
7
7
|
eventmachine
|
@@ -23,6 +23,7 @@ GEM
|
|
23
23
|
guard-rspec (0.5.10)
|
24
24
|
guard (>= 0.8.4)
|
25
25
|
multi_json (1.0.4)
|
26
|
+
rb-fsevent (0.4.3.1)
|
26
27
|
redcarpet (2.0.1)
|
27
28
|
rspec (2.7.0)
|
28
29
|
rspec-core (~> 2.7.0)
|
@@ -32,6 +33,7 @@ GEM
|
|
32
33
|
rspec-expectations (2.7.0)
|
33
34
|
diff-lcs (~> 1.1.2)
|
34
35
|
rspec-mocks (2.7.0)
|
36
|
+
ruby-growl (3.0)
|
35
37
|
shoulda (2.11.3)
|
36
38
|
simplecov (0.5.4)
|
37
39
|
multi_json (~> 1.0.3)
|
@@ -46,6 +48,8 @@ DEPENDENCIES
|
|
46
48
|
guard
|
47
49
|
guard-rspec
|
48
50
|
mad_chatter!
|
51
|
+
rb-fsevent
|
49
52
|
rspec
|
53
|
+
ruby-growl
|
50
54
|
shoulda
|
51
55
|
simplecov
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module MadChatter
|
2
|
+
class MessageHistory
|
3
|
+
|
4
|
+
def self.add(message)
|
5
|
+
@stack ||= []
|
6
|
+
@stack << message
|
7
|
+
@stack = @stack.pop(10) if @stack.length > 10
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.all
|
11
|
+
@stack ||= []
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.clear
|
15
|
+
@stack = []
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
data/lib/mad_chatter/server.rb
CHANGED
@@ -33,6 +33,9 @@ module MadChatter
|
|
33
33
|
token = generate_token
|
34
34
|
send_message.call(MadChatter::Message.new('token', token).to_json)
|
35
35
|
@subscribers[subscriber_id] = token
|
36
|
+
MadChatter::MessageHistory.all.each do |json|
|
37
|
+
send_message.call(json)
|
38
|
+
end
|
36
39
|
subscriber_id
|
37
40
|
end
|
38
41
|
|
@@ -72,6 +75,7 @@ module MadChatter
|
|
72
75
|
|
73
76
|
def self.send_json(json)
|
74
77
|
MadChatter::Server.main_channel.push(json)
|
78
|
+
MadChatter::MessageHistory.add(json)
|
75
79
|
end
|
76
80
|
|
77
81
|
end
|
data/lib/mad_chatter/version.rb
CHANGED
data/lib/mad_chatter.rb
CHANGED
data/mad_chatter.gemspec
CHANGED
@@ -25,8 +25,10 @@ Gem::Specification.new do |s|
|
|
25
25
|
s.add_runtime_dependency "daemons", "1.1.4"
|
26
26
|
|
27
27
|
s.add_development_dependency "rspec"
|
28
|
-
s.add_development_dependency "shoulda"
|
28
|
+
s.add_development_dependency "shoulda" # do we need this?
|
29
|
+
s.add_development_dependency 'simplecov'
|
29
30
|
s.add_development_dependency 'guard'
|
30
31
|
s.add_development_dependency 'guard-rspec'
|
31
|
-
s.add_development_dependency '
|
32
|
+
s.add_development_dependency 'rb-fsevent'
|
33
|
+
s.add_development_dependency 'ruby-growl'
|
32
34
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe MadChatter::MessageHistory do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
MadChatter::MessageHistory.clear
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should only keep 10 recent messages' do
|
10
|
+
15.times do
|
11
|
+
MadChatter::MessageHistory.add MadChatter::Message.new('message', 'Here is a dummy chat message')
|
12
|
+
end
|
13
|
+
MadChatter::MessageHistory.all.length.should == 10
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should allow you to clear the history' do
|
17
|
+
MadChatter::MessageHistory.add MadChatter::Message.new('message', 'Here is a dummy chat message')
|
18
|
+
MadChatter::MessageHistory.all.length.should == 1
|
19
|
+
MadChatter::MessageHistory.clear
|
20
|
+
MadChatter::MessageHistory.all.length.should == 0
|
21
|
+
end
|
22
|
+
|
23
|
+
context '#all' do
|
24
|
+
it 'should still return an empty array if there is message chat history' do
|
25
|
+
history = MadChatter::MessageHistory.all
|
26
|
+
history.should == []
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
data/templates/web/index.html
CHANGED
@@ -2,22 +2,23 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title>Mad Chatter</title>
|
5
|
-
<link rel="stylesheet" href="styles.css">
|
6
5
|
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js'></script>
|
7
6
|
<script src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js'></script>
|
8
|
-
<script src='mad_chatter.js'></script>
|
9
|
-
<script src='mad_chatter_actions.js'></script>
|
10
7
|
|
11
|
-
<!--
|
8
|
+
<!-- markdown editor -->
|
12
9
|
<script type="text/javascript" src="markitup/jquery.markitup.js"></script>
|
13
|
-
<script type="text/javascript" src="markitup/sets/markdown/set.js"></script>
|
14
10
|
<link rel="stylesheet" type="text/css" href="markitup/skins/mad_chatter/style.css" />
|
15
11
|
<link rel="stylesheet" type="text/css" href="markitup/sets/markdown/style.css" />
|
16
12
|
|
13
|
+
<!-- Mad Chatter -->
|
14
|
+
<script src='mad_chatter.js'></script>
|
15
|
+
<script src='mad_chatter_actions.js'></script>
|
16
|
+
<script src='mad_chatter_config.js'></script>
|
17
|
+
<link rel="stylesheet" href="styles.css">
|
18
|
+
|
17
19
|
<script>
|
18
20
|
$(document).ready(function(){
|
19
|
-
MadChatter.init(
|
20
|
-
$('#keyboard textarea').markItUp(mySettings);
|
21
|
+
MadChatter.init(mad_chatter_config);
|
21
22
|
});
|
22
23
|
</script>
|
23
24
|
</head>
|
@@ -8,7 +8,7 @@ var MadChatter = {
|
|
8
8
|
MadChatter.init_websocket(ws_host);
|
9
9
|
$('#chatroom').hide();
|
10
10
|
MadChatter.wait_for_join();
|
11
|
-
MadChatter.
|
11
|
+
MadChatter.add_markdown_editor();
|
12
12
|
},
|
13
13
|
|
14
14
|
init_websocket: function(ws_host){
|
@@ -36,14 +36,23 @@ var MadChatter = {
|
|
36
36
|
});
|
37
37
|
},
|
38
38
|
|
39
|
-
|
40
|
-
var
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
39
|
+
add_markdown_editor: function(){
|
40
|
+
var config = {
|
41
|
+
previewParserPath: '',
|
42
|
+
onEnter: {keepDefault:false, afterInsert: MadChatter.submit_chat },
|
43
|
+
onShiftEnter: {keepDefault:false, openWith:'\n\n'},
|
44
|
+
markupSet: [
|
45
|
+
{name:'Bold', key:'B', openWith:'**', closeWith:'**'},
|
46
|
+
{name:'Italic', key:'I', openWith:'_', closeWith:'_'},
|
47
|
+
{separator:'---------------' },
|
48
|
+
{name:'Picture', key:'P', replaceWith:'![[![Alternative text]!]]([![Url:!:http://]!])'},
|
49
|
+
{name:'Link', key:'L', openWith:'[', closeWith:']([![Url:!:http://]!])', placeHolder:'Your text to link here...' },
|
50
|
+
{separator:'---------------'},
|
51
|
+
{name:'Quotes', openWith:'> '},
|
52
|
+
{name:'Code Block / Code', openWith:'(!(\t|!|`)!)', closeWith:'(!(`)!)'}
|
53
|
+
]
|
54
|
+
};
|
55
|
+
$('#keyboard textarea').markItUp(config);
|
47
56
|
},
|
48
57
|
|
49
58
|
join_chat: function(){
|
@@ -57,6 +66,14 @@ var MadChatter = {
|
|
57
66
|
$('#chatroom').show();
|
58
67
|
},
|
59
68
|
|
69
|
+
submit_chat: function(){
|
70
|
+
var keyboard = $("#keyboard textarea"), message = keyboard.val();
|
71
|
+
if ($.trim(message) != '') {
|
72
|
+
MadChatter.send_message(message);
|
73
|
+
keyboard.val('');
|
74
|
+
}
|
75
|
+
},
|
76
|
+
|
60
77
|
message_received: function(type, username, message){
|
61
78
|
if (type == 'error') {
|
62
79
|
console.log('Client error: ' + message)
|
@@ -101,7 +118,7 @@ var MadChatter = {
|
|
101
118
|
},
|
102
119
|
|
103
120
|
display_message: function(username, message){
|
104
|
-
$("#messages").append("<p class='message'><span class='username'>" + username + ":</span> " + message + "
|
121
|
+
$("#messages").append("<p class='message'><time>" + MadChatter.get_current_time() + "</time><span class='username'>" + username + ":</span> " + message + "</p>");
|
105
122
|
},
|
106
123
|
|
107
124
|
scroll_to_bottom_of_chat: function(){
|
@@ -0,0 +1 @@
|
|
1
|
+
var mad_chatter_config = 'ws://localhost:8100';
|
@@ -1,58 +1,3 @@
|
|
1
|
-
/* -------------------------------------------------------------------
|
2
|
-
// markItUp!
|
3
|
-
// By Jay Salvat - http://markitup.jaysalvat.com/
|
4
|
-
// ------------------------------------------------------------------*/
|
5
|
-
/*.markItUp .markItUpButton1 a {
|
6
|
-
background-image:url(images/h1.png);
|
7
|
-
}
|
8
|
-
.markItUp .markItUpButton2 a {
|
9
|
-
background-image:url(images/h2.png);
|
10
|
-
}
|
11
|
-
.markItUp .markItUpButton3 a {
|
12
|
-
background-image:url(images/h3.png);
|
13
|
-
}
|
14
|
-
.markItUp .markItUpButton4 a {
|
15
|
-
background-image:url(images/h4.png);
|
16
|
-
}
|
17
|
-
.markItUp .markItUpButton5 a {
|
18
|
-
background-image:url(images/h5.png);
|
19
|
-
}
|
20
|
-
.markItUp .markItUpButton6 a {
|
21
|
-
background-image:url(images/h6.png);
|
22
|
-
}
|
23
|
-
|
24
|
-
.markItUp .markItUpButton7 a {
|
25
|
-
background-image:url(images/bold.png);
|
26
|
-
}
|
27
|
-
.markItUp .markItUpButton8 a {
|
28
|
-
background-image:url(images/italic.png);
|
29
|
-
}
|
30
|
-
|
31
|
-
.markItUp .markItUpButton9 a {
|
32
|
-
background-image:url(images/list-bullet.png);
|
33
|
-
}
|
34
|
-
.markItUp .markItUpButton10 a {
|
35
|
-
background-image:url(images/list-numeric.png);
|
36
|
-
}
|
37
|
-
|
38
|
-
.markItUp .markItUpButton11 a {
|
39
|
-
background-image:url(images/picture.png);
|
40
|
-
}
|
41
|
-
.markItUp .markItUpButton12 a {
|
42
|
-
background-image:url(images/link.png);
|
43
|
-
}
|
44
|
-
|
45
|
-
.markItUp .markItUpButton13 a {
|
46
|
-
background-image:url(images/quotes.png);
|
47
|
-
}
|
48
|
-
.markItUp .markItUpButton14 a {
|
49
|
-
background-image:url(images/code.png);
|
50
|
-
}
|
51
|
-
|
52
|
-
.markItUp .preview a {
|
53
|
-
background-image:url(images/preview.png);
|
54
|
-
}*/
|
55
|
-
|
56
1
|
.markItUp .markItUpButton1 a { background-image:url(images/bold.png); }
|
57
2
|
.markItUp .markItUpButton2 a { background-image:url(images/italic.png); }
|
58
3
|
.markItUp .markItUpButton3 a { background-image:url(images/picture.png); }
|
data/templates/web/styles.css
CHANGED
@@ -48,9 +48,8 @@ table {
|
|
48
48
|
border-spacing: 0;
|
49
49
|
}
|
50
50
|
|
51
|
-
|
52
|
-
|
53
|
-
*/
|
51
|
+
|
52
|
+
/***************** Mad Chatter Styles *****************/
|
54
53
|
|
55
54
|
#login_screen header {
|
56
55
|
padding: 150px 0 20px;
|
@@ -131,7 +130,6 @@ table {
|
|
131
130
|
bottom: 0;
|
132
131
|
left: 220px;
|
133
132
|
width: 100%;
|
134
|
-
/* height:50px;*/
|
135
133
|
background-color: #eee;
|
136
134
|
padding: 0 10px;
|
137
135
|
}
|
@@ -155,10 +153,8 @@ table {
|
|
155
153
|
overflow:auto;
|
156
154
|
}
|
157
155
|
|
158
|
-
|
159
|
-
.message pre, .message code {
|
156
|
+
pre, code {
|
160
157
|
font: 12px 'Bitstream Vera Sans Mono','Courier',monospace;
|
161
|
-
padding:
|
162
|
-
background-color: #EEE!important;
|
163
|
-
border: 1px solid #DDD;
|
158
|
+
padding: 2px !important;
|
159
|
+
background-color: #EEE !important;
|
164
160
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mad_chatter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
12
|
+
date: 2012-01-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
16
|
-
requirement: &
|
16
|
+
requirement: &2168902960 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2168902960
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: eventmachine
|
27
|
-
requirement: &
|
27
|
+
requirement: &2168902340 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2168902340
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: em-websocket
|
38
|
-
requirement: &
|
38
|
+
requirement: &2168901700 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2168901700
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: redcarpet
|
49
|
-
requirement: &
|
49
|
+
requirement: &2168901060 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2168901060
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: daemons
|
60
|
-
requirement: &
|
60
|
+
requirement: &2168900260 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - =
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 1.1.4
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2168900260
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
|
-
requirement: &
|
71
|
+
requirement: &2168899840 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2168899840
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: shoulda
|
82
|
-
requirement: &
|
82
|
+
requirement: &2168899380 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,21 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *2168899380
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: simplecov
|
93
|
+
requirement: &2168898960 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
type: :development
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: *2168898960
|
91
102
|
- !ruby/object:Gem::Dependency
|
92
103
|
name: guard
|
93
|
-
requirement: &
|
104
|
+
requirement: &2168898540 !ruby/object:Gem::Requirement
|
94
105
|
none: false
|
95
106
|
requirements:
|
96
107
|
- - ! '>='
|
@@ -98,10 +109,10 @@ dependencies:
|
|
98
109
|
version: '0'
|
99
110
|
type: :development
|
100
111
|
prerelease: false
|
101
|
-
version_requirements: *
|
112
|
+
version_requirements: *2168898540
|
102
113
|
- !ruby/object:Gem::Dependency
|
103
114
|
name: guard-rspec
|
104
|
-
requirement: &
|
115
|
+
requirement: &2168898100 !ruby/object:Gem::Requirement
|
105
116
|
none: false
|
106
117
|
requirements:
|
107
118
|
- - ! '>='
|
@@ -109,10 +120,21 @@ dependencies:
|
|
109
120
|
version: '0'
|
110
121
|
type: :development
|
111
122
|
prerelease: false
|
112
|
-
version_requirements: *
|
123
|
+
version_requirements: *2168898100
|
113
124
|
- !ruby/object:Gem::Dependency
|
114
|
-
name:
|
115
|
-
requirement: &
|
125
|
+
name: rb-fsevent
|
126
|
+
requirement: &2168897680 !ruby/object:Gem::Requirement
|
127
|
+
none: false
|
128
|
+
requirements:
|
129
|
+
- - ! '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: *2168897680
|
135
|
+
- !ruby/object:Gem::Dependency
|
136
|
+
name: ruby-growl
|
137
|
+
requirement: &2168897260 !ruby/object:Gem::Requirement
|
116
138
|
none: false
|
117
139
|
requirements:
|
118
140
|
- - ! '>='
|
@@ -120,7 +142,7 @@ dependencies:
|
|
120
142
|
version: '0'
|
121
143
|
type: :development
|
122
144
|
prerelease: false
|
123
|
-
version_requirements: *
|
145
|
+
version_requirements: *2168897260
|
124
146
|
description: Mad Chatter is a fun, easy to customize chat server, utilizing HTML 5
|
125
147
|
Web Sockets
|
126
148
|
email:
|
@@ -148,6 +170,7 @@ files:
|
|
148
170
|
- lib/mad_chatter/config.rb
|
149
171
|
- lib/mad_chatter/daemon.rb
|
150
172
|
- lib/mad_chatter/message.rb
|
173
|
+
- lib/mad_chatter/message_history.rb
|
151
174
|
- lib/mad_chatter/server.rb
|
152
175
|
- lib/mad_chatter/servers/em_websocket.rb
|
153
176
|
- lib/mad_chatter/servers/juggernaut.rb
|
@@ -156,6 +179,7 @@ files:
|
|
156
179
|
- lib/mad_chatter/version.rb
|
157
180
|
- lib/mad_chatter/web_server.rb
|
158
181
|
- mad_chatter.gemspec
|
182
|
+
- spec/message_history_spec.rb
|
159
183
|
- spec/message_spec.rb
|
160
184
|
- spec/spec_helper.rb
|
161
185
|
- templates/config.yml
|
@@ -164,6 +188,7 @@ files:
|
|
164
188
|
- templates/web/index.html
|
165
189
|
- templates/web/mad_chatter.js
|
166
190
|
- templates/web/mad_chatter_actions.js
|
191
|
+
- templates/web/mad_chatter_config.js
|
167
192
|
- templates/web/markitup/jquery.markitup.js
|
168
193
|
- templates/web/markitup/sets/markdown/images/bold.png
|
169
194
|
- templates/web/markitup/sets/markdown/images/code.png
|
@@ -181,7 +206,6 @@ files:
|
|
181
206
|
- templates/web/markitup/sets/markdown/images/preview.png
|
182
207
|
- templates/web/markitup/sets/markdown/images/quotes.png
|
183
208
|
- templates/web/markitup/sets/markdown/readme.txt
|
184
|
-
- templates/web/markitup/sets/markdown/set.js
|
185
209
|
- templates/web/markitup/sets/markdown/style.css
|
186
210
|
- templates/web/markitup/skins/mad_chatter/images/handle.png
|
187
211
|
- templates/web/markitup/skins/mad_chatter/images/menu.png
|
@@ -214,5 +238,6 @@ specification_version: 3
|
|
214
238
|
summary: Mad Chatter is a fun, easy to customize chat server, utilizing HTML 5 Web
|
215
239
|
Sockets
|
216
240
|
test_files:
|
241
|
+
- spec/message_history_spec.rb
|
217
242
|
- spec/message_spec.rb
|
218
243
|
- spec/spec_helper.rb
|
@@ -1,52 +0,0 @@
|
|
1
|
-
// -------------------------------------------------------------------
|
2
|
-
// markItUp!
|
3
|
-
// -------------------------------------------------------------------
|
4
|
-
// Copyright (C) 2008 Jay Salvat
|
5
|
-
// http://markitup.jaysalvat.com/
|
6
|
-
// -------------------------------------------------------------------
|
7
|
-
// MarkDown tags example
|
8
|
-
// http://en.wikipedia.org/wiki/Markdown
|
9
|
-
// http://daringfireball.net/projects/markdown/
|
10
|
-
// -------------------------------------------------------------------
|
11
|
-
// Feel free to add more tags
|
12
|
-
// -------------------------------------------------------------------
|
13
|
-
mySettings = {
|
14
|
-
previewParserPath: '',
|
15
|
-
onShiftEnter: {keepDefault:false, openWith:'\n\n'},
|
16
|
-
markupSet: [
|
17
|
-
// {name:'First Level Heading', key:'1', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '=') } },
|
18
|
-
// {name:'Second Level Heading', key:'2', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '-') } },
|
19
|
-
// {name:'Heading 3', key:'3', openWith:'### ', placeHolder:'Your title here...' },
|
20
|
-
// {name:'Heading 4', key:'4', openWith:'#### ', placeHolder:'Your title here...' },
|
21
|
-
// {name:'Heading 5', key:'5', openWith:'##### ', placeHolder:'Your title here...' },
|
22
|
-
// {name:'Heading 6', key:'6', openWith:'###### ', placeHolder:'Your title here...' },
|
23
|
-
// {separator:'---------------' },
|
24
|
-
{name:'Bold', key:'B', openWith:'**', closeWith:'**'},
|
25
|
-
{name:'Italic', key:'I', openWith:'_', closeWith:'_'},
|
26
|
-
{separator:'---------------' },
|
27
|
-
// {name:'Bulleted List', openWith:'- ' },
|
28
|
-
// {name:'Numeric List', openWith:function(markItUp) {
|
29
|
-
// return markItUp.line+'. ';
|
30
|
-
// }},
|
31
|
-
// {separator:'---------------' },
|
32
|
-
{name:'Picture', key:'P', replaceWith:'![[![Alternative text]!]]([![Url:!:http://]!] "[![Title]!]")'},
|
33
|
-
{name:'Link', key:'L', openWith:'[', closeWith:']([![Url:!:http://]!] "[![Title]!]")', placeHolder:'Your text to link here...' },
|
34
|
-
{separator:'---------------'},
|
35
|
-
{name:'Quotes', openWith:'> '},
|
36
|
-
{name:'Code Block / Code', openWith:'(!(\t|!|`)!)', closeWith:'(!(`)!)'}
|
37
|
-
// {separator:'---------------'},
|
38
|
-
// {name:'Preview', call:'preview', className:"preview"}
|
39
|
-
]
|
40
|
-
}
|
41
|
-
|
42
|
-
// mIu nameSpace to avoid conflict.
|
43
|
-
miu = {
|
44
|
-
markdownTitle: function(markItUp, char) {
|
45
|
-
heading = '';
|
46
|
-
n = $.trim(markItUp.selection||markItUp.placeHolder).length;
|
47
|
-
for(i = 0; i < n; i++) {
|
48
|
-
heading += char;
|
49
|
-
}
|
50
|
-
return '\n'+heading;
|
51
|
-
}
|
52
|
-
}
|