ribose 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +539 -970
  4. data/.sample.pryrc +4 -0
  5. data/CHANGELOG.md +5 -0
  6. data/README.md +539 -3
  7. data/bin/console +2 -5
  8. data/lib/ribose.rb +31 -1
  9. data/lib/ribose/actions.rb +10 -0
  10. data/lib/ribose/actions/all.rb +43 -0
  11. data/lib/ribose/actions/base.rb +11 -0
  12. data/lib/ribose/actions/create.rb +44 -0
  13. data/lib/ribose/actions/delete.rb +32 -0
  14. data/lib/ribose/actions/fetch.rb +44 -0
  15. data/lib/ribose/actions/update.rb +35 -0
  16. data/lib/ribose/app_data.rb +15 -0
  17. data/lib/ribose/app_relation.rb +12 -0
  18. data/lib/ribose/base.rb +48 -0
  19. data/lib/ribose/calendar.rb +22 -0
  20. data/lib/ribose/client.rb +31 -0
  21. data/lib/ribose/config.rb +21 -0
  22. data/lib/ribose/configuration.rb +25 -0
  23. data/lib/ribose/connection.rb +39 -0
  24. data/lib/ribose/connection_invitation.rb +51 -0
  25. data/lib/ribose/conversation.rb +87 -0
  26. data/lib/ribose/error.rb +30 -0
  27. data/lib/ribose/feed.rb +11 -0
  28. data/lib/ribose/file_uploader.rb +93 -0
  29. data/lib/ribose/join_space_request.rb +41 -0
  30. data/lib/ribose/leaderboard.rb +19 -0
  31. data/lib/ribose/member.rb +34 -0
  32. data/lib/ribose/message.rb +94 -0
  33. data/lib/ribose/profile.rb +56 -0
  34. data/lib/ribose/request.rb +122 -0
  35. data/lib/ribose/resource_helper.rb +81 -0
  36. data/lib/ribose/response/raise_error.rb +15 -0
  37. data/lib/ribose/rspec.rb +19 -0
  38. data/lib/ribose/session.rb +48 -0
  39. data/lib/ribose/setting.rb +16 -0
  40. data/lib/ribose/space.rb +30 -0
  41. data/lib/ribose/space_file.rb +49 -0
  42. data/lib/ribose/space_invitation.rb +70 -0
  43. data/lib/ribose/stream.rb +15 -0
  44. data/lib/ribose/user.rb +42 -0
  45. data/lib/ribose/version.rb +1 -1
  46. data/lib/ribose/widget.rb +11 -0
  47. data/lib/ribose/wiki.rb +80 -0
  48. data/ribose.gemspec +6 -0
  49. data/spec/fixtures/app_data.json +188 -0
  50. data/spec/fixtures/app_relation.json +19 -0
  51. data/spec/fixtures/app_relations.json +89 -0
  52. data/spec/fixtures/calendar.json +12 -0
  53. data/spec/fixtures/calendars.json +34 -0
  54. data/spec/fixtures/connection_invitation.json +26 -0
  55. data/spec/fixtures/connection_invitation_accepted.json +26 -0
  56. data/spec/fixtures/connection_invitations.json +28 -0
  57. data/spec/fixtures/connection_invitations_created.json +37 -0
  58. data/spec/fixtures/connection_suggestion.json +22 -0
  59. data/spec/fixtures/connections.json +28 -0
  60. data/spec/fixtures/conversation.json +26 -0
  61. data/spec/fixtures/conversation_created.json +31 -0
  62. data/spec/fixtures/conversations.json +34 -0
  63. data/spec/fixtures/empty.json +1 -0
  64. data/spec/fixtures/feeds.json +84 -0
  65. data/spec/fixtures/file_upload_prepared.json +17 -0
  66. data/spec/fixtures/file_uploaded.json +38 -0
  67. data/spec/fixtures/general_information.json +16 -0
  68. data/spec/fixtures/join_space_request_created.json +26 -0
  69. data/spec/fixtures/join_space_request_updated.json +25 -0
  70. data/spec/fixtures/join_space_requests.json +34 -0
  71. data/spec/fixtures/leaderboard.json +21 -0
  72. data/spec/fixtures/login.html +323 -0
  73. data/spec/fixtures/members.json +20 -0
  74. data/spec/fixtures/message.json +22 -0
  75. data/spec/fixtures/messages.json +24 -0
  76. data/spec/fixtures/ping.json +3 -0
  77. data/spec/fixtures/profile.json +10 -0
  78. data/spec/fixtures/sample.png +0 -0
  79. data/spec/fixtures/setting.json +16 -0
  80. data/spec/fixtures/settings.json +18 -0
  81. data/spec/fixtures/space.json +59 -0
  82. data/spec/fixtures/space_created.json +59 -0
  83. data/spec/fixtures/space_file.json +58 -0
  84. data/spec/fixtures/space_invitation.json +32 -0
  85. data/spec/fixtures/space_invitation_updated.json +35 -0
  86. data/spec/fixtures/space_invitations.json +34 -0
  87. data/spec/fixtures/space_mass_invitations.json +46 -0
  88. data/spec/fixtures/spaces.json +61 -0
  89. data/spec/fixtures/stream.json +176 -0
  90. data/spec/fixtures/user_activated.json +6 -0
  91. data/spec/fixtures/widgets.json +50 -0
  92. data/spec/fixtures/wiki.json +79 -0
  93. data/spec/fixtures/wikis.json +197 -0
  94. data/spec/ribose/actions/create_spec.rb +40 -0
  95. data/spec/ribose/actions/delete_spec.rb +24 -0
  96. data/spec/ribose/actions/fetch_spec.rb +32 -0
  97. data/spec/ribose/actions/update_spec.rb +36 -0
  98. data/spec/ribose/app_data_spec.rb +15 -0
  99. data/spec/ribose/app_relation_spec.rb +27 -0
  100. data/spec/ribose/calendar_spec.rb +50 -0
  101. data/spec/ribose/client_spec.rb +48 -0
  102. data/spec/ribose/config_spec.rb +41 -0
  103. data/spec/ribose/connection_invitation_spec.rb +79 -0
  104. data/spec/ribose/connection_spec.rb +26 -0
  105. data/spec/ribose/conversation_spec.rb +84 -0
  106. data/spec/ribose/error_spec.rb +67 -0
  107. data/spec/ribose/feed_spec.rb +14 -0
  108. data/spec/ribose/file_uploader_spec.rb +30 -0
  109. data/spec/ribose/join_space_request_spec.rb +70 -0
  110. data/spec/ribose/leaderboard_spec.rb +13 -0
  111. data/spec/ribose/member_spec.rb +16 -0
  112. data/spec/ribose/message_spec.rb +69 -0
  113. data/spec/ribose/profile_spec.rb +40 -0
  114. data/spec/ribose/request_spec.rb +66 -0
  115. data/spec/ribose/resource_helper_spec.rb +58 -0
  116. data/spec/ribose/session_spec.rb +46 -0
  117. data/spec/ribose/setting_spec.rb +40 -0
  118. data/spec/ribose/space_file_spec.rb +41 -0
  119. data/spec/ribose/space_invitation_spec.rb +117 -0
  120. data/spec/ribose/space_spec.rb +70 -0
  121. data/spec/ribose/stream_spec.rb +14 -0
  122. data/spec/ribose/user_spec.rb +48 -0
  123. data/spec/ribose/widget_spec.rb +14 -0
  124. data/spec/ribose/wiki_spec.rb +67 -0
  125. data/spec/spec_helper.rb +11 -0
  126. data/spec/support/fake_ribose_api.rb +431 -0
  127. data/spec/support/file_upload_stub.rb +76 -0
  128. metadata +190 -3
  129. data/spec/ribose_spec.rb +0 -4
@@ -0,0 +1,17 @@
1
+ {
2
+ "url": "https://www.ribose.com/uploads",
3
+ "fields": {
4
+ "key": "uploads/123456789/${filename}",
5
+ "acl": "public-read",
6
+ "x-amz-server-side-encryption": "AES256",
7
+ "success_action_status": "200",
8
+ "x-amz-meta-original-filename": "${filename}",
9
+ "x-amz-meta-filesize": "81421",
10
+ "x-amz-meta-filetype": "image/png",
11
+ "policy": "eyJleHBpcmF0aW9uI",
12
+ "x-amz-credential": "AKIAIEM",
13
+ "x-amz-algorithm": "AWS4-HMAC-SHA256",
14
+ "x-amz-date": "20171002T100539Z",
15
+ "x-amz-signature": "0ace805ed5ae29f547dbdcb1288419e90"
16
+ }
17
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "attachment": {
3
+ "id": 11565,
4
+ "created_at": "2017-10-05T09:33:27.678+00:00",
5
+ "updated_at": "2017-10-05T09:33:27.000+00:00",
6
+ "name": "sample.png",
7
+ "description": "This is a sample file",
8
+ "version": 1,
9
+ "tag_list": [
10
+ "sample, file, samplefile"
11
+ ],
12
+ "content_size": 81421,
13
+ "content_type": "image/png",
14
+ "author": "John Doe",
15
+ "allow_update": true,
16
+ "allow_create": true,
17
+ "allow_edit": true,
18
+ "allow_delete": true,
19
+ "allow_download": true,
20
+ "current_version_id": 13231,
21
+ "versions": [
22
+ {
23
+ "version": 1,
24
+ "name": "sample.png",
25
+ "description": "hello",
26
+ "created_at": "2017-10-05T09:33:27.000+00:00",
27
+ "updated_at": "2017-10-05T09:33:27.000+00:00",
28
+ "position": 1,
29
+ "current_version_id": 13231,
30
+ "icon_path": "https://assets.ribose.com/assets/files/3edcd576b657e.png",
31
+ "content_size": 81421,
32
+ "author": "John Doe",
33
+ "content_type": "image/png",
34
+ "file_info_id": 11565
35
+ }
36
+ ]
37
+ }
38
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "created_at": "2017-02-13T22:12:10.000+07:00",
3
+ "authentication_token": "user-super-secret-token",
4
+ "last_activity": {
5
+ "id": 19108100182,
6
+ "remote_ip": "223.27.246.218",
7
+ "session_id": "AHOGOGOYO))&)LJOOUGOGG",
8
+ "created_at": "2017-10-27T16:55:45.000+07:00",
9
+ "updated_at": "2017-10-27T16:55:45.000+07:00",
10
+ "expired": false,
11
+ "browser": "Safari on Windows",
12
+ "user_id": "UserUUID01228038830338"
13
+ },
14
+ "question": null,
15
+ "concurrent": []
16
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "join_space_request": {
3
+ "id": 27766,
4
+ "email": null,
5
+ "body": null,
6
+ "created_at": "2017-09-29T09:00:59.450+00:00",
7
+ "state": 0,
8
+ "role_id": null,
9
+ "type": "Invitation::JoinSpaceRequest",
10
+ "updated_at": "2017-09-29T09:00:59.547+00:00",
11
+ "inviter": {
12
+ "id": "63116bd1-c08d-4a4d-8332-fcdaecb13e34",
13
+ "connected": true,
14
+ "name": "John Doe",
15
+ "mutual_spaces": [
16
+ "268b0407-c3a3-4aad-8693-fdba789f7f0d",
17
+ "0e8d5c16-1a31-4df9-83d9-eeaa374d5adc"
18
+ ]
19
+ },
20
+ "space": {
21
+ "id": "52e47e18-9a9d-4663-94c5-abcb18fa783a",
22
+ "name": "The CLI Space",
23
+ "members_count": 1
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "join_space_request": {
3
+ "id": 27767,
4
+ "email": null,
5
+ "body": null,
6
+ "created_at": "2017-09-29T10:00:23.000+00:00",
7
+ "state": 1,
8
+ "role_id": null,
9
+ "type": "Invitation::JoinSpaceRequest",
10
+ "updated_at": "2017-09-29T10:09:23.000+00:00",
11
+ "inviter": {
12
+ "id": "2970d105-5ccc-4a8c-b0c4-ec32d539a00a",
13
+ "connected": false,
14
+ "name": "John Doe",
15
+ "mutual_spaces": [
16
+ "268b0407-c3a3-4aad-8693-fdba789f7f0d"
17
+ ]
18
+ },
19
+ "space": {
20
+ "id": "268b0407-c3a3-4aad-8693-fdba789f7f0d",
21
+ "name": "Sample Space",
22
+ "members_count": 2
23
+ }
24
+ }
25
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "join_space_requests": [
3
+ {
4
+ "id": 27743,
5
+ "email": null,
6
+ "body": "John Doe invites you to join `The CLI Space'. Join now!",
7
+ "created_at": "2017-09-19T09:32:53.000+00:00",
8
+ "state": 0,
9
+ "role_id": 41739,
10
+ "type": "Invitation::ToSpace",
11
+ "updated_at": "2017-09-19T09:32:53.000+00:00",
12
+ "inviter": {
13
+ "id": "2970d105-5ccc-4a8c-b0c4-ec32d539a00a",
14
+ "connected": true,
15
+ "name": "Jennie Doe",
16
+ "mutual_spaces": []
17
+ },
18
+ "space": {
19
+ "id": "52e47e18-9a9d-4663-94c5-abcb18fa783a",
20
+ "name": "The CLI Space",
21
+ "members_count": 1
22
+ },
23
+ "invitee": {
24
+ "id": "63116bd1-c08d-4a4d-8332-fcdaecb13e34",
25
+ "connected": true,
26
+ "name": "Jennie Doe",
27
+ "mutual_spaces": [
28
+ "268b0407-c3a3-4aad-8693-fdba789f7f0d",
29
+ "0e8d5c16-1a31-4df9-83d9-eeaa374d5adc"
30
+ ]
31
+ }
32
+ }
33
+ ]
34
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "leaderboard": [
3
+ {
4
+ "id": "63116bd1-c08d-4a4d-8332-fcdaecb13e34",
5
+ "login": "john.doe",
6
+ "name": "John Doe",
7
+ "avatar_path": "data:image/png;base64,",
8
+ "activity_points": {
9
+ "level": 0,
10
+ "total": 0,
11
+ "last7days": 0,
12
+ "last30days": 0,
13
+ "points_till_next_level": 35,
14
+ "points_for_current_level": 34,
15
+ "rank": 1
16
+ }
17
+ }
18
+ ],
19
+ "self_rank": 1,
20
+ "overall_rank": 40
21
+ }
@@ -0,0 +1,323 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+
8
+ <title>Ribose | Welcome to Ribose</title>
9
+ </head>
10
+
11
+ <body>
12
+ <header class="body__header" role="banner">
13
+ <div class="inner">
14
+ <div class="nav--desktop">
15
+ <div class="nav--desktop__left">
16
+ <ul class="menu">
17
+ <li>
18
+ <a href="/features">
19
+ <i class="nav-icon rb-star"></i>
20
+ <strong class="nav-label">Features</strong>
21
+ </a>
22
+ </li>
23
+
24
+ <li>
25
+ <a href="/news">
26
+ <i class="nav-icon rb-comments"></i>
27
+ <strong class="nav-label">News</strong>
28
+ </a>
29
+
30
+ </li>
31
+
32
+ </ul>
33
+ </div>
34
+
35
+ <div class="nav--desktop__center">
36
+ <h6 class="logo"><a class="root" href="/home"><i class="rb-ribose"></i></a></h6>
37
+ </div>
38
+
39
+ <div class="nav--desktop__right">
40
+ <button type="button" class="btn-get-started btn btn-success btn-sm not-logged-in" data-toggle="modal" data-target="#signupModal">
41
+ Get Started
42
+ </button>
43
+ <a class="login-btn btn btn-success btn-sm not-logged-in" href="/login">Login</a>
44
+ <a class="login-btn btn btn-success btn-sm logged-in" href="/">Enter</a>
45
+ <ul class="menu">
46
+
47
+ <li>
48
+ <a href="/about">
49
+ <i class="nav-icon rb-info"></i>
50
+ <strong class="nav-label">About</strong>
51
+ </a>
52
+ </li>
53
+
54
+ <li>
55
+ <a href="http://support.ribose.com">
56
+ <i class="nav-icon rb-phone"></i>
57
+ <strong class="nav-label">Support</strong>
58
+ </a>
59
+
60
+ </li>
61
+
62
+ </ul>
63
+ </div>
64
+ </div>
65
+ </div>
66
+ </header>
67
+
68
+ <div class="flash-notice">
69
+ </div>
70
+
71
+ <div class="nav--desktop fixed">
72
+ <div class="inner">
73
+
74
+
75
+
76
+ <div class="nav--desktop__left">
77
+ <ul class="menu">
78
+
79
+ <li>
80
+ <a href="/features">
81
+ <i class="nav-icon rb-star"></i>
82
+ <strong class="nav-label">Features</strong>
83
+ </a>
84
+
85
+ </li>
86
+
87
+ <li>
88
+ <a href="/news">
89
+ <i class="nav-icon rb-comments"></i>
90
+ <strong class="nav-label">News</strong>
91
+ </a>
92
+
93
+ </li>
94
+
95
+ </ul>
96
+ </div>
97
+
98
+ <div class="nav--desktop__center">
99
+ <h6 class="logo"><a class="root" href="/home"><i class="rb-ribose"></i></a></h6>
100
+ </div>
101
+
102
+ <div class="nav--desktop__right">
103
+ <button type="button" class="btn-get-started btn btn-success btn-sm not-logged-in" data-toggle="modal" data-target="#signupModal">
104
+ Get Started
105
+ </button>
106
+ <a class="login-btn btn btn-success btn-sm not-logged-in" href="/login">Login</a>
107
+ <a class="login-btn btn btn-success btn-sm logged-in" href="/">Enter</a>
108
+ <ul class="menu">
109
+
110
+ <li>
111
+ <a href="/about">
112
+ <i class="nav-icon rb-info"></i>
113
+ <strong class="nav-label">About</strong>
114
+ </a>
115
+
116
+ </li>
117
+
118
+ <li>
119
+ <a href="http://support.ribose.com">
120
+ <i class="nav-icon rb-phone"></i>
121
+ <strong class="nav-label">Support</strong>
122
+ </a>
123
+
124
+ </li>
125
+
126
+ </ul>
127
+ </div>
128
+
129
+ </div>
130
+ </div>
131
+
132
+
133
+ <body class="page page-login">
134
+
135
+ <div class="login__table">
136
+ <div class="login__table__row">
137
+ <div class="login__table__row__cell">
138
+ <div class="login-form">
139
+ <h1>Welcome back to Ribose. <strong>Login</strong></h1>
140
+ <form accept-charset="UTF-8" action="/login" class="new_user" id="new_user" method="post">
141
+ <div style="display:none">
142
+ <input name="utf8" type="hidden" value="&#x2713;" />
143
+ <input name="authenticity_token" type="hidden" value="/FHVhQgtTP/ksLj9RvOcLR1rFSbJ387SQJBjyMsioo8u7zF8418CfmzewvPBJ5qFnvbTVOXoNbXM1u+npYGjng==" />
144
+ </div>
145
+
146
+ <div style="display:none">
147
+ <input id="invitation_code" name="invitation_code" type="hidden" />
148
+ <input id="return_to" name="return_to" type="hidden" />
149
+ </div>
150
+
151
+ <div class="form-group">
152
+ <input class="form-control" id="loginEmail" maxlength="40" name="user[username]" placeholder="Email or Username" size="40" type="text" />
153
+ </div>
154
+
155
+ <div class="form-group">
156
+ <input autocomplete="off" class="form-control" id="loginPassword" maxlength="40" name="user[password]" placeholder="Password" size="40" type="password" />
157
+ </div>
158
+
159
+
160
+ <div class="form-group">
161
+ <div class="checkbox-wrapper">
162
+ <label>
163
+ <span class="small">Remember me</span>
164
+ <input name="user[remember_me]" type="hidden" value="0" /><input id="user_remember_me" name="user[remember_me]" type="checkbox" value="1" />
165
+ </label>
166
+ </div>
167
+ <div class="login-btn-wrapper">
168
+ <button class="btn btn-success" type="submit">Log in</button>
169
+ </div>
170
+ </div>
171
+ </form>
172
+ <div class="link-wrapper small">
173
+ <a href="/password_reset/new">I forgot my password</a>
174
+ </div>
175
+
176
+ <div class="link-wrapper small">
177
+ Not a Ribose member? <a data-target="#signupModal" data-toggle="modal" href="/">Sign up now.</a>
178
+ </div>
179
+ </div>
180
+ </div>
181
+ </div>
182
+ </div>
183
+
184
+ </body>
185
+
186
+
187
+
188
+ <section class="bloc bloc--grey-dark bloc-getting-started desktop">
189
+ <div class="inner">
190
+ <p class="leadin getting-started">
191
+ Get Started
192
+ <button type="button" class="btn-get-started btn btn-success not-logged-in" data-toggle="modal" data-target="#signupModal">
193
+ Sign Up
194
+ </button>
195
+ <a class="login-btn btn btn-default logged-in" href="/">Enter</a>
196
+ </p>
197
+ </div>
198
+ </section>
199
+
200
+ <footer class="body__footer">
201
+ <div class="inner">
202
+ <div class="colophon">
203
+ <div class="logo">
204
+ <a href="/home"><i class="rb-ribose"></i></a>
205
+ </div>
206
+
207
+ <p class="copyright">Copyright © 2017 Ribose. All rights reserved.</p>
208
+ <div class="col">
209
+ <nav>
210
+ <span class="header">About</span>
211
+ <ul>
212
+ <li><a href="/features">Features</a></li>
213
+ <li><a href="/about">About Us</a></li>
214
+ <li><a href="/blog">Our Blog</a></li>
215
+ <li><a href="/commitments">Commitments</a></li>
216
+ <li><a href="/awards"><span class="translation_missing" title="translation missing: en.public.layout.common.awards">Awards</span></a></li>
217
+ <li><a href="/careers">Careers</a></li>
218
+ </ul>
219
+ </nav>
220
+ </div>
221
+ <div class="col">
222
+ <nav>
223
+ <span class="header">Support</span>
224
+ <ul>
225
+ <li><a href="http://support.ribose.com">Help Center</a></li>
226
+ <li><a href="/feedback/security">Security</a></li>
227
+ <li><a href="/feedback">Give Us Feedback</a></li>
228
+ <li><a href="/pgp">Signatures</a></li>
229
+ <li><a href="http://status.ribose.com">Status</a></li>
230
+ </ul>
231
+ </nav>
232
+ </div>
233
+ <div class="col">
234
+ <nav>
235
+ <span class="header">Press</span>
236
+ <ul>
237
+ <li><a href="/news">Press Releases</a></li>
238
+ </ul>
239
+ </nav>
240
+ </div>
241
+ <div class="col">
242
+ <nav>
243
+ <span class="header">Legal</span>
244
+ <ul>
245
+ <li><a href="/tos">Terms of Use</a></li>
246
+ <li><a href="/privacy">Privacy Notice</a></li>
247
+ <li><a href="/cookies">Use of Cookies</a></li>
248
+ </ul>
249
+ </nav>
250
+ </div>
251
+ </div>
252
+ </footer>
253
+
254
+ <section class="bloc bloc--grey-dark bloc-getting-started mobile">
255
+ <div class="inner">
256
+ <p class="getting-started">
257
+ Getting Started
258
+ <button type="button" class="btn-get-started btn btn-success not-logged-in" data-toggle="modal" data-target="#signupModal">
259
+ Sign Up
260
+ </button>
261
+ <a class="login-btn btn btn-default not-logged-in" href="/login">Login</a>
262
+ <a class="login-btn btn btn-default logged-in" href="/">Enter</a>
263
+ </p>
264
+ </div>
265
+ </section>
266
+
267
+ <div class="modal fade" id="signupModal"></div>
268
+ <div class="modal fade" id="enterEmail">
269
+ <div class="modal-dialog">
270
+ <div class="modal-content">
271
+ <div class="modal-body">
272
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
273
+ <div class="sign-up-form sign-up-form--modal">
274
+ <h2 class="cta">Get started today. <strong>Sign up</strong></h2>
275
+ <div class="signup">
276
+
277
+ <div class="error_message_area"></div>
278
+
279
+ <div class="notice"></div>
280
+
281
+ <div class="panel panel-default">
282
+ <div class="panel-body">
283
+ <form accept-charset="UTF-8" action="/signup_requests" class="signup_requests form-inline" method="post"><div style="display:none"><input name="utf8" type="hidden" value="&#x2713;" /></div>
284
+ <div class="form-group">
285
+ <label class="sr-only" for="signupEmailAddress">Enter your email address…</label>
286
+ <input
287
+ type="email"
288
+ name="user[email]"
289
+ class="form-control"
290
+ id="signupEmailAddress"
291
+ placeholder="Enter your email address…">
292
+ </div>
293
+
294
+ <button class="btn btn-success" type="submit">Sign Up</button>
295
+
296
+ </form> </div>
297
+ </div>
298
+ <p class="disclaimer">
299
+ By clicking on &#39;Sign Up&#39;, you agree to our <a href="/tos">Terms of Service</a> and <a href="/privacy">Privacy Notice</a>.
300
+ </p>
301
+ </div>
302
+ </div>
303
+ </div>
304
+ </div>
305
+ </div>
306
+ </div>
307
+
308
+ <div class="modal fade" id="checkInstructions">
309
+ <div class="modal-dialog">
310
+ <div class="modal-content">
311
+ <div class="modal-body">
312
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
313
+ <div class="sign-up-form sign-up-form--modal">
314
+ <h2 class="cta">Welcome to Ribose</h2><p>
315
+ An email has been sent to your registered email address. Follow the instructions in the email to sign up to Ribose!
316
+ </p>
317
+ </div>
318
+ </div>
319
+ </div>
320
+ </div>
321
+ </div>
322
+ </body>
323
+ </html>