timeliner_rails 0.0.2
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.
- checksums.yaml +15 -0
- data/.gitignore +17 -0
- data/.gitmodules +3 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +33 -0
- data/Rakefile +48 -0
- data/app/assets/images/timeliner/timeline_century_tick.gif +0 -0
- data/app/assets/images/timeliner/timeline_decade_tick.gif +0 -0
- data/app/assets/javascripts/timeliner/timeliner.js +118 -0
- data/app/assets/stylesheets/timeliner/responsive.css.erb +71 -0
- data/app/assets/stylesheets/timeliner/screen.css.erb +237 -0
- data/lib/timeliner_rails.rb +6 -0
- data/lib/timeliner_rails/version.rb +3 -0
- data/timeliner_rails.gemspec +25 -0
- metadata +103 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YjljMzYwOGZlMWNkNmFiMTliMGRmMzI2OGE3MjkzMDQ1YmY0OWFiNQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MGM0YTNmMTc2ODQ2MWI2MzNlMTQ1ZWU3NjRiODg0NDljMjdhMWM3Yg==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
YmUyNTg1NWUzNWRlODZjNWYxOTljOGIzMjNmMjdjNzMyMmZlMjBlZGYzM2Nk
|
10
|
+
ZmJmMTdhMTVlMmMxNzVjNWQ4ZDA5Yjc1ZmRmNGUxMzVmOTQ5Mzg4MTI1ZjY4
|
11
|
+
YmFlNzMwNjAyNjM2ZDY3YjlhMDVlNWNmZGJkZWViZWIyMDFlOTA=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
M2VmOTk0M2Q3YTMyMzVkZjI4NjlmZTk0NDViOWIwNDg1MzkwY2RhNmM3NzI0
|
14
|
+
YmI5ZjdhM2FjYWQyMWVmNTQzZDhhMmM1ZTU0NDliM2IxZTkzOTM0OTgxOGIw
|
15
|
+
MzAyYWQ2OGU4ZmI3M2ZhMWMyNmUzNTk3OGQ5MzE4NjkwZDdkZjQ=
|
data/.gitignore
ADDED
data/.gitmodules
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 Luisa Lima
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
# TimelinerRails
|
2
|
+
|
3
|
+
timeliner_rails packages the []() jquery plugin (javascripts, stylesheets and images) for use with the rails 3.1+ asset pipeline.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
gem 'timeliner_rails'
|
10
|
+
|
11
|
+
|
12
|
+
## Usage
|
13
|
+
|
14
|
+
Add this line to your `application.js`:
|
15
|
+
|
16
|
+
```javascript
|
17
|
+
//= require timeliner.timeliner
|
18
|
+
```
|
19
|
+
|
20
|
+
Add these lines to your `application.scss` || `application.css`:
|
21
|
+
|
22
|
+
```css
|
23
|
+
*= require timeliner/screen
|
24
|
+
*= require timeliner/responsive
|
25
|
+
```
|
26
|
+
|
27
|
+
## Contributing
|
28
|
+
|
29
|
+
1. Fork it
|
30
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
31
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
32
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
33
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
Encoding.default_external = "UTF-8" if defined?(Encoding)
|
2
|
+
|
3
|
+
require "bundler/gem_tasks"
|
4
|
+
|
5
|
+
def build_image_dependencies(source_code)
|
6
|
+
image_dependencies = Set.new source_code.scan(/url\(.*"?images\/([-_.a-zA-Z0-9]+)"?\)/).map(&:first)
|
7
|
+
code = image_dependencies.inject("") do |acc, img|
|
8
|
+
acc += "//= depend_on_asset \"timeliner/#{img}\"\n"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
desc "Clean assets"
|
13
|
+
task :clean do
|
14
|
+
rm_rf 'app'
|
15
|
+
end
|
16
|
+
|
17
|
+
namespace :generate do
|
18
|
+
desc "Generate assets"
|
19
|
+
task :assets do
|
20
|
+
|
21
|
+
Rake.rake_output_message "Copying javascripts"
|
22
|
+
target_dir = "app/assets/javascripts/timeliner"
|
23
|
+
mkdir_p target_dir
|
24
|
+
puts FileUtils.cp(Dir.glob("timeliner/js/timeliner.js"), target_dir)
|
25
|
+
|
26
|
+
Rake.rake_output_message "Copying images"
|
27
|
+
target_dir = "app/assets/images/timeliner"
|
28
|
+
mkdir_p target_dir
|
29
|
+
puts FileUtils.cp(Dir.glob("timeliner/images/*"), target_dir)
|
30
|
+
|
31
|
+
Rake.rake_output_message "Generating css files"
|
32
|
+
target_dir = "app/assets/stylesheets/timeliner"
|
33
|
+
mkdir_p target_dir
|
34
|
+
|
35
|
+
Dir.glob("timeliner/css/*").each do |path|
|
36
|
+
basename = File.basename(path)
|
37
|
+
source_code = File.read(path)
|
38
|
+
|
39
|
+
source_code = build_image_dependencies(source_code) + "\n" + source_code unless build_image_dependencies(source_code).empty?
|
40
|
+
source_code.gsub!(/url\(.*"?images\/([-_.a-zA-Z0-9]+)"?\)/, "url(<%= image_path(\"timeliner/\\1\") %>)")
|
41
|
+
|
42
|
+
puts "#{target_dir}/#{basename}.erb"
|
43
|
+
File.open("#{target_dir}/#{basename}.erb", "w") do |out|
|
44
|
+
out.write(source_code)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
Binary file
|
Binary file
|
@@ -0,0 +1,118 @@
|
|
1
|
+
/*
|
2
|
+
* Timeliner.js
|
3
|
+
* @version 1.5.1
|
4
|
+
* @copyright Tarek Anandan (http://www.technotarek.com)
|
5
|
+
*/
|
6
|
+
;(function($) {
|
7
|
+
|
8
|
+
var settings;
|
9
|
+
$.timeliner = function(options){
|
10
|
+
// default plugin settings
|
11
|
+
settings = jQuery.extend({
|
12
|
+
timelineContainer: '#timelineContainer', // value: selector of the main element holding the timeline's content, default to #timelineContainer
|
13
|
+
startState: 'closed', // value: closed | open, default to closed; sets whether the timeline is initially collapsed or fully expanded
|
14
|
+
startOpen: [], // value: array of IDs of single timelineEvents, default to empty; sets the minor events that you want to display open by default on page load
|
15
|
+
baseSpeed: 200, // value: numeric, default to 200; sets the base speed for animation of the event marker
|
16
|
+
speed: 4, // value: numeric, defalut to 4; a multiplier applied to the base speed that sets the speed at which an event's conents are displayed and hidden
|
17
|
+
fontOpen: '1.2em', // value: any valid CSS font-size value, defaults to 1em; sets the font size of an event after it is opened
|
18
|
+
fontClosed: '1em', // value: any valid CSS font-size value, defaults to 1em; sets the font size of an event after it is closed
|
19
|
+
expandAllText: '+ expand all', // value: string, sets the text of the expandAll selector after the timeline is fully collapsed
|
20
|
+
collapseAllText: '- collapse all' // // value: string, sets the text of the expandAll selector after the timeline is fully expanded
|
21
|
+
}, options);
|
22
|
+
|
23
|
+
$(document).ready(function() {
|
24
|
+
|
25
|
+
function openEvent(eventHeading,eventBody) {
|
26
|
+
$(eventHeading)
|
27
|
+
.removeClass('closed')
|
28
|
+
.addClass('open')
|
29
|
+
.animate({ fontSize: settings.fontOpen }, settings.baseSpeed);
|
30
|
+
$(eventBody).show(settings.speed*settings.baseSpeed);
|
31
|
+
}
|
32
|
+
|
33
|
+
function closeEvent(eventHeading,eventBody) {
|
34
|
+
$(eventHeading)
|
35
|
+
.animate({ fontSize: settings.fontClosed }, 0)
|
36
|
+
.removeClass('open')
|
37
|
+
.addClass('closed');
|
38
|
+
$(eventBody).hide(settings.speed*settings.baseSpeed);
|
39
|
+
}
|
40
|
+
|
41
|
+
// If startState option is set to closed, hide all the events; else, show fully expanded upon load
|
42
|
+
if(settings.startState==='closed')
|
43
|
+
{
|
44
|
+
// Close all items
|
45
|
+
$(".timelineEvent").hide();
|
46
|
+
|
47
|
+
// show startOpen events
|
48
|
+
$.each($(settings.startOpen), function(index, value) {
|
49
|
+
openEvent($(value).parent(".timelineMinor").find("dt a"),$(value));
|
50
|
+
});
|
51
|
+
|
52
|
+
}else{
|
53
|
+
|
54
|
+
// Open all items
|
55
|
+
openEvent($(".timelineMinor dt a"),$(".timelineEvent"));
|
56
|
+
|
57
|
+
}
|
58
|
+
|
59
|
+
// Minor Event Click
|
60
|
+
$(settings.timelineContainer).on("click",".timelineMinor dt",function(){
|
61
|
+
|
62
|
+
var currentId = $(this).attr('id');
|
63
|
+
|
64
|
+
// if the event is currently open
|
65
|
+
if($(this).find('a').is('.open'))
|
66
|
+
{
|
67
|
+
|
68
|
+
closeEvent($("a",this),$("#"+currentId+"EX"))
|
69
|
+
|
70
|
+
} else{ // if the event is currently closed
|
71
|
+
|
72
|
+
openEvent($("a", this),$("#"+currentId+"EX"));
|
73
|
+
|
74
|
+
}
|
75
|
+
|
76
|
+
});
|
77
|
+
|
78
|
+
// Major Marker Click
|
79
|
+
$(settings.timelineContainer).on("click",".timelineMajorMarker",function()
|
80
|
+
{
|
81
|
+
|
82
|
+
// number of minor events under this major event
|
83
|
+
var numEvents = $(this).parents(".timelineMajor").find(".timelineMinor").length;
|
84
|
+
|
85
|
+
// number of minor events already open
|
86
|
+
var numOpen = $(this).parents(".timelineMajor").find('.open').length;
|
87
|
+
|
88
|
+
if(numEvents > numOpen )
|
89
|
+
{
|
90
|
+
|
91
|
+
openEvent($(this).parents(".timelineMajor").find("dt a","dl.timelineMinor"),$(this).parents(".timelineMajor").find(".timelineEvent"));
|
92
|
+
|
93
|
+
} else{
|
94
|
+
|
95
|
+
closeEvent($(this).parents(".timelineMajor").find("dl.timelineMinor a"),$(this).parents(".timelineMajor").find(".timelineEvent"));
|
96
|
+
|
97
|
+
}
|
98
|
+
});
|
99
|
+
|
100
|
+
// All Markers/Events
|
101
|
+
$(".expandAll").click(function()
|
102
|
+
{
|
103
|
+
if($(this).hasClass('expanded'))
|
104
|
+
{
|
105
|
+
|
106
|
+
closeEvent($(this).parents(settings.timelineContainer).find("dt a","dl.timelineMinor"),$(this).parents(settings.timelineContainer).find(".timelineEvent"));
|
107
|
+
$(this).removeClass('expanded').html(settings.expandAllText);
|
108
|
+
|
109
|
+
} else{
|
110
|
+
|
111
|
+
openEvent($(this).parents(settings.timelineContainer).find("dt a","dl.timelineMinor"),$(this).parents(settings.timelineContainer).find(".timelineEvent"));
|
112
|
+
$(this).addClass('expanded').html(settings.collapseAllText);
|
113
|
+
|
114
|
+
}
|
115
|
+
});
|
116
|
+
});
|
117
|
+
};
|
118
|
+
})(jQuery);
|
@@ -0,0 +1,71 @@
|
|
1
|
+
/* Smartphones (landscape and portrait) ----------- */
|
2
|
+
@media screen and (max-width: 768px) {
|
3
|
+
|
4
|
+
* {
|
5
|
+
max-width: 460px;
|
6
|
+
}
|
7
|
+
|
8
|
+
body {
|
9
|
+
font-size: large;
|
10
|
+
}
|
11
|
+
|
12
|
+
.container {
|
13
|
+
padding:10px;
|
14
|
+
}
|
15
|
+
|
16
|
+
div.timelineToggle {
|
17
|
+
float:none;
|
18
|
+
}
|
19
|
+
|
20
|
+
.timelineEvent div.media {
|
21
|
+
display:none;
|
22
|
+
float:none;
|
23
|
+
}
|
24
|
+
|
25
|
+
.timelineMinor dt {
|
26
|
+
font-size:1.2em;
|
27
|
+
white-space: normal;
|
28
|
+
}
|
29
|
+
|
30
|
+
.timelineMinor dd h3 {
|
31
|
+
font-size:1em;
|
32
|
+
white-space: normal;
|
33
|
+
}
|
34
|
+
|
35
|
+
div#timelineContainer {
|
36
|
+
}
|
37
|
+
|
38
|
+
.timelineMinor dd {
|
39
|
+
margin-left:20px;
|
40
|
+
padding-left:0;
|
41
|
+
width:100%;
|
42
|
+
}
|
43
|
+
|
44
|
+
.timelineEvent .media p {
|
45
|
+
font-size:1em;
|
46
|
+
}
|
47
|
+
|
48
|
+
dl.timelineMinor {
|
49
|
+
float:none;
|
50
|
+
max-width:80%;
|
51
|
+
}
|
52
|
+
|
53
|
+
.timelineEvent p {
|
54
|
+
float:none;
|
55
|
+
width:100%;
|
56
|
+
}
|
57
|
+
|
58
|
+
.timelineEvent blockquote {
|
59
|
+
float:none;
|
60
|
+
width:200px;
|
61
|
+
font-size:1em;
|
62
|
+
}
|
63
|
+
}
|
64
|
+
/* Smartphones (portrait) ----------- */
|
65
|
+
@media only screen and (max-width : 320px) {
|
66
|
+
|
67
|
+
* {
|
68
|
+
max-width: 300px;
|
69
|
+
}
|
70
|
+
|
71
|
+
}
|
@@ -0,0 +1,237 @@
|
|
1
|
+
//= depend_on_asset "timeliner/timeline_century_tick.gif"
|
2
|
+
//= depend_on_asset "timeliner/timeline_decade_tick.gif"
|
3
|
+
|
4
|
+
/* ======= DEMO LAYOUT ======= */
|
5
|
+
|
6
|
+
body {
|
7
|
+
background-color:#2f2f2f;
|
8
|
+
color:#eeefef;
|
9
|
+
font-size:62.5%;
|
10
|
+
font-family:Arial, Helvetica, sans-serif;
|
11
|
+
margin:0;
|
12
|
+
padding:0;
|
13
|
+
}
|
14
|
+
|
15
|
+
.container {
|
16
|
+
width:940px;
|
17
|
+
margin-left:auto;
|
18
|
+
margin-right:auto;
|
19
|
+
padding:10px;
|
20
|
+
*zoom:1;
|
21
|
+
}
|
22
|
+
|
23
|
+
h1, h2 { }
|
24
|
+
|
25
|
+
h1 {
|
26
|
+
color:#7DBADF;
|
27
|
+
font-size:36px;
|
28
|
+
font-weight:400;
|
29
|
+
margin:0;
|
30
|
+
}
|
31
|
+
|
32
|
+
h2 {
|
33
|
+
font-size:22px;
|
34
|
+
font-weight:400;
|
35
|
+
margin:5px 0;
|
36
|
+
letter-spacing:.1em;
|
37
|
+
}
|
38
|
+
|
39
|
+
h3 {
|
40
|
+
font-size:1.6em;
|
41
|
+
margin:10px 0 10px 10px;
|
42
|
+
}
|
43
|
+
|
44
|
+
a:link,a:visited {
|
45
|
+
color:#7097af;
|
46
|
+
text-decoration:none;
|
47
|
+
}
|
48
|
+
|
49
|
+
a:hover {
|
50
|
+
color:#7DBADF;
|
51
|
+
}
|
52
|
+
|
53
|
+
a img {
|
54
|
+
border:none;
|
55
|
+
}
|
56
|
+
|
57
|
+
p {
|
58
|
+
margin:0 0 10px 8px;
|
59
|
+
font-size:1.3em;
|
60
|
+
font-weight:400;
|
61
|
+
line-height:1.6em;
|
62
|
+
}
|
63
|
+
|
64
|
+
.clear {
|
65
|
+
clear:both;
|
66
|
+
line-height:0;
|
67
|
+
font-size:0;
|
68
|
+
}
|
69
|
+
|
70
|
+
/* ============ TIMELINE ============= */
|
71
|
+
|
72
|
+
div#timelineContainer {
|
73
|
+
border-left:2px solid #ccc;
|
74
|
+
margin:20px auto;
|
75
|
+
width:900px;
|
76
|
+
}
|
77
|
+
|
78
|
+
div.timelineToggle {
|
79
|
+
float:right;
|
80
|
+
margin-right:0;
|
81
|
+
white-space:nowrap;
|
82
|
+
}
|
83
|
+
|
84
|
+
a.expandAll {
|
85
|
+
color:#ccc;
|
86
|
+
cursor:pointer;
|
87
|
+
background:#000;
|
88
|
+
-webkit-border-radius:4px;
|
89
|
+
-moz-border-radius:4px;
|
90
|
+
border-radius:4px;
|
91
|
+
font-size:12px;
|
92
|
+
padding:3px 5px;
|
93
|
+
}
|
94
|
+
|
95
|
+
a.expandAll:hover {
|
96
|
+
color:#7DBADF;
|
97
|
+
cursor:pointer;
|
98
|
+
}
|
99
|
+
|
100
|
+
div.timelineMajor {
|
101
|
+
clear:left;
|
102
|
+
float:left;
|
103
|
+
margin:0 0 12px;
|
104
|
+
width:900px;
|
105
|
+
}
|
106
|
+
|
107
|
+
.timelineMajor h2 {
|
108
|
+
background:url(<%= image_path("timeliner/timeline_century_tick.gif") %>) left center no-repeat;
|
109
|
+
font-family:Palatino,"Times New Roman", Times, serif;
|
110
|
+
cursor: pointer;
|
111
|
+
font-size:3em;
|
112
|
+
font-weight:400;
|
113
|
+
margin:0 0 10px;
|
114
|
+
padding:4px 4px 4px 20px;
|
115
|
+
}
|
116
|
+
|
117
|
+
.timelineMajor h2 span {
|
118
|
+
background:#ccc;
|
119
|
+
-webkit-border-radius:4px;
|
120
|
+
-moz-border-radius:4px;
|
121
|
+
border-radius:4px;
|
122
|
+
color:#131313;
|
123
|
+
letter-spacing:.1em;
|
124
|
+
line-height:1.7em;
|
125
|
+
padding:3px 5px 1px;
|
126
|
+
}
|
127
|
+
|
128
|
+
dl.timelineMinor {
|
129
|
+
clear:left;
|
130
|
+
float:left;
|
131
|
+
margin:0 12px 0 0;
|
132
|
+
padding:4px 4px 4px 0;
|
133
|
+
position:relative;
|
134
|
+
width:880px;
|
135
|
+
}
|
136
|
+
|
137
|
+
.timelineMinor dt {
|
138
|
+
background:url(<%= image_path("timeliner/timeline_decade_tick.gif") %>) left center no-repeat;
|
139
|
+
clear:left;
|
140
|
+
font-size:1.6em;
|
141
|
+
list-style-type:none;
|
142
|
+
line-height:1.2em;
|
143
|
+
margin:0 0 12px;
|
144
|
+
padding:0 0 0 24px;
|
145
|
+
white-space:nowrap;
|
146
|
+
}
|
147
|
+
|
148
|
+
.timelineMinor dt a {
|
149
|
+
color:#999;
|
150
|
+
cursor:pointer;
|
151
|
+
}
|
152
|
+
|
153
|
+
.timelineMinor dt a.closed {
|
154
|
+
color:#999;
|
155
|
+
font-size:1em;
|
156
|
+
margin-left:0;
|
157
|
+
}
|
158
|
+
|
159
|
+
.timelineMinor dt a.open {
|
160
|
+
color:#7DBADF;
|
161
|
+
}
|
162
|
+
|
163
|
+
.timelineMinor dt a:hover {
|
164
|
+
color:#7DBADF;
|
165
|
+
}
|
166
|
+
|
167
|
+
.timelineMinor dd {
|
168
|
+
padding-left:24px;
|
169
|
+
width:100%;
|
170
|
+
}
|
171
|
+
|
172
|
+
.timelineMinor dd h3 {
|
173
|
+
color:#FFF;
|
174
|
+
clear:both;
|
175
|
+
float:left;
|
176
|
+
font-size:1.5em;
|
177
|
+
margin:0;
|
178
|
+
white-space:nowrap;
|
179
|
+
}
|
180
|
+
|
181
|
+
.timelineEvent p {
|
182
|
+
clear:left;
|
183
|
+
float:left;
|
184
|
+
line-height:1.5em;
|
185
|
+
margin:6px 0 10px;
|
186
|
+
width:500px;
|
187
|
+
}
|
188
|
+
|
189
|
+
.timelineEvent h4 {
|
190
|
+
clear:left;
|
191
|
+
float:left;
|
192
|
+
font-size:1.4em;
|
193
|
+
font-weight:400;
|
194
|
+
margin:10px 0 0;
|
195
|
+
padding:0 0 0 20px;
|
196
|
+
}
|
197
|
+
|
198
|
+
.timelineEvent blockquote {
|
199
|
+
border-left:2px solid #ccc;
|
200
|
+
clear:left;
|
201
|
+
float:left;
|
202
|
+
font-size:1.8em;
|
203
|
+
margin-left:0;
|
204
|
+
padding:0 30px;
|
205
|
+
width:400px;
|
206
|
+
}
|
207
|
+
|
208
|
+
.timelineEvent blockquote .attribution{
|
209
|
+
font-size:0.7em;
|
210
|
+
text-align: right;
|
211
|
+
}
|
212
|
+
|
213
|
+
|
214
|
+
.timelineEvent div.media {
|
215
|
+
float:right;
|
216
|
+
padding:0 0 12px;
|
217
|
+
width:300px;
|
218
|
+
}
|
219
|
+
|
220
|
+
.timelineEvent .media img {
|
221
|
+
border:2px solid #000;
|
222
|
+
margin:0;
|
223
|
+
}
|
224
|
+
|
225
|
+
.timelineEvent .media p {
|
226
|
+
font-size:1.2em;
|
227
|
+
margin:0;
|
228
|
+
padding:0;
|
229
|
+
}
|
230
|
+
|
231
|
+
.timelineEvent .media a:link,.timelineEvent .media a:visited {
|
232
|
+
color:#ab221b;
|
233
|
+
}
|
234
|
+
|
235
|
+
.timelineEvent .media a:hover {
|
236
|
+
color:#7DBADF;
|
237
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'timeliner_rails/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "timeliner_rails"
|
8
|
+
spec.version = TimelinerRails::VERSION
|
9
|
+
spec.authors = ["Luisa Lima"]
|
10
|
+
spec.email = ["luisalima@dcc.fc.up.pt"]
|
11
|
+
spec.description = %q{This gem packages the Timeliner.js assets (javascripts, stylesheets, and images) for the Rails 3.1+ asset pipeline.}
|
12
|
+
spec.summary = %q{This gem packages the Timeliner.js assets (javascripts, stylesheets, and images) for the Rails 3.1+ asset pipeline.}
|
13
|
+
spec.homepage = "http://github.com/luisalima/timeliner_rails"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_dependency "railties", "~> 3.1"
|
22
|
+
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
24
|
+
spec.add_development_dependency "rake"
|
25
|
+
end
|
metadata
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: timeliner_rails
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Luisa Lima
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-12-30 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: railties
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.1'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.3'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: This gem packages the Timeliner.js assets (javascripts, stylesheets,
|
56
|
+
and images) for the Rails 3.1+ asset pipeline.
|
57
|
+
email:
|
58
|
+
- luisalima@dcc.fc.up.pt
|
59
|
+
executables: []
|
60
|
+
extensions: []
|
61
|
+
extra_rdoc_files: []
|
62
|
+
files:
|
63
|
+
- .gitignore
|
64
|
+
- .gitmodules
|
65
|
+
- Gemfile
|
66
|
+
- LICENSE.txt
|
67
|
+
- README.md
|
68
|
+
- Rakefile
|
69
|
+
- app/assets/images/timeliner/timeline_century_tick.gif
|
70
|
+
- app/assets/images/timeliner/timeline_decade_tick.gif
|
71
|
+
- app/assets/javascripts/timeliner/timeliner.js
|
72
|
+
- app/assets/stylesheets/timeliner/responsive.css.erb
|
73
|
+
- app/assets/stylesheets/timeliner/screen.css.erb
|
74
|
+
- lib/timeliner_rails.rb
|
75
|
+
- lib/timeliner_rails/version.rb
|
76
|
+
- timeliner_rails.gemspec
|
77
|
+
homepage: http://github.com/luisalima/timeliner_rails
|
78
|
+
licenses:
|
79
|
+
- MIT
|
80
|
+
metadata: {}
|
81
|
+
post_install_message:
|
82
|
+
rdoc_options: []
|
83
|
+
require_paths:
|
84
|
+
- lib
|
85
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ! '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ! '>='
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
95
|
+
requirements: []
|
96
|
+
rubyforge_project:
|
97
|
+
rubygems_version: 2.2.0
|
98
|
+
signing_key:
|
99
|
+
specification_version: 4
|
100
|
+
summary: This gem packages the Timeliner.js assets (javascripts, stylesheets, and
|
101
|
+
images) for the Rails 3.1+ asset pipeline.
|
102
|
+
test_files: []
|
103
|
+
has_rdoc:
|