sports_db 0.0.13 → 0.1.0
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 +48 -1
- data/app/views/layouts/application.html.erb +14 -36
- data/lib/sports_db/twitter_builder.rb +65 -77
- data/lib/sports_db/version.rb +1 -1
- metadata +64 -46
@@ -1,4 +1,5 @@
|
|
1
|
-
body {
|
1
|
+
html,body {
|
2
|
+
height: 100%;
|
2
3
|
background-color: $page_bg;
|
3
4
|
}
|
4
5
|
* {
|
@@ -22,3 +23,49 @@ body.ios {
|
|
22
23
|
body.android {
|
23
24
|
font-family: sans-serif;
|
24
25
|
}
|
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,53 +3,31 @@
|
|
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}/cache/#{CONFIG.app_path.downcase}/assets/application" %>
|
6
7
|
<script>
|
7
|
-
|
8
|
-
|
9
|
-
|
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
|
-
}
|
8
|
+
// FIXED FB#21664.
|
9
|
+
if (navigator.userAgent.match(/Kindle/i)) {
|
10
|
+
document.documentElement.className += ' ' + 'kindle';
|
27
11
|
}
|
28
|
-
|
29
|
-
// Set the base font size
|
30
|
-
document.documentElement.style.fontSize = fontSize + 'px';
|
31
|
-
})()
|
32
12
|
</script>
|
33
|
-
<%= stylesheet_link_tag "application" %>
|
34
13
|
</head>
|
35
14
|
<body>
|
36
15
|
<%= yield %>
|
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" %>
|
16
|
+
<loading id="loading" style="display: none;"><loading_text id="loading_text">Loading…</loading_text></loading>
|
17
|
+
<div id="flash" style="display: none;"></div>
|
18
|
+
<div id="buffer" style="display: none;"></div>
|
19
|
+
<div id="tmp" style="display: none;"></div>
|
20
|
+
<%= javascript_include_tag "/#{CONFIG.app_path.downcase}/cache/#{CONFIG.app_path.downcase}/assets/application" %>
|
42
21
|
<%# Allows us to use mock on test or production without screwing up caching of page. %>
|
43
22
|
<script>
|
44
23
|
if (Application.params.mock) {
|
45
|
-
document.write("<link rel='stylesheet' href='/<%= CONFIG.app_path %>/
|
46
|
-
document.write("<script src='/<%= CONFIG.app_path %>/
|
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>");
|
47
26
|
}
|
48
27
|
</script>
|
49
|
-
|
50
|
-
|
51
|
-
<
|
52
|
-
<script src='/<%= CONFIG.app_path %>/cache/<%= CONFIG.app_path %>/assets/core/Mock.js'></script>
|
28
|
+
<% if request.host == 'localhost' %>
|
29
|
+
<link rel='stylesheet' href='/<%= CONFIG.app_path %>/assets/mock.css'>
|
30
|
+
<script src='/<%= CONFIG.app_path %>/assets/core/Mock.js'></script>
|
53
31
|
<% end %>
|
54
32
|
</body>
|
55
33
|
</html>
|
@@ -1,67 +1,61 @@
|
|
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
|
-
|
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
|
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
|
+
team_obj = Team.find(feed_obj.team_id)
|
34
|
+
feed_name = (team_obj.nil? ? "Unknown" : team_obj.city_name)
|
35
|
+
parse_feed(new_tweets, feed_url, feed_name, feed_obj.team_id)
|
41
36
|
end
|
42
|
-
|
37
|
+
|
43
38
|
Twitter.transaction do
|
44
39
|
Twitter.delete_all()
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
40
|
+
new_tweets.each {|t| t.save}
|
41
|
+
p "Tweets saved: #{new_tweets.length}"
|
42
|
+
end
|
43
|
+
|
49
44
|
rescue Exception => e
|
50
45
|
Zumobi::ExceptionHandler.error e
|
51
46
|
end
|
52
47
|
|
53
48
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
49
|
+
def self.parse_feed(new_tweets, url, feed_title, team_id=nil)
|
50
|
+
require 'open-uri'
|
51
|
+
p "Twitter - #{feed_title} - #{url}"
|
52
|
+
|
58
53
|
begin
|
59
54
|
open(url) do |file|
|
60
55
|
doc = Nokogiri::XML(file.read)
|
61
56
|
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
|
64
57
|
source = source.gsub('Twitter', '').strip
|
58
|
+
source = title_changes(source)
|
65
59
|
|
66
60
|
if !doc.nil? && !source.nil?
|
67
61
|
doc.xpath('//item').each do |node|
|
@@ -77,15 +71,15 @@ class TwitterBuilder
|
|
77
71
|
t.contents = t.title
|
78
72
|
|
79
73
|
team_key = team_mapping(t.source)
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
elsif !Team.find_by_key(team_key).blank?
|
85
|
-
|
86
|
-
|
74
|
+
|
75
|
+
if !team_key.blank?
|
76
|
+
if Team.column_names.include?("tsn_key") && !Team.find_by_tsn_key(team_key).blank?
|
77
|
+
t.team_id = Team.find_by_tsn_key(team_key).id
|
78
|
+
elsif !Team.find_by_key(team_key).blank?
|
79
|
+
t.team_id = Team.find_by_key(team_key).id
|
80
|
+
end
|
87
81
|
end
|
88
|
-
|
82
|
+
|
89
83
|
new_tweets << t
|
90
84
|
end
|
91
85
|
end
|
@@ -93,40 +87,34 @@ class TwitterBuilder
|
|
93
87
|
rescue OpenURI::HTTPError => http_e
|
94
88
|
p 'unable to retrieve feed'
|
95
89
|
rescue EOFError
|
96
|
-
|
90
|
+
p 'connection error'
|
97
91
|
rescue Errno::ECONNRESET
|
98
|
-
|
92
|
+
p 'connection error'
|
99
93
|
rescue Errno::ECONNREFUSED
|
100
|
-
|
101
|
-
end
|
94
|
+
p 'connection error'
|
95
|
+
end
|
102
96
|
rescue Exception => e
|
103
97
|
Zumobi::ExceptionHandler.error e
|
104
98
|
end
|
105
99
|
|
106
|
-
|
107
|
-
|
108
|
-
|
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
|
117
|
-
end
|
100
|
+
def self.title_changes(source)
|
101
|
+
titles = {'Official NFL Twitter Feed' => 'NFL',
|
102
|
+
'The Trenches Twitter' => 'The Trenches'}
|
118
103
|
|
104
|
+
return (titles[source].nil?) ? source : titles[source]
|
105
|
+
end
|
106
|
+
|
119
107
|
def self.add_hash_highlight(str)
|
120
108
|
formatted_text = []
|
121
109
|
each_word = str.split(' ')
|
122
|
-
each_word.each do |word|
|
110
|
+
each_word.each do |word|
|
123
111
|
if word[0,7] == "http://"
|
124
112
|
new_word = "<a href='#{word}'>#{word}</a>"
|
125
113
|
formatted_text << new_word
|
126
114
|
elsif word.include? "http://"
|
127
115
|
phrase = word
|
128
116
|
pieces = word.split("http://")
|
129
|
-
|
117
|
+
|
130
118
|
phrase = "#{pieces[0]} <a href='http://#{pieces[1]}'>http://#{pieces[1]}</a>"
|
131
119
|
formatted_text << phrase
|
132
120
|
else
|
@@ -168,7 +156,7 @@ class TwitterBuilder
|
|
168
156
|
'Carolina Panthers' => 'l.nfl.com-t.29',
|
169
157
|
'New Orleans Saints' => 'l.nfl.com-t.30',
|
170
158
|
'Tampa Bay Bucs' => 'l.nfl.com-t.26',
|
171
|
-
'Arizona Diamondbacks' => 'l.mlb.com-t.26',
|
159
|
+
'Arizona Diamondbacks' => 'l.mlb.com-t.26',
|
172
160
|
'Atlanta Braves' => 'l.mlb.com-t.15',
|
173
161
|
'Baltimore Orioles' => 'l.mlb.com-t.1',
|
174
162
|
'Boston Red Sox' => 'l.mlb.com-t.2',
|
@@ -180,7 +168,7 @@ class TwitterBuilder
|
|
180
168
|
'Detroit Tigers' => 'l.mlb.com-t.8',
|
181
169
|
'Miami Marlins' => 'l.mlb.com-t.16',
|
182
170
|
'Houston Astros' => 'l.mlb.com-t.22',
|
183
|
-
'Kansas City Royals' => 'l.mlb.com-t.9',
|
171
|
+
'Kansas City Royals' => 'l.mlb.com-t.9',
|
184
172
|
'Los Angeles Angels' => 'l.mlb.com-t.11',
|
185
173
|
'Los Angeles Dodgers' => 'l.mlb.com-t.28',
|
186
174
|
'Milwaukee Brewers' => 'l.mlb.com-t.23',
|
@@ -189,7 +177,7 @@ class TwitterBuilder
|
|
189
177
|
'New York Yankees' => 'l.mlb.com-t.3',
|
190
178
|
'Oakland Athletics' => 'l.mlb.com-t.12',
|
191
179
|
'Philadelphia Phillies' => 'l.mlb.com-t.19',
|
192
|
-
'Pittsburgh Pirates' => 'l.mlb.com-t.24',
|
180
|
+
'Pittsburgh Pirates' => 'l.mlb.com-t.24',
|
193
181
|
'San Diego Padres' => 'l.mlb.com-t.29',
|
194
182
|
'San Francisco Giants' => 'l.mlb.com-t.30',
|
195
183
|
'Seattle Mariners' => 'l.mlb.com-t.13',
|
@@ -198,7 +186,7 @@ class TwitterBuilder
|
|
198
186
|
'Texas Rangers' => 'l.mlb.com-t.14',
|
199
187
|
'Toronto Blue Jays' => 'l.mlb.com-t.5',
|
200
188
|
'Washington Nationals' => 'l.mlb.com-t.17',
|
201
|
-
'Boston Celtics' => 'l.nba.com-t.1',
|
189
|
+
'Boston Celtics' => 'l.nba.com-t.1',
|
202
190
|
'Brooklyn Nets' => 'l.nba.com-t.3',
|
203
191
|
'New York Knicks' => 'l.nba.com-t.4',
|
204
192
|
'Philadelphia 76ers' => 'l.nba.com-t.6',
|
@@ -211,7 +199,7 @@ class TwitterBuilder
|
|
211
199
|
'Atlanta Hawks' => 'l.nba.com-t.8',
|
212
200
|
'Charlotte Bobcats' => 'l.nba.com-t.32',
|
213
201
|
'Miami Heat' => 'l.nba.com-t.2',
|
214
|
-
'Orlando Magic' => 'l.nba.com-t.5',
|
202
|
+
'Orlando Magic' => 'l.nba.com-t.5',
|
215
203
|
'Washington Wizards' => 'l.nba.com-t.7',
|
216
204
|
'Denver Nuggets' => 'l.nba.com-t.17',
|
217
205
|
'Minnesota Timberwolves' => 'l.nba.com-t.20',
|
@@ -220,7 +208,7 @@ class TwitterBuilder
|
|
220
208
|
'Utah Jazz' => 'l.nba.com-t.22',
|
221
209
|
'Golden State Warriors' => 'l.nba.com-t.23',
|
222
210
|
'Los Angeles Clippers' => 'l.nba.com-t.24',
|
223
|
-
'Los Angeles Lakers' => 'l.nba.com-t.25',
|
211
|
+
'Los Angeles Lakers' => 'l.nba.com-t.25',
|
224
212
|
'Phoenix Suns' => 'l.nba.com-t.26',
|
225
213
|
'Sacramento Kings' => 'l.nba.com-t.28',
|
226
214
|
'Dallas Mavericks' => 'l.nba.com-t.16',
|
@@ -233,4 +221,4 @@ class TwitterBuilder
|
|
233
221
|
end
|
234
222
|
|
235
223
|
end
|
236
|
-
end
|
224
|
+
end
|
data/lib/sports_db/version.rb
CHANGED
metadata
CHANGED
@@ -1,55 +1,63 @@
|
|
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
|
+
hash: 27
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
version: 0.1.0
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Alx Dark
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2013-05-16 00:00:00 -06:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
15
22
|
name: rails
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: 3.2.13
|
22
|
-
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
|
-
requirements:
|
26
|
+
requirements:
|
27
27
|
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 21
|
30
|
+
segments:
|
31
|
+
- 3
|
32
|
+
- 2
|
33
|
+
- 13
|
29
34
|
version: 3.2.13
|
30
|
-
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
31
38
|
name: sqlite3
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ! '>='
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: '0'
|
38
|
-
type: :development
|
39
39
|
prerelease: false
|
40
|
-
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 3
|
46
|
+
segments:
|
47
|
+
- 0
|
48
|
+
version: "0"
|
49
|
+
type: :development
|
50
|
+
version_requirements: *id002
|
46
51
|
description: Shared code for the Zumobi sports applications
|
47
|
-
email:
|
48
|
-
-
|
52
|
+
email:
|
53
|
+
- "alx.dark@zumobi.com\t"
|
49
54
|
executables: []
|
55
|
+
|
50
56
|
extensions: []
|
57
|
+
|
51
58
|
extra_rdoc_files: []
|
52
|
-
|
59
|
+
|
60
|
+
files:
|
53
61
|
- app/assets/javascripts/clients/android/client.js
|
54
62
|
- app/assets/javascripts/clients/ios/client.js
|
55
63
|
- app/assets/javascripts/core/Application.js
|
@@ -162,31 +170,41 @@ files:
|
|
162
170
|
- test/dummy/script/rails
|
163
171
|
- test/sports_db_test.rb
|
164
172
|
- test/test_helper.rb
|
173
|
+
has_rdoc: true
|
165
174
|
homepage: http://www.zumobi.com/
|
166
175
|
licenses: []
|
176
|
+
|
167
177
|
post_install_message:
|
168
178
|
rdoc_options: []
|
169
|
-
|
179
|
+
|
180
|
+
require_paths:
|
170
181
|
- lib
|
171
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
182
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
172
183
|
none: false
|
173
|
-
requirements:
|
174
|
-
- -
|
175
|
-
- !ruby/object:Gem::Version
|
176
|
-
|
177
|
-
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
hash: 3
|
188
|
+
segments:
|
189
|
+
- 0
|
190
|
+
version: "0"
|
191
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
178
192
|
none: false
|
179
|
-
requirements:
|
180
|
-
- -
|
181
|
-
- !ruby/object:Gem::Version
|
182
|
-
|
193
|
+
requirements:
|
194
|
+
- - ">="
|
195
|
+
- !ruby/object:Gem::Version
|
196
|
+
hash: 3
|
197
|
+
segments:
|
198
|
+
- 0
|
199
|
+
version: "0"
|
183
200
|
requirements: []
|
201
|
+
|
184
202
|
rubyforge_project:
|
185
|
-
rubygems_version: 1.
|
203
|
+
rubygems_version: 1.6.2
|
186
204
|
signing_key:
|
187
205
|
specification_version: 3
|
188
206
|
summary: Shared code for the Zumobi sports applications
|
189
|
-
test_files:
|
207
|
+
test_files:
|
190
208
|
- test/dummy/app/assets/javascripts/application.js
|
191
209
|
- test/dummy/app/assets/stylesheets/application.css
|
192
210
|
- test/dummy/app/controllers/application_controller.rb
|