sports_db 0.0.9 → 0.0.13
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/app/assets/stylesheets/_base.css.scss +1 -48
- data/app/views/layouts/application.html.erb +36 -14
- data/lib/sports_db/twitter_builder.rb +77 -65
- data/lib/sports_db/version.rb +1 -1
- metadata +46 -64
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
height: 100%;
|
1
|
+
body {
|
3
2
|
background-color: $page_bg;
|
4
3
|
}
|
5
4
|
* {
|
@@ -23,49 +22,3 @@ body.ios {
|
|
23
22
|
body.android {
|
24
23
|
font-family: sans-serif;
|
25
24
|
}
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
// Default
|
30
|
-
html { font-size: 10px; }
|
31
|
-
// 480 wide
|
32
|
-
@media (min-width: 460px) and (-webkit-min-device-pixel-ratio: 1.5) {
|
33
|
-
html { font-size: 15px; }
|
34
|
-
}
|
35
|
-
// 540 wide
|
36
|
-
@media (min-width: 520px) and (-webkit-min-device-pixel-ratio: 1.5) {
|
37
|
-
html { font-size: 16.875px; }
|
38
|
-
}
|
39
|
-
// 600 wide
|
40
|
-
@media (min-width: 580px) and (-webkit-min-device-pixel-ratio: 1.5) {
|
41
|
-
html { font-size: 18.75px; }
|
42
|
-
}
|
43
|
-
// 720 wide
|
44
|
-
@media (min-width: 700px) and (-webkit-min-device-pixel-ratio: 1.5) {
|
45
|
-
html { font-size: 22.5px; }
|
46
|
-
}
|
47
|
-
// Nexus 4, 768 wide
|
48
|
-
@media (min-width: 748px) and (-webkit-min-device-pixel-ratio: 1.5) {
|
49
|
-
html { font-size: 24px; }
|
50
|
-
}
|
51
|
-
// 800 wide
|
52
|
-
@media (min-width: 780px) and (-webkit-min-device-pixel-ratio: 1.5) {
|
53
|
-
html { font-size: 25px; }
|
54
|
-
}
|
55
|
-
// Nexus 7 (has a device pixel ratio of ~1.32)
|
56
|
-
@media (min-width: 780px) and (-webkit-min-device-pixel-ratio: 1.32) {
|
57
|
-
html { font-size: 25px; }
|
58
|
-
}
|
59
|
-
// iPads
|
60
|
-
// The device-height is reqd in order to differenciate from 768px wide devices (Nexus 4, etc.)
|
61
|
-
@media
|
62
|
-
(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 1),
|
63
|
-
(device-width: 1024px) and (device-height: 768px) and (-webkit-device-pixel-ratio: 1),
|
64
|
-
(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2),
|
65
|
-
(device-width: 1024px) and (device-height: 768px) and (-webkit-device-pixel-ratio: 2) {
|
66
|
-
html { font-size: 10px; }
|
67
|
-
}
|
68
|
-
// for bug 21664 (see base.js)
|
69
|
-
html.kindle {
|
70
|
-
font-size: 18.75px;
|
71
|
-
}
|
@@ -3,31 +3,53 @@
|
|
3
3
|
<head>
|
4
4
|
<title><%= CONFIG.app_path.downcase %></title>
|
5
5
|
<meta id="meta_viewport" name="viewport" content="user-scalable=no, initial-scale=1, target-densityDpi=device-dpi">
|
6
|
-
<%= stylesheet_link_tag "/#{CONFIG.app_path.downcase}/assets/application" %>
|
7
6
|
<script>
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
// Set the base font size for the rem-based layout and type sizing.
|
8
|
+
(function() {
|
9
|
+
var isAndroid = navigator.userAgent.match(/android/i);
|
10
|
+
var fontSize = 10; // iOS uses 10 as the base font size.
|
11
|
+
|
12
|
+
// Get the base font size for Android
|
13
|
+
if (isAndroid) {
|
14
|
+
var obj = {};
|
15
|
+
document.location.search.substring(1).split('&').forEach(function(keyValue) {
|
16
|
+
var pair = keyValue.split('=');
|
17
|
+
var key = decodeURIComponent(pair[0]).replace(/\+/g, ' ');
|
18
|
+
var value = decodeURIComponent(pair[1]).replace(/\+/g, ' ');
|
19
|
+
obj[key] = value;
|
20
|
+
});
|
21
|
+
|
22
|
+
obj.deviceWidth = obj.dw || screen.width;
|
23
|
+
|
24
|
+
if (navigator.userAgent.match(/android/i)) {
|
25
|
+
fontSize = (obj.deviceWidth / 320) * 10;
|
26
|
+
}
|
11
27
|
}
|
28
|
+
|
29
|
+
// Set the base font size
|
30
|
+
document.documentElement.style.fontSize = fontSize + 'px';
|
31
|
+
})()
|
12
32
|
</script>
|
33
|
+
<%= stylesheet_link_tag "application" %>
|
13
34
|
</head>
|
14
35
|
<body>
|
15
36
|
<%= yield %>
|
16
|
-
<loading id="loading" style="display:
|
17
|
-
<div id="flash" style="display:
|
18
|
-
<div id="buffer" style="display:
|
19
|
-
<div id="tmp" style="display:
|
20
|
-
<%= javascript_include_tag "
|
37
|
+
<loading id="loading" style="display:none"><loading_text id="loading_text">Loading…</loading_text></loading>
|
38
|
+
<div id="flash" style="display:none"></div>
|
39
|
+
<div id="buffer" style="display:none"></div>
|
40
|
+
<div id="tmp" style="display:none"></div>
|
41
|
+
<%= javascript_include_tag "application" %>
|
21
42
|
<%# Allows us to use mock on test or production without screwing up caching of page. %>
|
22
43
|
<script>
|
23
44
|
if (Application.params.mock) {
|
24
|
-
document.write("<link rel='stylesheet' href='/<%= CONFIG.app_path %>/assets/mock.css'>");
|
25
|
-
document.write("<script src='/<%= CONFIG.app_path %>/assets/core/Mock.js'><\/script>");
|
45
|
+
document.write("<link rel='stylesheet' href='/<%= CONFIG.app_path %>/cache/<%= CONFIG.app_path %>/assets/mock.css'>");
|
46
|
+
document.write("<script src='/<%= CONFIG.app_path %>/cache/<%= CONFIG.app_path %>/assets/core/Mock.js'><\/script>");
|
26
47
|
}
|
27
48
|
</script>
|
28
|
-
|
29
|
-
|
30
|
-
<
|
49
|
+
<%# turn on mock automatically if using localhost or pow %>
|
50
|
+
<% if request.host == 'localhost' || request.host.include?(".dev") %>
|
51
|
+
<link rel='stylesheet' href='/<%= CONFIG.app_path %>/cache/<%= CONFIG.app_path %>/assets/mock.css'>
|
52
|
+
<script src='/<%= CONFIG.app_path %>/cache/<%= CONFIG.app_path %>/assets/core/Mock.js'></script>
|
31
53
|
<% end %>
|
32
54
|
</body>
|
33
55
|
</html>
|
@@ -1,61 +1,67 @@
|
|
1
1
|
module SportsDb
|
2
|
-
class TwitterBuilder
|
3
|
-
|
2
|
+
class TwitterBuilder
|
3
|
+
|
4
4
|
def self.update_twitter
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
5
|
+
new_tweets = []
|
6
|
+
|
7
|
+
config = SimpleConfig.for(:feeds)
|
8
|
+
config.twitter_feeds.each do |feed_title, url|
|
9
|
+
parse_feed(new_tweets, url, feed_title)
|
10
|
+
end
|
11
|
+
|
12
|
+
Twitter.transaction do
|
13
13
|
Twitter.delete_all()
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
14
|
+
new_tweets.each {|t| t.save}
|
15
|
+
p "Tweets saved: #{new_tweets.length}"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.update_ncaa_twitter
|
20
20
|
new_tweets = []
|
21
|
-
|
21
|
+
|
22
22
|
config = SimpleConfig.for(:feeds)
|
23
|
-
config.twitter_feeds.each do |feed_title, url|
|
23
|
+
config.twitter_feeds.each do |feed_title, url|
|
24
24
|
parse_feed(new_tweets, url, feed_title)
|
25
25
|
end
|
26
|
-
|
27
|
-
ExternalFeed.find(:all, :conditions => ["content_type = ? and provider = ?", "twitter", "Sporting News"]).each do |feed_obj|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
26
|
+
|
27
|
+
ExternalFeed.find(:all, :conditions => ["content_type = ? and provider = ?", "twitter", "Sporting News"]).each do |feed_obj|
|
28
|
+
feed_url = feed_obj.woven_feed_url
|
29
|
+
if SimpleConfig.for(:application).woven_feed_server != "woven.zumobi.net"
|
30
|
+
feed_url = feed_url.gsub("woven.zumobi.net", SimpleConfig.for(:application).woven_feed_server)
|
31
|
+
end
|
32
|
+
|
33
|
+
begin
|
34
|
+
team_obj = Team.find_by_id!(feed_obj.team_id)
|
35
|
+
feed_name = (team_obj.nil? ? "Unknown" : team_obj.city_name)
|
36
|
+
parse_feed(new_tweets, feed_url, feed_name, feed_obj.team_id)
|
37
|
+
|
38
|
+
rescue ActiveRecord::RecordNotFound
|
39
|
+
p "--- Couldn't update feed, no matching team: #{feed_url}"
|
40
|
+
end
|
36
41
|
end
|
37
|
-
|
42
|
+
|
38
43
|
Twitter.transaction do
|
39
44
|
Twitter.delete_all()
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
45
|
+
new_tweets.each {|t| t.save}
|
46
|
+
p "Tweets saved: #{new_tweets.length}"
|
47
|
+
end
|
48
|
+
|
44
49
|
rescue Exception => e
|
45
50
|
Zumobi::ExceptionHandler.error e
|
46
51
|
end
|
47
52
|
|
48
53
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
54
|
+
def self.parse_feed(new_tweets, url, feed_title, team_id=nil)
|
55
|
+
require 'open-uri'
|
56
|
+
p "Twitter - #{feed_title} - #{url}"
|
57
|
+
|
53
58
|
begin
|
54
59
|
open(url) do |file|
|
55
60
|
doc = Nokogiri::XML(file.read)
|
56
61
|
source = doc.xpath('/rss/channel/title').text
|
62
|
+
source = adjust_titles(source)
|
63
|
+
# this has to come after adjust_titles or it gomers it all up
|
57
64
|
source = source.gsub('Twitter', '').strip
|
58
|
-
source = title_changes(source)
|
59
65
|
|
60
66
|
if !doc.nil? && !source.nil?
|
61
67
|
doc.xpath('//item').each do |node|
|
@@ -71,15 +77,15 @@ class TwitterBuilder
|
|
71
77
|
t.contents = t.title
|
72
78
|
|
73
79
|
team_key = team_mapping(t.source)
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
elsif !Team.find_by_key(team_key).blank?
|
79
|
-
|
80
|
-
|
80
|
+
|
81
|
+
if !team_key.blank?
|
82
|
+
if Team.column_names.include?("tsn_key") && !Team.find_by_tsn_key(team_key).blank?
|
83
|
+
t.team_id = Team.find_by_tsn_key(team_key).id
|
84
|
+
elsif !Team.find_by_key(team_key).blank?
|
85
|
+
t.team_id = Team.find_by_key(team_key).id
|
86
|
+
end
|
81
87
|
end
|
82
|
-
|
88
|
+
|
83
89
|
new_tweets << t
|
84
90
|
end
|
85
91
|
end
|
@@ -87,34 +93,40 @@ class TwitterBuilder
|
|
87
93
|
rescue OpenURI::HTTPError => http_e
|
88
94
|
p 'unable to retrieve feed'
|
89
95
|
rescue EOFError
|
90
|
-
|
96
|
+
p 'connection error'
|
91
97
|
rescue Errno::ECONNRESET
|
92
|
-
|
98
|
+
p 'connection error'
|
93
99
|
rescue Errno::ECONNREFUSED
|
94
|
-
|
95
|
-
end
|
100
|
+
p 'connection error'
|
101
|
+
end
|
96
102
|
rescue Exception => e
|
97
103
|
Zumobi::ExceptionHandler.error e
|
98
104
|
end
|
99
105
|
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
106
|
+
# Adjust the title for a couple of feeds.
|
107
|
+
# Return the original title if it doesn't
|
108
|
+
# need to be adjusted.
|
109
|
+
def self.adjust_titles(title)
|
110
|
+
if title == 'Official NFL Twitter Feed'
|
111
|
+
return 'NFL'
|
112
|
+
elsif title == 'The Trenches Twitter'
|
113
|
+
return 'The Trenches'
|
114
|
+
else
|
115
|
+
return title
|
116
|
+
end
|
105
117
|
end
|
106
|
-
|
118
|
+
|
107
119
|
def self.add_hash_highlight(str)
|
108
120
|
formatted_text = []
|
109
121
|
each_word = str.split(' ')
|
110
|
-
each_word.each do |word|
|
122
|
+
each_word.each do |word|
|
111
123
|
if word[0,7] == "http://"
|
112
124
|
new_word = "<a href='#{word}'>#{word}</a>"
|
113
125
|
formatted_text << new_word
|
114
126
|
elsif word.include? "http://"
|
115
127
|
phrase = word
|
116
128
|
pieces = word.split("http://")
|
117
|
-
|
129
|
+
|
118
130
|
phrase = "#{pieces[0]} <a href='http://#{pieces[1]}'>http://#{pieces[1]}</a>"
|
119
131
|
formatted_text << phrase
|
120
132
|
else
|
@@ -156,7 +168,7 @@ class TwitterBuilder
|
|
156
168
|
'Carolina Panthers' => 'l.nfl.com-t.29',
|
157
169
|
'New Orleans Saints' => 'l.nfl.com-t.30',
|
158
170
|
'Tampa Bay Bucs' => 'l.nfl.com-t.26',
|
159
|
-
'Arizona Diamondbacks' => 'l.mlb.com-t.26',
|
171
|
+
'Arizona Diamondbacks' => 'l.mlb.com-t.26',
|
160
172
|
'Atlanta Braves' => 'l.mlb.com-t.15',
|
161
173
|
'Baltimore Orioles' => 'l.mlb.com-t.1',
|
162
174
|
'Boston Red Sox' => 'l.mlb.com-t.2',
|
@@ -168,7 +180,7 @@ class TwitterBuilder
|
|
168
180
|
'Detroit Tigers' => 'l.mlb.com-t.8',
|
169
181
|
'Miami Marlins' => 'l.mlb.com-t.16',
|
170
182
|
'Houston Astros' => 'l.mlb.com-t.22',
|
171
|
-
'Kansas City Royals' => 'l.mlb.com-t.9',
|
183
|
+
'Kansas City Royals' => 'l.mlb.com-t.9',
|
172
184
|
'Los Angeles Angels' => 'l.mlb.com-t.11',
|
173
185
|
'Los Angeles Dodgers' => 'l.mlb.com-t.28',
|
174
186
|
'Milwaukee Brewers' => 'l.mlb.com-t.23',
|
@@ -177,7 +189,7 @@ class TwitterBuilder
|
|
177
189
|
'New York Yankees' => 'l.mlb.com-t.3',
|
178
190
|
'Oakland Athletics' => 'l.mlb.com-t.12',
|
179
191
|
'Philadelphia Phillies' => 'l.mlb.com-t.19',
|
180
|
-
'Pittsburgh Pirates' => 'l.mlb.com-t.24',
|
192
|
+
'Pittsburgh Pirates' => 'l.mlb.com-t.24',
|
181
193
|
'San Diego Padres' => 'l.mlb.com-t.29',
|
182
194
|
'San Francisco Giants' => 'l.mlb.com-t.30',
|
183
195
|
'Seattle Mariners' => 'l.mlb.com-t.13',
|
@@ -186,7 +198,7 @@ class TwitterBuilder
|
|
186
198
|
'Texas Rangers' => 'l.mlb.com-t.14',
|
187
199
|
'Toronto Blue Jays' => 'l.mlb.com-t.5',
|
188
200
|
'Washington Nationals' => 'l.mlb.com-t.17',
|
189
|
-
'Boston Celtics' => 'l.nba.com-t.1',
|
201
|
+
'Boston Celtics' => 'l.nba.com-t.1',
|
190
202
|
'Brooklyn Nets' => 'l.nba.com-t.3',
|
191
203
|
'New York Knicks' => 'l.nba.com-t.4',
|
192
204
|
'Philadelphia 76ers' => 'l.nba.com-t.6',
|
@@ -199,7 +211,7 @@ class TwitterBuilder
|
|
199
211
|
'Atlanta Hawks' => 'l.nba.com-t.8',
|
200
212
|
'Charlotte Bobcats' => 'l.nba.com-t.32',
|
201
213
|
'Miami Heat' => 'l.nba.com-t.2',
|
202
|
-
'Orlando Magic' => 'l.nba.com-t.5',
|
214
|
+
'Orlando Magic' => 'l.nba.com-t.5',
|
203
215
|
'Washington Wizards' => 'l.nba.com-t.7',
|
204
216
|
'Denver Nuggets' => 'l.nba.com-t.17',
|
205
217
|
'Minnesota Timberwolves' => 'l.nba.com-t.20',
|
@@ -208,7 +220,7 @@ class TwitterBuilder
|
|
208
220
|
'Utah Jazz' => 'l.nba.com-t.22',
|
209
221
|
'Golden State Warriors' => 'l.nba.com-t.23',
|
210
222
|
'Los Angeles Clippers' => 'l.nba.com-t.24',
|
211
|
-
'Los Angeles Lakers' => 'l.nba.com-t.25',
|
223
|
+
'Los Angeles Lakers' => 'l.nba.com-t.25',
|
212
224
|
'Phoenix Suns' => 'l.nba.com-t.26',
|
213
225
|
'Sacramento Kings' => 'l.nba.com-t.28',
|
214
226
|
'Dallas Mavericks' => 'l.nba.com-t.16',
|
@@ -221,4 +233,4 @@ class TwitterBuilder
|
|
221
233
|
end
|
222
234
|
|
223
235
|
end
|
224
|
-
end
|
236
|
+
end
|
data/lib/sports_db/version.rb
CHANGED
metadata
CHANGED
@@ -1,63 +1,55 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: sports_db
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.13
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 9
|
10
|
-
version: 0.0.9
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Alx Dark
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2013-05-31 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: rails
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
18
|
+
requirements:
|
27
19
|
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 21
|
30
|
-
segments:
|
31
|
-
- 3
|
32
|
-
- 2
|
33
|
-
- 13
|
20
|
+
- !ruby/object:Gem::Version
|
34
21
|
version: 3.2.13
|
35
22
|
type: :runtime
|
36
|
-
version_requirements: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: sqlite3
|
39
23
|
prerelease: false
|
40
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.2.13
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: sqlite3
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
41
33
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
|
46
|
-
segments:
|
47
|
-
- 0
|
48
|
-
version: "0"
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
49
38
|
type: :development
|
50
|
-
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
51
46
|
description: Shared code for the Zumobi sports applications
|
52
|
-
email:
|
53
|
-
- "alx.dark@zumobi.com\t"
|
47
|
+
email:
|
48
|
+
- ! "alx.dark@zumobi.com\t"
|
54
49
|
executables: []
|
55
|
-
|
56
50
|
extensions: []
|
57
|
-
|
58
51
|
extra_rdoc_files: []
|
59
|
-
|
60
|
-
files:
|
52
|
+
files:
|
61
53
|
- app/assets/javascripts/clients/android/client.js
|
62
54
|
- app/assets/javascripts/clients/ios/client.js
|
63
55
|
- app/assets/javascripts/core/Application.js
|
@@ -170,41 +162,31 @@ files:
|
|
170
162
|
- test/dummy/script/rails
|
171
163
|
- test/sports_db_test.rb
|
172
164
|
- test/test_helper.rb
|
173
|
-
has_rdoc: true
|
174
165
|
homepage: http://www.zumobi.com/
|
175
166
|
licenses: []
|
176
|
-
|
177
167
|
post_install_message:
|
178
168
|
rdoc_options: []
|
179
|
-
|
180
|
-
require_paths:
|
169
|
+
require_paths:
|
181
170
|
- lib
|
182
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
171
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
183
172
|
none: false
|
184
|
-
requirements:
|
185
|
-
- -
|
186
|
-
- !ruby/object:Gem::Version
|
187
|
-
|
188
|
-
|
189
|
-
- 0
|
190
|
-
version: "0"
|
191
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
|
+
requirements:
|
174
|
+
- - ! '>='
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: '0'
|
177
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
192
178
|
none: false
|
193
|
-
requirements:
|
194
|
-
- -
|
195
|
-
- !ruby/object:Gem::Version
|
196
|
-
|
197
|
-
segments:
|
198
|
-
- 0
|
199
|
-
version: "0"
|
179
|
+
requirements:
|
180
|
+
- - ! '>='
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '0'
|
200
183
|
requirements: []
|
201
|
-
|
202
184
|
rubyforge_project:
|
203
|
-
rubygems_version: 1.
|
185
|
+
rubygems_version: 1.8.23
|
204
186
|
signing_key:
|
205
187
|
specification_version: 3
|
206
188
|
summary: Shared code for the Zumobi sports applications
|
207
|
-
test_files:
|
189
|
+
test_files:
|
208
190
|
- test/dummy/app/assets/javascripts/application.js
|
209
191
|
- test/dummy/app/assets/stylesheets/application.css
|
210
192
|
- test/dummy/app/controllers/application_controller.rb
|