Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
rendezvous
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
VeNtura
rendezvous
Commits
7b54d117
Commit
7b54d117
authored
Nov 25, 2014
by
tady
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
.
parent
164dd6e1
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
689 additions
and
142 deletions
+689
-142
Gemfile.lock
+37
-37
app/controllers/concerns/rv/mail-template2.html
+547
-0
app/controllers/concerns/rv/mailer.rb
+5
-5
app/controllers/posts_controller.rb
+1
-1
app/models/user.rb
+4
-5
config/initializers/omniauth.rb
+5
-4
db/schema.rb
+90
-90
No files found.
Gemfile.lock
View file @
7b54d117
GIT
GIT
remote: git://github.com/amatsuda/kaminari.git
remote: git://github.com/amatsuda/kaminari.git
revision:
b206d89922378dcf6f1f7a6247ce1d5f6f1534ad
revision:
8247c79943cf98ce521b79403dd829317d19fa7f
specs:
specs:
kaminari (1.0.0.alpha)
kaminari (1.0.0.alpha)
actionpack (>= 3.0.0)
actionpack (>= 3.0.0)
...
@@ -17,38 +17,38 @@ GIT
...
@@ -17,38 +17,38 @@ GIT
GIT
GIT
remote: git://github.com/rails/sass-rails.git
remote: git://github.com/rails/sass-rails.git
revision:
80e15690b66131edc1b8ccb4ab7dbbd5bf56704
2
revision:
404cd9ba2bf2618fe14b1ba2f27c861ba48980f
2
specs:
specs:
sass-rails (5.0.0.beta1)
sass-rails (5.0.0.beta1)
railties (>= 4.0.0, < 5.0)
railties (>= 4.0.0, < 5.0)
sass (~> 3.2, >= 3.2.2)
sass (~> 3.2, >= 3.2.2)
sprockets (~> 2.
12
)
sprockets (~> 2.
8, < 3.0
)
sprockets-rails (>= 2.0, < 4.0)
sprockets-rails (>= 2.0, < 4.0)
GEM
GEM
remote: https://rubygems.org/
remote: https://rubygems.org/
specs:
specs:
actionmailer (4.1.
7
)
actionmailer (4.1.
8
)
actionpack (= 4.1.
7
)
actionpack (= 4.1.
8
)
actionview (= 4.1.
7
)
actionview (= 4.1.
8
)
mail (~> 2.5, >= 2.5.4)
mail (~> 2.5, >= 2.5.4)
actionpack (4.1.
7
)
actionpack (4.1.
8
)
actionview (= 4.1.
7
)
actionview (= 4.1.
8
)
activesupport (= 4.1.
7
)
activesupport (= 4.1.
8
)
rack (~> 1.5.2)
rack (~> 1.5.2)
rack-test (~> 0.6.2)
rack-test (~> 0.6.2)
actionview (4.1.
7
)
actionview (4.1.
8
)
activesupport (= 4.1.
7
)
activesupport (= 4.1.
8
)
builder (~> 3.1)
builder (~> 3.1)
erubis (~> 2.7.0)
erubis (~> 2.7.0)
activemodel (4.1.
7
)
activemodel (4.1.
8
)
activesupport (= 4.1.
7
)
activesupport (= 4.1.
8
)
builder (~> 3.1)
builder (~> 3.1)
activerecord (4.1.
7
)
activerecord (4.1.
8
)
activemodel (= 4.1.
7
)
activemodel (= 4.1.
8
)
activesupport (= 4.1.
7
)
activesupport (= 4.1.
8
)
arel (~> 5.0.0)
arel (~> 5.0.0)
activesupport (4.1.
7
)
activesupport (4.1.
8
)
i18n (~> 0.6, >= 0.6.9)
i18n (~> 0.6, >= 0.6.9)
json (~> 1.7, >= 1.7.7)
json (~> 1.7, >= 1.7.7)
minitest (~> 5.1)
minitest (~> 5.1)
...
@@ -67,7 +67,7 @@ GEM
...
@@ -67,7 +67,7 @@ GEM
aws-sdk (1.39.0)
aws-sdk (1.39.0)
json (~> 1.4)
json (~> 1.4)
nokogiri (>= 1.4.4)
nokogiri (>= 1.4.4)
backports (3.6.
3
)
backports (3.6.
4
)
bcrypt (3.1.9)
bcrypt (3.1.9)
better_errors (2.0.0)
better_errors (2.0.0)
coderay (>= 1.0.0)
coderay (>= 1.0.0)
...
@@ -207,7 +207,7 @@ GEM
...
@@ -207,7 +207,7 @@ GEM
i18n_generators (1.2.1)
i18n_generators (1.2.1)
mechanize
mechanize
rails (>= 3.0.0)
rails (>= 3.0.0)
jbuilder (2.2.
4
)
jbuilder (2.2.
5
)
activesupport (>= 3.0.0, < 5)
activesupport (>= 3.0.0, < 5)
multi_json (~> 1.2)
multi_json (~> 1.2)
jquery-rails (3.1.2)
jquery-rails (3.1.2)
...
@@ -220,7 +220,7 @@ GEM
...
@@ -220,7 +220,7 @@ GEM
launchy (2.4.3)
launchy (2.4.3)
addressable (~> 2.3)
addressable (~> 2.3)
libv8 (3.16.14.7)
libv8 (3.16.14.7)
listen (2.
7.1
1)
listen (2.
8.
1)
celluloid (>= 0.15.2)
celluloid (>= 0.15.2)
rb-fsevent (>= 0.9.3)
rb-fsevent (>= 0.9.3)
rb-inotify (>= 0.9)
rb-inotify (>= 0.9)
...
@@ -241,11 +241,11 @@ GEM
...
@@ -241,11 +241,11 @@ GEM
method_source (0.8.2)
method_source (0.8.2)
mime-types (2.4.3)
mime-types (2.4.3)
mini_portile (0.6.1)
mini_portile (0.6.1)
minitest (5.4.
2
)
minitest (5.4.
3
)
multi_json (1.10.1)
multi_json (1.10.1)
multi_xml (0.5.5)
multi_xml (0.5.5)
multipart-post (2.0.0)
multipart-post (2.0.0)
mysql2 (0.3.1
6
)
mysql2 (0.3.1
7
)
net-http-digest_auth (1.4)
net-http-digest_auth (1.4)
net-http-persistent (2.9.4)
net-http-persistent (2.9.4)
net-http-pipeline (1.0.1)
net-http-pipeline (1.0.1)
...
@@ -253,7 +253,7 @@ GEM
...
@@ -253,7 +253,7 @@ GEM
net-ssh (>= 2.6.5)
net-ssh (>= 2.6.5)
net-ssh (2.9.1)
net-ssh (2.9.1)
netrc (0.8.0)
netrc (0.8.0)
newrelic_rpm (3.9.
6.257
)
newrelic_rpm (3.9.
7.266
)
nokogiri (1.6.4.1)
nokogiri (1.6.4.1)
mini_portile (~> 0.6.0)
mini_portile (~> 0.6.0)
ntlm-http (0.1.1)
ntlm-http (0.1.1)
...
@@ -279,7 +279,7 @@ GEM
...
@@ -279,7 +279,7 @@ GEM
paper_trail (3.0.6)
paper_trail (3.0.6)
activerecord (>= 3.0, < 5.0)
activerecord (>= 3.0, < 5.0)
activesupport (>= 3.0, < 5.0)
activesupport (>= 3.0, < 5.0)
parser (2.2.0.pre.
7
)
parser (2.2.0.pre.
8
)
ast (>= 1.1, < 3.0)
ast (>= 1.1, < 3.0)
slop (~> 3.4, >= 3.4.5)
slop (~> 3.4, >= 3.4.5)
poltergeist (1.5.1)
poltergeist (1.5.1)
...
@@ -309,24 +309,24 @@ GEM
...
@@ -309,24 +309,24 @@ GEM
rack (>= 1.1.3)
rack (>= 1.1.3)
rack-test (0.6.2)
rack-test (0.6.2)
rack (>= 1.0)
rack (>= 1.0)
rails (4.1.
7
)
rails (4.1.
8
)
actionmailer (= 4.1.
7
)
actionmailer (= 4.1.
8
)
actionpack (= 4.1.
7
)
actionpack (= 4.1.
8
)
actionview (= 4.1.
7
)
actionview (= 4.1.
8
)
activemodel (= 4.1.
7
)
activemodel (= 4.1.
8
)
activerecord (= 4.1.
7
)
activerecord (= 4.1.
8
)
activesupport (= 4.1.
7
)
activesupport (= 4.1.
8
)
bundler (>= 1.3.0, < 2.0)
bundler (>= 1.3.0, < 2.0)
railties (= 4.1.
7
)
railties (= 4.1.
8
)
sprockets-rails (~> 2.0)
sprockets-rails (~> 2.0)
rails_12factor (0.0.3)
rails_12factor (0.0.3)
rails_serve_static_assets
rails_serve_static_assets
rails_stdout_logging
rails_stdout_logging
rails_serve_static_assets (0.0.2)
rails_serve_static_assets (0.0.2)
rails_stdout_logging (0.0.3)
rails_stdout_logging (0.0.3)
railties (4.1.
7
)
railties (4.1.
8
)
actionpack (= 4.1.
7
)
actionpack (= 4.1.
8
)
activesupport (= 4.1.
7
)
activesupport (= 4.1.
8
)
rake (>= 0.8.7)
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
thor (>= 0.18.1, < 2.0)
rainbow (2.0.0)
rainbow (2.0.0)
...
@@ -372,7 +372,7 @@ GEM
...
@@ -372,7 +372,7 @@ GEM
rainbow (>= 1.99.1, < 3.0)
rainbow (>= 1.99.1, < 3.0)
ruby-progressbar (~> 1.4)
ruby-progressbar (~> 1.4)
ruby-progressbar (1.7.0)
ruby-progressbar (1.7.0)
sass (3.4.
7
)
sass (3.4.
8
)
sdoc (0.4.1)
sdoc (0.4.1)
json (~> 1.7, >= 1.7.7)
json (~> 1.7, >= 1.7.7)
rdoc (~> 4.0)
rdoc (~> 4.0)
...
@@ -391,7 +391,7 @@ GEM
...
@@ -391,7 +391,7 @@ GEM
multi_json (~> 1.0)
multi_json (~> 1.0)
rack (~> 1.0)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
tilt (~> 1.1, != 1.3.0)
sprockets-rails (2.2.
0
)
sprockets-rails (2.2.
1
)
actionpack (>= 3.0)
actionpack (>= 3.0)
activesupport (>= 3.0)
activesupport (>= 3.0)
sprockets (>= 2.8, < 4.0)
sprockets (>= 2.8, < 4.0)
...
...
app/controllers/concerns/rv/mail-template2.html
0 → 100644
View file @
7b54d117
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns=
"http://www.w3.org/1999/xhtml"
>
<head>
<!-- If you delete this meta tag, Half Life 3 will never be released. -->
<meta
name=
"viewport"
content=
"width=device-width"
/>
<meta
http-equiv=
"Content-Type"
content=
"text/html; charset=UTF-8"
/>
<title>
Rendezvous
</title>
<style
type=
"text/css"
>
/* -------------------------------------
GLOBAL
------------------------------------- */
*
{
margin
:
0
;
padding
:
0
;
}
*
{
font-family
:
"Helvetica Neue"
,
"Helvetica"
,
Helvetica
,
Arial
,
sans-serif
;
}
img
{
max-width
:
100%
;
}
.collapse
{
margin
:
0
;
padding
:
0
;
}
body
{
-webkit-font-smoothing
:
antialiased
;
-webkit-text-size-adjust
:
none
;
width
:
100%
!important
;
height
:
100%
;
}
/* -------------------------------------
ELEMENTS
------------------------------------- */
a
{
color
:
#2BA6CB
;}
.btn
{
text-decoration
:
none
;
color
:
#FFF
;
background-color
:
#666
;
padding
:
10px
16px
;
font-weight
:
bold
;
margin-right
:
10px
;
text-align
:
center
;
cursor
:
pointer
;
display
:
inline-block
;
}
p
.callout
{
padding
:
15px
;
background-color
:
#ECF8FF
;
margin-bottom
:
15px
;
}
.callout
a
{
font-weight
:
bold
;
color
:
#2BA6CB
;
}
table
.social
{
/* padding:15px; */
background-color
:
#ebebeb
;
}
.social
.soc-btn
{
padding
:
3px
7px
;
font-size
:
12px
;
margin-bottom
:
10px
;
text-decoration
:
none
;
color
:
#FFF
;
font-weight
:
bold
;
display
:
block
;
text-align
:
center
;
}
a
.fb
{
background-color
:
#3B5998
!important
;
}
a
.tw
{
background-color
:
#1daced
!important
;
}
a
.gp
{
background-color
:
#DB4A39
!important
;
}
a
.ms
{
background-color
:
#000
!important
;
}
.sidebar
.soc-btn
{
display
:
block
;
width
:
100%
;
}
/* -------------------------------------
HEADER
------------------------------------- */
table
.head-wrap
{
width
:
100%
;}
.header.container
table
td
.logo
{
padding
:
15px
;
}
.header.container
table
td
.label
{
padding
:
15px
;
padding-left
:
0px
;}
/* -------------------------------------
BODY
------------------------------------- */
table
.body-wrap
{
width
:
100%
;}
/* -------------------------------------
FOOTER
------------------------------------- */
table
.footer-wrap
{
width
:
100%
;
clear
:
both
!important
;
}
.footer-wrap
.container
td
.content
p
{
border-top
:
1px
solid
rgb
(
215
,
215
,
215
);
padding-top
:
15px
;}
.footer-wrap
.container
td
.content
p
{
font-size
:
10px
;
font-weight
:
bold
;
}
/* -------------------------------------
TYPOGRAPHY
------------------------------------- */
h1
,
h2
,
h3
,
h4
,
h5
,
h6
{
font-family
:
"HelveticaNeue-Light"
,
"Helvetica Neue Light"
,
"Helvetica Neue"
,
Helvetica
,
Arial
,
"Lucida Grande"
,
sans-serif
;
line-height
:
1.1
;
margin-bottom
:
15px
;
color
:
#000
;
}
h1
small
,
h2
small
,
h3
small
,
h4
small
,
h5
small
,
h6
small
{
font-size
:
60%
;
color
:
#6f6f6f
;
line-height
:
0
;
text-transform
:
none
;
}
h1
{
font-weight
:
200
;
font-size
:
44px
;}
h2
{
font-weight
:
200
;
font-size
:
37px
;}
h3
{
font-weight
:
500
;
font-size
:
27px
;}
h4
{
font-weight
:
500
;
font-size
:
23px
;}
h5
{
font-weight
:
900
;
font-size
:
17px
;}
h6
{
font-weight
:
900
;
font-size
:
14px
;
text-transform
:
uppercase
;
color
:
#444
;}
.collapse
{
margin
:
0
!important
;}
p
,
ul
{
margin-bottom
:
10px
;
font-weight
:
normal
;
font-size
:
14px
;
line-height
:
1.6
;
}
p
.lead
{
font-size
:
17px
;
}
p
.last
{
margin-bottom
:
0px
;}
ul
li
{
margin-left
:
5px
;
list-style-position
:
inside
;
}
/* -------------------------------------
SIDEBAR
------------------------------------- */
ul
.sidebar
{
background
:
#ebebeb
;
display
:
block
;
list-style-type
:
none
;
}
ul
.sidebar
li
{
display
:
block
;
margin
:
0
;}
ul
.sidebar
li
a
{
text-decoration
:
none
;
color
:
#666
;
padding
:
10px
16px
;
/* font-weight:bold; */
margin-right
:
10px
;
/* text-align:center; */
cursor
:
pointer
;
border-bottom
:
1px
solid
#777777
;
border-top
:
1px
solid
#FFFFFF
;
display
:
block
;
margin
:
0
;
}
ul
.sidebar
li
a
.last
{
border-bottom-width
:
0px
;}
ul
.sidebar
li
a
h1
,
ul
.sidebar
li
a
h2
,
ul
.sidebar
li
a
h3
,
ul
.sidebar
li
a
h4
,
ul
.sidebar
li
a
h5
,
ul
.sidebar
li
a
h6
,
ul
.sidebar
li
a
p
{
margin-bottom
:
0
!important
;}
/* ---------------------------------------------------
RESPONSIVENESS
Nuke it from orbit. It's the only way to be sure.
------------------------------------------------------ */
/* Set a max-width, and make it display as block so it will automatically stretch to that width, but will also shrink down on a phone or something */
.container
{
display
:
block
!important
;
max-width
:
600px
!important
;
margin
:
0
auto
!important
;
/* makes it centered */
clear
:
both
!important
;
}
/* This should also be a block element, so that it will fill 100% of the .container */
.content
{
padding
:
15px
;
max-width
:
600px
;
margin
:
0
auto
;
display
:
block
;
}
/* Let's make sure tables in the content area are 100% wide */
.content
table
{
width
:
100%
;
}
/* Odds and ends */
.column
{
width
:
300px
;
float
:
left
;
}
.column
tr
td
{
padding
:
15px
;
}
.column-wrap
{
padding
:
0
!important
;
margin
:
0
auto
;
max-width
:
600px
!important
;
}
.column
table
{
width
:
100%
;}
.social
.column
{
width
:
280px
;
min-width
:
279px
;
float
:
left
;
}
/* Be sure to place a .clear element after each set of columns, just to be safe */
.clear
{
display
:
block
;
clear
:
both
;
}
/* -------------------------------------------
PHONE
For clients that support media queries.
Nothing fancy.
-------------------------------------------- */
@media
only
screen
and
(
max-width
:
600px
)
{
a
[
class
=
"btn"
]
{
display
:
block
!important
;
margin-bottom
:
10px
!important
;
background-image
:
none
!important
;
margin-right
:
0
!important
;}
div
[
class
=
"column"
]
{
width
:
auto
!important
;
float
:
none
!important
;}
table
.social
div
[
class
=
"column"
]
{
width
:
auto
!important
;
}
}
/* custom */
.github
a
{
color
:
#4183C4
;
}
.github
a
.absent
{
color
:
#cc0000
;
}
.github
a
.anchor
{
display
:
block
;
padding-left
:
30px
;
margin-left
:
-30px
;
cursor
:
pointer
;
position
:
absolute
;
top
:
0
;
left
:
0
;
bottom
:
0
;
}
.github
h1
,
.github
h2
,
.github
h3
,
.github
h4
,
.github
h5
,
.github
h6
{
margin
:
20px
0
10px
;
padding
:
0
;
font-weight
:
bold
;
-webkit-font-smoothing
:
antialiased
;
cursor
:
text
;
position
:
relative
;
}
.github
h1
:hover
a
.anchor
,
.github
h2
:hover
a
.anchor
,
.github
h3
:hover
a
.anchor
,
.github
h4
:hover
a
.anchor
,
.github
h5
:hover
a
.anchor
,
.github
h6
:hover
a
.anchor
{
background
:
url("../../images/modules/styleguide/para.png")
no-repeat
10px
center
;
text-decoration
:
none
;
}
.github
h1
tt
,
.github
h1
code
{
font-size
:
inherit
;
}
.github
h2
tt
,
.github
h2
code
{
font-size
:
inherit
;
}
.github
h3
tt
,
.github
h3
code
{
font-size
:
inherit
;
}
.github
h4
tt
,
.github
h4
code
{
font-size
:
inherit
;
}
.github
h5
tt
,
.github
h5
code
{
font-size
:
inherit
;
}
.github
h6
tt
,
.github
h6
code
{
font-size
:
inherit
;
}
.github
h1
{
font-size
:
28px
;
color
:
black
;
}
.github
h2
{
font-size
:
24px
;
border-bottom
:
1px
solid
#cccccc
;
color
:
black
;
}
.github
h3
{
font-size
:
18px
;
}
.github
h4
{
font-size
:
16px
;
}
.github
h5
{
font-size
:
14px
;
}
.github
h6
{
color
:
#777777
;
font-size
:
14px
;
}
.github
p
,
.github
blockquote
,
.github
ul
,
.github
ol
,
.github
dl
,
.github
li
,
.github
table
,
.github
pre
{
margin
:
15px
0
;
}
.github
hr
{
background
:
transparent
url("../../images/modules/pulls/dirty-shade.png")
repeat-x
0
0
;
border
:
0
none
;
color
:
#cccccc
;
height
:
4px
;
padding
:
0
;
}
.github
body
>
h2
:first-child
{
margin-top
:
0
;
padding-top
:
0
;
}
.github
body
>
h1
:first-child
{
margin-top
:
0
;
padding-top
:
0
;
}
.github
body
>
h1
:first-child
+
h2
{
margin-top
:
0
;
padding-top
:
0
;
}
.github
body
>
h3
:first-child
,
.github
body
>
h4
:first-child
,
.github
body
>
h5
:first-child
,
.github
body
>
h6
:first-child
{
margin-top
:
0
;
padding-top
:
0
;
}
.github
a
:first-child
h1
,
.github
a
:first-child
h2
,
.github
a
:first-child
h3
,
.github
a
:first-child
h4
,
.github
a
:first-child
h5
,
.github
a
:first-child
h6
{
margin-top
:
0
;
padding-top
:
0
;
}
.github
h1
p
,
.github
h2
p
,
.github
h3
p
,
.github
h4
p
,
.github
h5
p
,
.github
h6
p
{
margin-top
:
0
;
}
.github
li
p
.first
{
display
:
inline-block
;
}
.github
ul
,
.github
ol
{
padding-left
:
30px
;
}
.github
ul
:first-child
,
.github
ol
:first-child
{
margin-top
:
0
;
}
.github
ul
:last-child
,
.github
ol
:last-child
{
margin-bottom
:
0
;
}
.github
dl
{
padding
:
0
;
}
.github
dl
dt
{
font-size
:
14px
;
font-weight
:
bold
;
font-style
:
italic
;
padding
:
0
;
margin
:
15px
0
5px
;
}
.github
dl
dt
:first-child
{
padding
:
0
;
}
.github
dl
dt
>
:first-child
{
margin-top
:
0
;
}
.github
dl
dt
>
:last-child
{
margin-bottom
:
0
;
}
.github
dl
dd
{
margin
:
0
0
15px
;
padding
:
0
15px
;
}
.github
dl
dd
>
:first-child
{
margin-top
:
0
;
}
.github
dl
dd
>
:last-child
{
margin-bottom
:
0
;
}
.github
blockquote
{
border-left
:
4px
solid
#dddddd
;
padding
:
0
15px
;
color
:
#777777
;
}
.github
blockquote
>
:first-child
{
margin-top
:
0
;
}
.github
blockquote
>
:last-child
{
margin-bottom
:
0
;
}
.github
table
{
padding
:
0
;
}
.github
table
tr
{
border-top
:
1px
solid
#cccccc
;
background-color
:
white
;
margin
:
0
;
padding
:
0
;
}
.github
table
tr
:nth-child
(
2n
)
{
background-color
:
#f8f8f8
;
}
.github
table
tr
th
{
font-weight
:
bold
;
border
:
1px
solid
#cccccc
;
text-align
:
left
;
margin
:
0
;
padding
:
6px
13px
;
}
.github
table
tr
td
{
border
:
1px
solid
#cccccc
;
text-align
:
left
;
margin
:
0
;
padding
:
6px
13px
;
}
.github
table
tr
th
:first-child
,
.github
table
tr
td
:first-child
{
margin-top
:
0
;
}
.github
table
tr
th
:last-child
,
.github
table
tr
td
:last-child
{
margin-bottom
:
0
;
}
.github
img
{
max-width
:
100%
;
}
.github
span
.frame
{
display
:
block
;
overflow
:
hidden
;
}
.github
span
.frame
>
span
{
border
:
1px
solid
#dddddd
;
display
:
block
;
float
:
left
;
overflow
:
hidden
;
margin
:
13px
0
0
;
padding
:
7px
;
width
:
auto
;
}
.github
span
.frame
span
img
{
display
:
block
;
float
:
left
;
}
.github
span
.frame
span
span
{
clear
:
both
;
color
:
#333333
;
display
:
block
;
padding
:
5px
0
0
;
}
.github
span
.align-center
{
display
:
block
;
overflow
:
hidden
;
clear
:
both
;
}
.github
span
.align-center
>
span
{
display
:
block
;
overflow
:
hidden
;
margin
:
13px
auto
0
;
text-align
:
center
;
}
.github
span
.align-center
span
img
{
margin
:
0
auto
;
text-align
:
center
;
}
.github
span
.align-right
{
display
:
block
;
overflow
:
hidden
;
clear
:
both
;
}
.github
span
.align-right
>
span
{
display
:
block
;
overflow
:
hidden
;
margin
:
13px
0
0
;
text-align
:
right
;
}
.github
span
.align-right
span
img
{
margin
:
0
;
text-align
:
right
;
}
.github
span
.float-left
{
display
:
block
;
margin-right
:
13px
;
overflow
:
hidden
;
float
:
left
;
}
.github
span
.float-left
span
{
margin
:
13px
0
0
;
}
.github
span
.float-right
{
display
:
block
;
margin-left
:
13px
;
overflow
:
hidden
;
float
:
right
;
}
.github
span
.float-right
>
span
{
display
:
block
;
overflow
:
hidden
;
margin
:
13px
auto
0
;
text-align
:
right
;
}
.github
code
,
.github
tt
{
margin
:
0
2px
;
padding
:
0
5px
;
white-space
:
nowrap
;
border
:
1px
solid
#eaeaea
;
background-color
:
#f8f8f8
;
border-radius
:
3px
;
}
.github
pre
code
{
margin
:
0
;
padding
:
0
;
white-space
:
pre
;
border
:
none
;
background
:
transparent
;
}
.github
.highlight
pre
{
background-color
:
#f8f8f8
;
border
:
1px
solid
#cccccc
;
font-size
:
13px
;
line-height
:
19px
;
overflow
:
auto
;
padding
:
6px
10px
;
border-radius
:
3px
;
}
.github
pre
{
background-color
:
#f8f8f8
;
border
:
1px
solid
#cccccc
;
font-size
:
13px
;
line-height
:
19px
;
overflow
:
auto
;
padding
:
6px
10px
;
border-radius
:
3px
;
}
.github
pre
code
,
.github
pre
tt
{
background-color
:
transparent
;
border
:
none
;
}
</style>
</head>
<body
bgcolor=
"#f0f0f0"
>
<!-- HEADER -->
<table
class=
"head-wrap"
bgcolor=
"#E4F3FF"
>
<tr>
<td></td>
<td
class=
"header container"
>
<div
class=
"content"
>
<table>
<tr>
<td><h6
class=
"collapse"
>
Rendezvous
</h6>
-
<a
href=
"__POST_URL__"
target=
"_blank"
>
__HTML_TITLE__
</a></td>
</tr>
</table>
</div>
</td>
<td></td>
</tr>
</table>
<!-- /HEADER -->
<!-- BODY -->
<table
class=
"body-wrap"
>
<tr>
<td></td>
<td
class=
"container"
bgcolor=
"#FFFFFF"
>
<div
class=
"content"
>
<table>
<tr>
<td>
<div
class=
"github"
>
__HTML_BODY__
</div>
<p
class=
"callout"
>
コメントは
<a
href=
"__POST_URL__"
target=
"_blank"
>
こちら
</a>
から
</p>
<!-- /Callout Panel -->
</td>
</tr>
</table>
</div>
<!-- /content -->
</td>
<td></td>
</tr>
</table>
<!-- /BODY -->
<!-- FOOTER -->
<table
class=
"footer-wrap"
>
<tr>
<td></td>
<td
class=
"container"
>
<!-- content -->
<div
class=
"content"
>
<table>
<tr>
<td
align=
"center"
>
<p>
<a
href=
"__RV_URL__"
>
Rendezvous
</a>
</p>
</td>
</tr>
</table>
</div>
<!-- /content -->
</td>
<td></td>
</tr>
</table>
<!-- /FOOTER -->
</body>
</html>
app/controllers/concerns/rv/mailer.rb
View file @
7b54d117
...
@@ -36,14 +36,14 @@ module RV::Mailer
...
@@ -36,14 +36,14 @@ module RV::Mailer
end
end
def
generate_html_mail
(
post
)
def
generate_html_mail
(
post
)
path
=
File
.
expand_path
(
File
.
dirname
(
__FILE__
)
+
'/mail-template.html'
)
path
=
File
.
expand_path
(
File
.
dirname
(
__FILE__
)
+
'/mail-template
2
.html'
)
template
=
File
.
open
(
path
).
read
template
=
File
.
open
(
path
).
read
html_body
=
template
html_body
=
template
.
sub
(
'__POST_URL__'
,
Settings
.
rendezvous
.
app_host
+
post
.
decorate
.
show_path
)
.
g
sub
(
'__POST_URL__'
,
Settings
.
rendezvous
.
app_host
+
post
.
decorate
.
show_path
)
.
sub
(
'__HTML_TITLE__'
,
MarkdownRenderer
.
new
(
post
.
title
).
render
)
.
g
sub
(
'__HTML_TITLE__'
,
MarkdownRenderer
.
new
(
post
.
title
).
render
)
.
sub
(
'__HTML_BODY__'
,
MarkdownRenderer
.
new
(
post
.
body
).
render
)
.
g
sub
(
'__HTML_BODY__'
,
MarkdownRenderer
.
new
(
post
.
body
).
render
)
.
sub
(
'__RV_URL__'
,
Settings
.
rendezvous
.
app_host
+
'/'
)
.
g
sub
(
'__RV_URL__'
,
Settings
.
rendezvous
.
app_host
+
'/'
)
premailer
=
Premailer
.
new
(
html_body
,
with_html_string:
true
,
adapter: :nokogiri
)
premailer
=
Premailer
.
new
(
html_body
,
with_html_string:
true
,
adapter: :nokogiri
)
premailer
.
to_inline_css
premailer
.
to_inline_css
...
...
app/controllers/posts_controller.rb
View file @
7b54d117
...
@@ -36,7 +36,7 @@ class PostsController < ApplicationController
...
@@ -36,7 +36,7 @@ class PostsController < ApplicationController
@post
=
set_post
@post
=
set_post
# refresh google oauth token if expired
# refresh google oauth token if expired
current_user
.
google_oauth_token_refresh!
if
current_user
.
google_oauth_token_expired?
#
current_user.google_oauth_token_refresh! if current_user.google_oauth_token_expired?
compose_mail
(
@post
,
user:
current_user
,
to:
mail_params
[
:to
]).
deliver
compose_mail
(
@post
,
user:
current_user
,
to:
mail_params
[
:to
]).
deliver
gflash
success:
'Mail has been sent!'
gflash
success:
'Mail has been sent!'
...
...
app/models/user.rb
View file @
7b54d117
...
@@ -77,11 +77,10 @@ class User < ActiveRecord::Base
...
@@ -77,11 +77,10 @@ class User < ActiveRecord::Base
u
.
nickname
=
((
'a'
..
'z'
).
to_a
+
(
'A'
..
'Z'
).
to_a
+
(
0
..
9
).
to_a
).
shuffle
[
0
..
4
].
join
u
.
nickname
=
((
'a'
..
'z'
).
to_a
+
(
'A'
..
'Z'
).
to_a
+
(
0
..
9
).
to_a
).
shuffle
[
0
..
4
].
join
end
end
user
.
update
(
user
.
google_auth_token
=
access_token
.
credentials
[
'token'
]
if
access_token
.
credentials
[
'token'
]
google_auth_token:
access_token
.
credentials
[
'token'
],
user
.
google_refresh_token
=
access_token
.
credentials
[
'refresh_token'
]
if
access_token
.
credentials
[
'refresh_token'
]
google_refresh_token:
access_token
.
credentials
[
'refresh_token'
],
user
.
google_token_expires_at
=
Time
.
at
(
access_token
.
credentials
[
'expires_at'
])
if
access_token
.
credentials
[
'expires_at'
]
google_token_expires_at:
Time
.
at
(
access_token
.
credentials
[
'expires_at'
])
user
.
save!
)
user
user
end
end
...
...
config/initializers/omniauth.rb
View file @
7b54d117
...
@@ -3,9 +3,10 @@ Rails.application.config.middleware.use OmniAuth::Builder do
...
@@ -3,9 +3,10 @@ Rails.application.config.middleware.use OmniAuth::Builder do
provider
:google_oauth2
,
Settings
.
google_api
.
client_id
,
Settings
.
google_api
.
secret
,
provider
:google_oauth2
,
Settings
.
google_api
.
client_id
,
Settings
.
google_api
.
secret
,
name:
'google_oauth2'
,
name:
'google_oauth2'
,
scope:
'https://mail.google.com/, userinfo.email, userinfo.profile'
,
scope:
'https://mail.google.com/, userinfo.email, userinfo.profile'
,
access_type:
'offline'
,
access_type:
'online'
,
prompt:
'select_account consent'
,
# prompt: 'select_account consent',
image_aspect_ratio:
'square'
,
approval_prompt:
'auto'
image_size:
50
# image_aspect_ratio: 'square',
# image_size: 50
end
end
db/schema.rb
View file @
7b54d117
...
@@ -13,117 +13,117 @@
...
@@ -13,117 +13,117 @@
ActiveRecord
::
Schema
.
define
(
version:
20140719145016
)
do
ActiveRecord
::
Schema
.
define
(
version:
20140719145016
)
do
create_table
'comments'
,
force:
true
do
|
t
|
create_table
"comments"
,
force:
true
do
|
t
|
t
.
integer
'author_id'
t
.
integer
"author_id"
t
.
integer
'post_id'
t
.
integer
"post_id"
t
.
text
'body'
t
.
text
"body"
t
.
datetime
'created_at'
t
.
datetime
"created_at"
t
.
datetime
'updated_at'
t
.
datetime
"updated_at"
end
end
add_index
'comments'
,
[
'author_id'
,
'updated_at'
],
name:
'index_comments_on_author_id_and_updated_at'
,
using: :btree
add_index
"comments"
,
[
"author_id"
,
"updated_at"
],
name:
"index_comments_on_author_id_and_updated_at"
,
using: :btree
add_index
'comments'
,
[
'post_id'
,
'updated_at'
],
name:
'index_comments_on_post_id_and_updated_at'
,
using: :btree
add_index
"comments"
,
[
"post_id"
,
"updated_at"
],
name:
"index_comments_on_post_id_and_updated_at"
,
using: :btree
create_table
'footprints'
,
force:
true
do
|
t
|
create_table
"footprints"
,
force:
true
do
|
t
|
t
.
integer
'user_id'
,
null:
false
t
.
integer
"user_id"
,
null:
false
t
.
integer
'post_id'
,
null:
false
t
.
integer
"post_id"
,
null:
false
t
.
datetime
'created_at'
t
.
datetime
"created_at"
t
.
datetime
'updated_at'
t
.
datetime
"updated_at"
end
end
add_index
'footprints'
,
[
'post_id'
],
name:
'index_footprints_on_post_id'
,
using: :btree
add_index
"footprints"
,
[
"post_id"
],
name:
"index_footprints_on_post_id"
,
using: :btree
add_index
'footprints'
,
[
'user_id'
,
'post_id'
],
name:
'index_footprints_on_user_id_and_post_id'
,
using: :btree
add_index
"footprints"
,
[
"user_id"
,
"post_id"
],
name:
"index_footprints_on_user_id_and_post_id"
,
using: :btree
create_table
'notifications'
,
force:
true
do
|
t
|
create_table
"notifications"
,
force:
true
do
|
t
|
t
.
integer
'user_id'
t
.
integer
"user_id"
t
.
datetime
'read_at'
t
.
datetime
"read_at"
t
.
boolean
'is_read'
,
default:
false
,
null:
false
t
.
boolean
"is_read"
,
default:
false
,
null:
false
t
.
string
'detail_path'
t
.
string
"detail_path"
t
.
text
'body'
t
.
text
"body"
t
.
datetime
'created_at'
t
.
datetime
"created_at"
t
.
datetime
'updated_at'
t
.
datetime
"updated_at"
end
end
add_index
'notifications'
,
[
'user_id'
,
'is_read'
,
'read_at'
],
name:
'index_notifications_on_user_id_and_is_read_and_read_at'
,
using: :btree
add_index
"notifications"
,
[
"user_id"
,
"is_read"
,
"read_at"
],
name:
"index_notifications_on_user_id_and_is_read_and_read_at"
,
using: :btree
create_table
'post_tags'
,
force:
true
do
|
t
|
create_table
"post_tags"
,
force:
true
do
|
t
|
t
.
integer
'post_id'
,
null:
false
t
.
integer
"post_id"
,
null:
false
t
.
integer
'tag_id'
,
null:
false
t
.
integer
"tag_id"
,
null:
false
t
.
datetime
'created_at'
t
.
datetime
"created_at"
t
.
datetime
'updated_at'
t
.
datetime
"updated_at"
end
end
add_index
'post_tags'
,
[
'post_id'
],
name:
'index_post_tags_on_post_id'
,
using: :btree
add_index
"post_tags"
,
[
"post_id"
],
name:
"index_post_tags_on_post_id"
,
using: :btree
add_index
'post_tags'
,
[
'tag_id'
],
name:
'index_post_tags_on_tag_id'
,
using: :btree
add_index
"post_tags"
,
[
"tag_id"
],
name:
"index_post_tags_on_tag_id"
,
using: :btree
create_table
'posts'
,
force:
true
do
|
t
|
create_table
"posts"
,
force:
true
do
|
t
|
t
.
string
'title'
t
.
string
"title"
t
.
text
'body'
t
.
text
"body"
t
.
integer
'author_id'
t
.
integer
"author_id"
t
.
datetime
'created_at'
t
.
datetime
"created_at"
t
.
datetime
'updated_at'
t
.
datetime
"updated_at"
t
.
boolean
'is_draft'
,
default:
false
t
.
boolean
"is_draft"
,
default:
false
t
.
date
'specified_date'
t
.
date
"specified_date"
end
end
add_index
'posts'
,
[
'is_draft'
],
name:
'index_posts_on_is_draft'
,
using: :btree
add_index
"posts"
,
[
"is_draft"
],
name:
"index_posts_on_is_draft"
,
using: :btree
create_table
'tags'
,
force:
true
do
|
t
|
create_table
"tags"
,
force:
true
do
|
t
|
t
.
string
'name'
t
.
string
"name"
t
.
datetime
'created_at'
t
.
datetime
"created_at"
t
.
datetime
'updated_at'
t
.
datetime
"updated_at"
t
.
string
'ancestry'
t
.
string
"ancestry"
t
.
text
'body'
t
.
text
"body"
t
.
integer
'posts_count'
,
default:
0
,
null:
false
t
.
integer
"posts_count"
,
default:
0
,
null:
false
end
end
add_index
'tags'
,
[
'ancestry'
],
name:
'index_tags_on_ancestry'
,
using: :btree
add_index
"tags"
,
[
"ancestry"
],
name:
"index_tags_on_ancestry"
,
using: :btree
create_table
'users'
,
force:
true
do
|
t
|
create_table
"users"
,
force:
true
do
|
t
|
t
.
string
'name'
t
.
string
"name"
t
.
string
'image_url'
t
.
string
"image_url"
t
.
datetime
'created_at'
t
.
datetime
"created_at"
t
.
datetime
'updated_at'
t
.
datetime
"updated_at"
t
.
string
'email'
,
default:
''
,
null:
false
t
.
string
"email"
,
default:
""
,
null:
false
t
.
string
'encrypted_password'
,
default:
''
,
null:
false
t
.
string
"encrypted_password"
,
default:
""
,
null:
false
t
.
string
'reset_password_token'
t
.
string
"reset_password_token"
t
.
datetime
'reset_password_sent_at'
t
.
datetime
"reset_password_sent_at"
t
.
datetime
'remember_created_at'
t
.
datetime
"remember_created_at"
t
.
integer
'sign_in_count'
,
default:
0
,
null:
false
t
.
integer
"sign_in_count"
,
default:
0
,
null:
false
t
.
datetime
'current_sign_in_at'
t
.
datetime
"current_sign_in_at"
t
.
datetime
'last_sign_in_at'
t
.
datetime
"last_sign_in_at"
t
.
string
'current_sign_in_ip'
t
.
string
"current_sign_in_ip"
t
.
string
'last_sign_in_ip'
t
.
string
"last_sign_in_ip"
t
.
string
'google_auth_token'
t
.
string
"google_auth_token"
t
.
string
'google_refresh_token'
t
.
string
"google_refresh_token"
t
.
datetime
'google_token_expires_at'
t
.
datetime
"google_token_expires_at"
t
.
string
'nickname'
,
default:
''
,
null:
false
t
.
string
"nickname"
,
default:
""
,
null:
false
end
end
add_index
'users'
,
[
'email'
],
name:
'index_users_on_email'
,
unique:
true
,
using: :btree
add_index
"users"
,
[
"email"
],
name:
"index_users_on_email"
,
unique:
true
,
using: :btree
add_index
'users'
,
[
'nickname'
],
name:
'index_users_on_nickname'
,
using: :btree
add_index
"users"
,
[
"nickname"
],
name:
"index_users_on_nickname"
,
using: :btree
add_index
'users'
,
[
'reset_password_token'
],
name:
'index_users_on_reset_password_token'
,
unique:
true
,
using: :btree
add_index
"users"
,
[
"reset_password_token"
],
name:
"index_users_on_reset_password_token"
,
unique:
true
,
using: :btree
create_table
'versions'
,
force:
true
do
|
t
|
create_table
"versions"
,
force:
true
do
|
t
|
t
.
string
'item_type'
,
null:
false
t
.
string
"item_type"
,
null:
false
t
.
integer
'item_id'
,
null:
false
t
.
integer
"item_id"
,
null:
false
t
.
string
'event'
,
null:
false
t
.
string
"event"
,
null:
false
t
.
string
'whodunnit'
t
.
string
"whodunnit"
t
.
text
'object'
t
.
text
"object"
t
.
datetime
'created_at'
t
.
datetime
"created_at"
end
end
add_index
'versions'
,
[
'item_type'
,
'item_id'
],
name:
'index_versions_on_item_type_and_item_id'
,
using: :btree
add_index
"versions"
,
[
"item_type"
,
"item_id"
],
name:
"index_versions_on_item_type_and_item_id"
,
using: :btree
create_table
'watches'
,
force:
true
do
|
t
|
create_table
"watches"
,
force:
true
do
|
t
|
t
.
integer
'watcher_id'
,
null:
false
t
.
integer
"watcher_id"
,
null:
false
t
.
string
'watchable_type'
,
null:
false
t
.
string
"watchable_type"
,
null:
false
t
.
integer
'watchable_id'
,
null:
false
t
.
integer
"watchable_id"
,
null:
false
t
.
datetime
'created_at'
t
.
datetime
"created_at"
t
.
datetime
'updated_at'
t
.
datetime
"updated_at"
end
end
add_index
'watches'
,
[
'watchable_type'
,
'watchable_id'
],
name:
'index_watches_on_watchable_type_and_watchable_id'
,
using: :btree
add_index
"watches"
,
[
"watchable_type"
,
"watchable_id"
],
name:
"index_watches_on_watchable_type_and_watchable_id"
,
using: :btree
add_index
'watches'
,
[
'watcher_id'
,
'watchable_type'
,
'watchable_id'
],
name:
'index_watches_on_watcher_id_and_watchable_type_and_watchable_id'
,
unique:
true
,
using: :btree
add_index
"watches"
,
[
"watcher_id"
,
"watchable_type"
,
"watchable_id"
],
name:
"index_watches_on_watcher_id_and_watchable_type_and_watchable_id"
,
unique:
true
,
using: :btree
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment