nature 0.0.1
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 +7 -0
- data/nature +28 -0
- data/src/Combo.rb +2 -0
- data/src/Combos.rb +43 -0
- data/src/Fantasy.rb +173 -0
- data/src/Game.rb +2 -0
- data/src/MyClass.rb +15 -0
- data/src/ParseSchedule.rb +43 -0
- data/src/TallyGames.rb +27 -0
- data/src/Team.rb +9 -0
- data/src/Util.rb +17 -0
- data/src/glade/Combos.glade +118 -0
- data/src/glade/Fantasy.glade +289 -0
- data/src/glade/MyClass.glade +36 -0
- metadata +99 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 7f61559d6ac9da59f703d78c5ef139aacf14b8ad
|
4
|
+
data.tar.gz: e1c438707be57842e25f98779eb6df492c6ffff6
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ac1fc1ede8d932621e640539b69554d86102855aeacae3752f97edae27b4f2c0b73dfd50fa5002c6d8c49a76ed2a93a56ef96ad47381bf7e3a296f15046ae2d7
|
7
|
+
data.tar.gz: 6319a8899646765ac85257e3d107c445f8e995ee79d70c459fcc4eaa475664405fd4048b5a94df24ca068b2051a0bb63a240d107a3d4f3536fbf2e3c9814f39f
|
data/nature
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
require "active_record"
|
4
|
+
require "vrlib"
|
5
|
+
require "csv"
|
6
|
+
|
7
|
+
# from require_all gem:
|
8
|
+
require_rel 'src/'
|
9
|
+
require 'sqlite3'
|
10
|
+
|
11
|
+
ActiveRecord::Base.establish_connection(
|
12
|
+
:adapter => "sqlite3",
|
13
|
+
:database => File.expand_path("~/visualruby/nature/db/nature.sqlite3")
|
14
|
+
)
|
15
|
+
|
16
|
+
#Fantasy.fill_bye_week
|
17
|
+
#ParseSchedule.parse_teams
|
18
|
+
|
19
|
+
#ParseSchedule.parse(2017)
|
20
|
+
|
21
|
+
#TallyGames.fill_run_pts
|
22
|
+
|
23
|
+
# TallyGames.combo_run_pts("ATL", "HOU")
|
24
|
+
|
25
|
+
Fantasy.new.show_glade
|
26
|
+
|
27
|
+
# MyClass.new.show_glade()
|
28
|
+
|
data/src/Combo.rb
ADDED
data/src/Combos.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
|
2
|
+
class Combos
|
3
|
+
|
4
|
+
include GladeGUI
|
5
|
+
|
6
|
+
def initialize(parent)
|
7
|
+
@parent = parent
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
def before_show()
|
12
|
+
@view = VR::ListView.new(team1: String, team2: String, avg_run_pts: Float, avg_wr_pts: Float, avg_te_pts: Float, avg_qb_pts: Float)
|
13
|
+
@view.add_active_record_rows(Combo.all)
|
14
|
+
@view.col_sortable(true)
|
15
|
+
@view.show
|
16
|
+
@builder[:scrolledwindow1].add @view
|
17
|
+
end
|
18
|
+
|
19
|
+
def buttonFilter__clicked(button)
|
20
|
+
and_or = extract_key(button)
|
21
|
+
filter = @builder[:entryFilter].text.upcase.gsub(" ", "").split(",")
|
22
|
+
@view.model.clear
|
23
|
+
@view.hide
|
24
|
+
# rows = Combo.all.where("team1 IN (#{filter}) and team2 IN (#{filter})")
|
25
|
+
rows = Combo.where("team1 IN (?) #{and_or} team2 IN (?)", filter, filter)
|
26
|
+
if rows.count > 0
|
27
|
+
@view.add_active_record_rows(rows)
|
28
|
+
else
|
29
|
+
@view.add_active_record_rows(Combo.all)
|
30
|
+
end
|
31
|
+
@view.show
|
32
|
+
end
|
33
|
+
|
34
|
+
def view__row_activated(*args) # 3rd arg is VR::TreeViewColumn of clicked cell
|
35
|
+
return unless rows = @view.selected_rows
|
36
|
+
col = args[2].col_symbol.to_s
|
37
|
+
return unless col.start_with?("avg_")
|
38
|
+
col = col.split("_")[1]
|
39
|
+
row = rows[0]
|
40
|
+
@parent.combo_pts(row[0], row[1], col, true)
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
data/src/Fantasy.rb
ADDED
@@ -0,0 +1,173 @@
|
|
1
|
+
def r2(flot)
|
2
|
+
"%5.2f" % flot
|
3
|
+
end
|
4
|
+
|
5
|
+
class Fantasy
|
6
|
+
|
7
|
+
include GladeGUI
|
8
|
+
|
9
|
+
def before_show()
|
10
|
+
@avgs = {}
|
11
|
+
@avgs["run"] = 18.6
|
12
|
+
@avgs["wr"] = 22.7
|
13
|
+
@avgs["te"] = 7.5
|
14
|
+
@avgs["qb"] = 20
|
15
|
+
|
16
|
+
@avg_o = {}
|
17
|
+
@avg_o["run"] = 12.5
|
18
|
+
@avg_o["wr"] = 14.5
|
19
|
+
@avg_o["qb"] = 17.9
|
20
|
+
@avg_o["te"] = 8.6
|
21
|
+
|
22
|
+
|
23
|
+
@show = true
|
24
|
+
end
|
25
|
+
def buttonFillRunPts__clicked(*a)
|
26
|
+
@show = true
|
27
|
+
type = @builder[:type].active_text
|
28
|
+
home_advantage = @builder[:entryHomeFieldPts].text.to_f
|
29
|
+
o_factor = @builder[:entryOFactor].text.to_f
|
30
|
+
d_factor = @builder[:entryDFactor].text.to_f
|
31
|
+
count = 0
|
32
|
+
out "clear"
|
33
|
+
Game.all.each do |g|
|
34
|
+
home = Team.where(code: g.home).first
|
35
|
+
away = Team.where(code: g.away).first
|
36
|
+
home_o = home.read_attribute("#{type}_o")
|
37
|
+
away_o = away.read_attribute("#{type}_o")
|
38
|
+
home_d = home.read_attribute("#{type}_d")
|
39
|
+
away_d = away.read_attribute("#{type}_d")
|
40
|
+
|
41
|
+
home_d_factor = home_d/@avgs[type]
|
42
|
+
away_d_factor = away_d/@avgs[type]
|
43
|
+
|
44
|
+
home_pts = (@avg_o[type] + (o_factor * (home_o-@avg_o[type]))) * (away_d_factor) + home_advantage
|
45
|
+
away_pts = (@avg_o[type] + (o_factor * (away_o-@avg_o[type]))) * (home_d_factor) - home_advantage
|
46
|
+
|
47
|
+
g.send("home_#{type}_pts=", home_pts)
|
48
|
+
g.send("away_#{type}_pts=", away_pts)
|
49
|
+
# g.home_run_pts = (o_factor * home.run_o) + home_advantage + (d_factor * (away.run_d - 18.6))
|
50
|
+
# g.away_run_pts = (o_factor * away.run_o) - home_advantage + (d_factor * (home.run_d - 18.6))
|
51
|
+
#
|
52
|
+
|
53
|
+
|
54
|
+
out "#{g.away} @ #{g.home}"
|
55
|
+
out "#{g.home} #{type} offense = #{home_o}"
|
56
|
+
out "#{g.away} #{type} defense = #{r2(away_d)} (factor=#{r2(away_d_factor)})"
|
57
|
+
out "home total = #{r2(home_pts)}"
|
58
|
+
out "#{g.away} #{type} offense = #{away_o}"
|
59
|
+
out "#{g.home} #{type} defense = #{r2(home_d)} (factor=#{r2(home_d_factor)})"
|
60
|
+
out "away total = #{r2(away_pts)}\n"
|
61
|
+
count = count + 1
|
62
|
+
g.save!
|
63
|
+
# return if count > 5
|
64
|
+
end
|
65
|
+
out "Updated #{type} Points: Home = #{home_advantage.to_s} O Factor = #{o_factor.to_s} D Factor = #{d_factor}"
|
66
|
+
# @builder[:window1].show_all
|
67
|
+
end
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
def buttonComputeCombos__clicked(*a)
|
72
|
+
# Combo.destroy_all
|
73
|
+
out "clear"
|
74
|
+
type = @builder[:type].active_text
|
75
|
+
@teams = []
|
76
|
+
Team.all.each do |team1|
|
77
|
+
@teams << team1.code
|
78
|
+
end
|
79
|
+
@teams = @teams.sort
|
80
|
+
for i in 0..31 do
|
81
|
+
for j in (i+1)..31 do
|
82
|
+
combo_pts(@teams[i], @teams[j], type)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
out "Combos Updated"
|
86
|
+
end
|
87
|
+
|
88
|
+
def buttonShowCombos__clicked(*a)
|
89
|
+
Combos.new(self).show_glade
|
90
|
+
end
|
91
|
+
|
92
|
+
def buttonRunCombo__clicked(*a)
|
93
|
+
team1 = @builder[:entryTeam1].text
|
94
|
+
team2 = @builder[:entryTeam2].text
|
95
|
+
if team2 < team1
|
96
|
+
team1, team2 = team2, team1
|
97
|
+
end
|
98
|
+
out "clear"
|
99
|
+
type = @builder[:type].active_text
|
100
|
+
combo_pts(team1, team2, type, true)
|
101
|
+
end
|
102
|
+
|
103
|
+
def combo_pts(team1,team2, type, show = false)
|
104
|
+
@show, @old_show = show, @show
|
105
|
+
tot1 = 0
|
106
|
+
tot2 = 0
|
107
|
+
tot_best = 0
|
108
|
+
tot_games = 0
|
109
|
+
out "clear" if show
|
110
|
+
out "#{type} Combos for #{team1} & #{team2}", true
|
111
|
+
for week in 1..16 do
|
112
|
+
best_pts = -99
|
113
|
+
best_team = "Error"
|
114
|
+
out "\nweek ##{week}"
|
115
|
+
clear_events
|
116
|
+
Game.where("(home = '#{team1}' or away = '#{team1}' or home = '#{team2}' or away = '#{team2}') and week = #{week}").each do |g|
|
117
|
+
home_pts = g.read_attribute("home_#{type}_pts")
|
118
|
+
away_pts = g.read_attribute("away_#{type}_pts")
|
119
|
+
if g.home == team1 or g.home == team2
|
120
|
+
out " #{g.away} @ #{g.home} => #{g.home} = #{r2(home_pts)}"
|
121
|
+
if home_pts > best_pts
|
122
|
+
best_pts = home_pts
|
123
|
+
best_team = g.home
|
124
|
+
end
|
125
|
+
end
|
126
|
+
if g.away == team1 or g.away == team2
|
127
|
+
out "#{g.away} @ #{g.home} => #{g.away} = #{r2(away_pts)}"
|
128
|
+
if away_pts > best_pts
|
129
|
+
best_pts = away_pts
|
130
|
+
best_team = g.away
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
if best_team != "Error"
|
135
|
+
out "best = #{best_team} (#{r2(best_pts)})"
|
136
|
+
tot_best = tot_best + best_pts
|
137
|
+
tot_games = tot_games + 1
|
138
|
+
end
|
139
|
+
end
|
140
|
+
out "\ntot games: #{tot_games} total: #{r2(tot_best)} avg: #{r2(tot_best/tot_games)}"
|
141
|
+
unless c = Combo.where("team1 = '#{team1}' and team2 = '#{team2}'").first
|
142
|
+
c = Combo.create
|
143
|
+
c.team1 = team1
|
144
|
+
c.team2 = team2
|
145
|
+
end
|
146
|
+
c.send("avg_#{type}_pts=", tot_best/tot_games)
|
147
|
+
c.save!
|
148
|
+
@show = @old_show
|
149
|
+
end
|
150
|
+
|
151
|
+
def out(str, show = @show)
|
152
|
+
if str == "clear"
|
153
|
+
@builder[:out].buffer.text = ""
|
154
|
+
elsif show
|
155
|
+
@builder[:out].buffer.text += str + "\n"
|
156
|
+
end
|
157
|
+
clear_events
|
158
|
+
end
|
159
|
+
|
160
|
+
def self.fill_bye_week()
|
161
|
+
Team.all.each do |t|
|
162
|
+
for week in 1..17
|
163
|
+
if Game.where("'#{t.code}' IN (home, away) AND week =#{week}").first
|
164
|
+
next
|
165
|
+
else
|
166
|
+
t.bye_week = week
|
167
|
+
t.save!
|
168
|
+
end
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
end
|
data/src/Game.rb
ADDED
data/src/MyClass.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
|
2
|
+
class ParseSchedule
|
3
|
+
|
4
|
+
def self.parse_teams
|
5
|
+
Team.delete_all
|
6
|
+
CSV.foreach("./data/teams.csv") do |row|
|
7
|
+
r = Team.create
|
8
|
+
r.name = row[1]
|
9
|
+
r.code = row[0]
|
10
|
+
r.save
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
# record format
|
15
|
+
# 5,Sun,October 9,1:00PM,Philadelphia Eagles,@,Detroit Lions,preview,,,,,,
|
16
|
+
def self.parse(season) #int
|
17
|
+
Game.destroy_all
|
18
|
+
CSV.foreach("./data/#{season.to_s}_schedule.csv") do |row|
|
19
|
+
week = row[0].to_i
|
20
|
+
@switch = row[5] == "@"
|
21
|
+
home = Team.get_code(@switch ? row[6] : row[4])
|
22
|
+
unless game = Game.where(week: week, home: home).first
|
23
|
+
game = Game.create
|
24
|
+
end
|
25
|
+
day = row[2]
|
26
|
+
year = day.include?("January") ? (season + 1) : season
|
27
|
+
date = Date.strptime("#{day}, #{year}", "%B %e, %Y")
|
28
|
+
# game.date = date
|
29
|
+
game.week = week
|
30
|
+
@switch = row[5] == "@"
|
31
|
+
game.home = Team.get_code(@switch ? row[6] : row[3])
|
32
|
+
game.away = Team.get_code(@switch ? row[3] : row[6])
|
33
|
+
# game.home_points = @switch ? row[9].to_i : row[8].to_i
|
34
|
+
# game.away_points = @switch ? row[8].to_i : row[9].to_i
|
35
|
+
# game.home_yards = @switch ? row[12].to_i : row[10].to_i
|
36
|
+
# game.away_yards = @switch ? row[10].to_i : row[12].to_i
|
37
|
+
# game.home_turnovers = @switch ? row[13].to_i : row[11].to_i
|
38
|
+
# game.away_turnovers = @switch ? row[11].to_i : row[13].to_i
|
39
|
+
# game.season = season
|
40
|
+
game.save!
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
data/src/TallyGames.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
class TallyGames
|
2
|
+
|
3
|
+
def self.fill_run_pts
|
4
|
+
home_advantage = 3
|
5
|
+
o_factor = 0
|
6
|
+
d_factor = 1
|
7
|
+
count = 0
|
8
|
+
Game.all.each do |g|
|
9
|
+
home = Team.where(code: g.home).first
|
10
|
+
away = Team.where(code: g.away).first
|
11
|
+
g.home_run_pts = (o_factor * home.run_o) + home_advantage + (d_factor * (away.run_d - 18.6))
|
12
|
+
g.away_run_pts = (o_factor * away.run_o) - home_advantage + (d_factor * (home.run_d - 18.6))
|
13
|
+
puts "#{g.away} @ #{g.home}"
|
14
|
+
puts "#{g.home} offense = #{home.run_o}"
|
15
|
+
puts "#{g.away} defense = #{away.run_d}"
|
16
|
+
puts "home total = #{g.home_run_pts}"
|
17
|
+
puts "#{g.away} offense = #{away.run_o}"
|
18
|
+
puts "#{g.home} defense = #{home.run_d}"
|
19
|
+
puts "away total = #{g.away_run_pts}"
|
20
|
+
count = count + 1
|
21
|
+
g.save!
|
22
|
+
# return if count > 100
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
end
|
data/src/Team.rb
ADDED
data/src/Util.rb
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!-- Generated with glade 3.16.1 -->
|
3
|
+
<interface>
|
4
|
+
<requires lib="gtk+" version="3.0"/>
|
5
|
+
<object class="GtkWindow" id="window1">
|
6
|
+
<property name="width_request">600</property>
|
7
|
+
<property name="height_request">600</property>
|
8
|
+
<property name="can_focus">False</property>
|
9
|
+
<property name="title" translatable="yes">Nature Boy</property>
|
10
|
+
<property name="window_position">center</property>
|
11
|
+
<property name="gravity">west</property>
|
12
|
+
<child>
|
13
|
+
<object class="GtkBox" id="box1">
|
14
|
+
<property name="visible">True</property>
|
15
|
+
<property name="can_focus">False</property>
|
16
|
+
<property name="margin_left">11</property>
|
17
|
+
<property name="margin_right">11</property>
|
18
|
+
<property name="margin_top">11</property>
|
19
|
+
<property name="margin_bottom">11</property>
|
20
|
+
<property name="orientation">vertical</property>
|
21
|
+
<property name="spacing">9</property>
|
22
|
+
<child>
|
23
|
+
<object class="GtkLabel" id="label1">
|
24
|
+
<property name="visible">True</property>
|
25
|
+
<property name="can_focus">False</property>
|
26
|
+
<property name="label" translatable="yes"><big><big><big>Team Combos</big></big></big></property>
|
27
|
+
<property name="use_markup">True</property>
|
28
|
+
</object>
|
29
|
+
<packing>
|
30
|
+
<property name="expand">False</property>
|
31
|
+
<property name="fill">True</property>
|
32
|
+
<property name="position">0</property>
|
33
|
+
</packing>
|
34
|
+
</child>
|
35
|
+
<child>
|
36
|
+
<object class="GtkScrolledWindow" id="scrolledwindow1">
|
37
|
+
<property name="visible">True</property>
|
38
|
+
<property name="can_focus">True</property>
|
39
|
+
<property name="shadow_type">in</property>
|
40
|
+
<child>
|
41
|
+
<placeholder/>
|
42
|
+
</child>
|
43
|
+
</object>
|
44
|
+
<packing>
|
45
|
+
<property name="expand">True</property>
|
46
|
+
<property name="fill">True</property>
|
47
|
+
<property name="position">1</property>
|
48
|
+
</packing>
|
49
|
+
</child>
|
50
|
+
<child>
|
51
|
+
<object class="GtkGrid" id="grid1">
|
52
|
+
<property name="visible">True</property>
|
53
|
+
<property name="can_focus">False</property>
|
54
|
+
<child>
|
55
|
+
<object class="GtkEntry" id="entryFilter">
|
56
|
+
<property name="visible">True</property>
|
57
|
+
<property name="can_focus">True</property>
|
58
|
+
<property name="hexpand">True</property>
|
59
|
+
</object>
|
60
|
+
<packing>
|
61
|
+
<property name="left_attach">0</property>
|
62
|
+
<property name="top_attach">0</property>
|
63
|
+
<property name="width">1</property>
|
64
|
+
<property name="height">1</property>
|
65
|
+
</packing>
|
66
|
+
</child>
|
67
|
+
<child>
|
68
|
+
<object class="GtkButtonBox" id="buttonbox1">
|
69
|
+
<property name="visible">True</property>
|
70
|
+
<property name="can_focus">False</property>
|
71
|
+
<property name="halign">end</property>
|
72
|
+
<property name="spacing">9</property>
|
73
|
+
<property name="layout_style">end</property>
|
74
|
+
<child>
|
75
|
+
<object class="GtkButton" id="buttonFilter[and]">
|
76
|
+
<property name="label" translatable="yes">And</property>
|
77
|
+
<property name="visible">True</property>
|
78
|
+
<property name="can_focus">True</property>
|
79
|
+
<property name="receives_default">True</property>
|
80
|
+
</object>
|
81
|
+
<packing>
|
82
|
+
<property name="expand">False</property>
|
83
|
+
<property name="fill">True</property>
|
84
|
+
<property name="position">0</property>
|
85
|
+
</packing>
|
86
|
+
</child>
|
87
|
+
<child>
|
88
|
+
<object class="GtkButton" id="buttonFilter[or]">
|
89
|
+
<property name="label" translatable="yes">Or</property>
|
90
|
+
<property name="visible">True</property>
|
91
|
+
<property name="can_focus">True</property>
|
92
|
+
<property name="receives_default">True</property>
|
93
|
+
</object>
|
94
|
+
<packing>
|
95
|
+
<property name="expand">False</property>
|
96
|
+
<property name="fill">True</property>
|
97
|
+
<property name="position">1</property>
|
98
|
+
</packing>
|
99
|
+
</child>
|
100
|
+
</object>
|
101
|
+
<packing>
|
102
|
+
<property name="left_attach">1</property>
|
103
|
+
<property name="top_attach">0</property>
|
104
|
+
<property name="width">1</property>
|
105
|
+
<property name="height">1</property>
|
106
|
+
</packing>
|
107
|
+
</child>
|
108
|
+
</object>
|
109
|
+
<packing>
|
110
|
+
<property name="expand">False</property>
|
111
|
+
<property name="fill">True</property>
|
112
|
+
<property name="position">2</property>
|
113
|
+
</packing>
|
114
|
+
</child>
|
115
|
+
</object>
|
116
|
+
</child>
|
117
|
+
</object>
|
118
|
+
</interface>
|
@@ -0,0 +1,289 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!-- Generated with glade 3.16.1 -->
|
3
|
+
<interface>
|
4
|
+
<requires lib="gtk+" version="3.0"/>
|
5
|
+
<object class="GtkWindow" id="window1">
|
6
|
+
<property name="can_focus">False</property>
|
7
|
+
<property name="title" translatable="yes">Nature Boy</property>
|
8
|
+
<property name="gravity">east</property>
|
9
|
+
<child>
|
10
|
+
<object class="GtkBox" id="box1">
|
11
|
+
<property name="visible">True</property>
|
12
|
+
<property name="can_focus">False</property>
|
13
|
+
<property name="valign">start</property>
|
14
|
+
<property name="margin_left">10</property>
|
15
|
+
<property name="margin_right">10</property>
|
16
|
+
<property name="margin_top">10</property>
|
17
|
+
<property name="margin_bottom">10</property>
|
18
|
+
<property name="vexpand">True</property>
|
19
|
+
<property name="orientation">vertical</property>
|
20
|
+
<property name="spacing">10</property>
|
21
|
+
<child>
|
22
|
+
<object class="GtkLabel" id="label1">
|
23
|
+
<property name="visible">True</property>
|
24
|
+
<property name="can_focus">False</property>
|
25
|
+
<property name="label" translatable="yes"><big><big><big>Nature Boy's Fantasy World</big></big></big></property>
|
26
|
+
<property name="use_markup">True</property>
|
27
|
+
</object>
|
28
|
+
<packing>
|
29
|
+
<property name="expand">False</property>
|
30
|
+
<property name="fill">True</property>
|
31
|
+
<property name="position">0</property>
|
32
|
+
</packing>
|
33
|
+
</child>
|
34
|
+
<child>
|
35
|
+
<object class="GtkScrolledWindow" id="scrolledwindow1">
|
36
|
+
<property name="height_request">400</property>
|
37
|
+
<property name="visible">True</property>
|
38
|
+
<property name="can_focus">True</property>
|
39
|
+
<property name="vexpand">True</property>
|
40
|
+
<property name="shadow_type">in</property>
|
41
|
+
<child>
|
42
|
+
<object class="GtkTextView" id="out">
|
43
|
+
<property name="height_request">360</property>
|
44
|
+
<property name="visible">True</property>
|
45
|
+
<property name="can_focus">True</property>
|
46
|
+
<property name="hexpand">True</property>
|
47
|
+
<property name="vexpand">True</property>
|
48
|
+
<property name="wrap_mode">word</property>
|
49
|
+
</object>
|
50
|
+
</child>
|
51
|
+
</object>
|
52
|
+
<packing>
|
53
|
+
<property name="expand">True</property>
|
54
|
+
<property name="fill">True</property>
|
55
|
+
<property name="position">1</property>
|
56
|
+
</packing>
|
57
|
+
</child>
|
58
|
+
<child>
|
59
|
+
<object class="GtkGrid" id="grid2">
|
60
|
+
<property name="visible">True</property>
|
61
|
+
<property name="can_focus">False</property>
|
62
|
+
<child>
|
63
|
+
<object class="GtkGrid" id="grid3">
|
64
|
+
<property name="visible">True</property>
|
65
|
+
<property name="can_focus">False</property>
|
66
|
+
<property name="row_spacing">2</property>
|
67
|
+
<property name="column_spacing">2</property>
|
68
|
+
<child>
|
69
|
+
<object class="GtkEntry" id="entryHomeFieldPts">
|
70
|
+
<property name="visible">True</property>
|
71
|
+
<property name="can_focus">True</property>
|
72
|
+
<property name="text" translatable="yes">3</property>
|
73
|
+
</object>
|
74
|
+
<packing>
|
75
|
+
<property name="left_attach">1</property>
|
76
|
+
<property name="top_attach">0</property>
|
77
|
+
<property name="width">1</property>
|
78
|
+
<property name="height">1</property>
|
79
|
+
</packing>
|
80
|
+
</child>
|
81
|
+
<child>
|
82
|
+
<object class="GtkEntry" id="entryOFactor">
|
83
|
+
<property name="visible">True</property>
|
84
|
+
<property name="can_focus">True</property>
|
85
|
+
<property name="text" translatable="yes">1</property>
|
86
|
+
</object>
|
87
|
+
<packing>
|
88
|
+
<property name="left_attach">1</property>
|
89
|
+
<property name="top_attach">1</property>
|
90
|
+
<property name="width">1</property>
|
91
|
+
<property name="height">1</property>
|
92
|
+
</packing>
|
93
|
+
</child>
|
94
|
+
<child>
|
95
|
+
<object class="GtkEntry" id="entryDFactor">
|
96
|
+
<property name="visible">True</property>
|
97
|
+
<property name="can_focus">True</property>
|
98
|
+
<property name="text" translatable="yes">1</property>
|
99
|
+
</object>
|
100
|
+
<packing>
|
101
|
+
<property name="left_attach">1</property>
|
102
|
+
<property name="top_attach">2</property>
|
103
|
+
<property name="width">1</property>
|
104
|
+
<property name="height">1</property>
|
105
|
+
</packing>
|
106
|
+
</child>
|
107
|
+
<child>
|
108
|
+
<object class="GtkLabel" id="label2">
|
109
|
+
<property name="visible">True</property>
|
110
|
+
<property name="can_focus">False</property>
|
111
|
+
<property name="label" translatable="yes">Home Field Pts:</property>
|
112
|
+
</object>
|
113
|
+
<packing>
|
114
|
+
<property name="left_attach">0</property>
|
115
|
+
<property name="top_attach">0</property>
|
116
|
+
<property name="width">1</property>
|
117
|
+
<property name="height">1</property>
|
118
|
+
</packing>
|
119
|
+
</child>
|
120
|
+
<child>
|
121
|
+
<object class="GtkLabel" id="label3">
|
122
|
+
<property name="visible">True</property>
|
123
|
+
<property name="can_focus">False</property>
|
124
|
+
<property name="label" translatable="yes">Offense Factor:</property>
|
125
|
+
</object>
|
126
|
+
<packing>
|
127
|
+
<property name="left_attach">0</property>
|
128
|
+
<property name="top_attach">1</property>
|
129
|
+
<property name="width">1</property>
|
130
|
+
<property name="height">1</property>
|
131
|
+
</packing>
|
132
|
+
</child>
|
133
|
+
<child>
|
134
|
+
<object class="GtkLabel" id="label4">
|
135
|
+
<property name="visible">True</property>
|
136
|
+
<property name="can_focus">False</property>
|
137
|
+
<property name="label" translatable="yes">Defense Factor:</property>
|
138
|
+
</object>
|
139
|
+
<packing>
|
140
|
+
<property name="left_attach">0</property>
|
141
|
+
<property name="top_attach">2</property>
|
142
|
+
<property name="width">1</property>
|
143
|
+
<property name="height">1</property>
|
144
|
+
</packing>
|
145
|
+
</child>
|
146
|
+
</object>
|
147
|
+
<packing>
|
148
|
+
<property name="left_attach">0</property>
|
149
|
+
<property name="top_attach">0</property>
|
150
|
+
<property name="width">1</property>
|
151
|
+
<property name="height">1</property>
|
152
|
+
</packing>
|
153
|
+
</child>
|
154
|
+
<child>
|
155
|
+
<object class="GtkButtonBox" id="buttonbox1">
|
156
|
+
<property name="visible">True</property>
|
157
|
+
<property name="can_focus">False</property>
|
158
|
+
<property name="orientation">vertical</property>
|
159
|
+
<property name="spacing">2</property>
|
160
|
+
<property name="layout_style">start</property>
|
161
|
+
<child>
|
162
|
+
<object class="GtkButton" id="buttonFillRunPts">
|
163
|
+
<property name="label" translatable="yes">Fill Run Values</property>
|
164
|
+
<property name="visible">True</property>
|
165
|
+
<property name="can_focus">True</property>
|
166
|
+
<property name="receives_default">True</property>
|
167
|
+
</object>
|
168
|
+
<packing>
|
169
|
+
<property name="expand">False</property>
|
170
|
+
<property name="fill">True</property>
|
171
|
+
<property name="position">0</property>
|
172
|
+
</packing>
|
173
|
+
</child>
|
174
|
+
<child>
|
175
|
+
<object class="GtkButton" id="buttonComputeCombos">
|
176
|
+
<property name="label" translatable="yes">Compute Combos</property>
|
177
|
+
<property name="visible">True</property>
|
178
|
+
<property name="can_focus">True</property>
|
179
|
+
<property name="receives_default">True</property>
|
180
|
+
</object>
|
181
|
+
<packing>
|
182
|
+
<property name="expand">False</property>
|
183
|
+
<property name="fill">True</property>
|
184
|
+
<property name="position">1</property>
|
185
|
+
</packing>
|
186
|
+
</child>
|
187
|
+
<child>
|
188
|
+
<object class="GtkButton" id="buttonShowCombos">
|
189
|
+
<property name="label" translatable="yes">Show Combos</property>
|
190
|
+
<property name="visible">True</property>
|
191
|
+
<property name="can_focus">True</property>
|
192
|
+
<property name="receives_default">True</property>
|
193
|
+
</object>
|
194
|
+
<packing>
|
195
|
+
<property name="expand">False</property>
|
196
|
+
<property name="fill">True</property>
|
197
|
+
<property name="position">2</property>
|
198
|
+
</packing>
|
199
|
+
</child>
|
200
|
+
</object>
|
201
|
+
<packing>
|
202
|
+
<property name="left_attach">1</property>
|
203
|
+
<property name="top_attach">0</property>
|
204
|
+
<property name="width">1</property>
|
205
|
+
<property name="height">1</property>
|
206
|
+
</packing>
|
207
|
+
</child>
|
208
|
+
</object>
|
209
|
+
<packing>
|
210
|
+
<property name="expand">False</property>
|
211
|
+
<property name="fill">True</property>
|
212
|
+
<property name="position">2</property>
|
213
|
+
</packing>
|
214
|
+
</child>
|
215
|
+
<child>
|
216
|
+
<object class="GtkGrid" id="grid1">
|
217
|
+
<property name="visible">True</property>
|
218
|
+
<property name="can_focus">False</property>
|
219
|
+
<child>
|
220
|
+
<object class="GtkButton" id="buttonRunCombo">
|
221
|
+
<property name="label" translatable="yes">Run Combo</property>
|
222
|
+
<property name="visible">True</property>
|
223
|
+
<property name="can_focus">True</property>
|
224
|
+
<property name="receives_default">True</property>
|
225
|
+
</object>
|
226
|
+
<packing>
|
227
|
+
<property name="left_attach">3</property>
|
228
|
+
<property name="top_attach">0</property>
|
229
|
+
<property name="width">1</property>
|
230
|
+
<property name="height">1</property>
|
231
|
+
</packing>
|
232
|
+
</child>
|
233
|
+
<child>
|
234
|
+
<object class="GtkEntry" id="entryTeam2">
|
235
|
+
<property name="visible">True</property>
|
236
|
+
<property name="can_focus">True</property>
|
237
|
+
<property name="text" translatable="yes">BAL</property>
|
238
|
+
</object>
|
239
|
+
<packing>
|
240
|
+
<property name="left_attach">2</property>
|
241
|
+
<property name="top_attach">0</property>
|
242
|
+
<property name="width">1</property>
|
243
|
+
<property name="height">1</property>
|
244
|
+
</packing>
|
245
|
+
</child>
|
246
|
+
<child>
|
247
|
+
<object class="GtkEntry" id="entryTeam1">
|
248
|
+
<property name="visible">True</property>
|
249
|
+
<property name="can_focus">True</property>
|
250
|
+
<property name="text" translatable="yes">ATL</property>
|
251
|
+
</object>
|
252
|
+
<packing>
|
253
|
+
<property name="left_attach">1</property>
|
254
|
+
<property name="top_attach">0</property>
|
255
|
+
<property name="width">1</property>
|
256
|
+
<property name="height">1</property>
|
257
|
+
</packing>
|
258
|
+
</child>
|
259
|
+
<child>
|
260
|
+
<object class="GtkComboBoxText" id="type">
|
261
|
+
<property name="visible">True</property>
|
262
|
+
<property name="can_focus">False</property>
|
263
|
+
<property name="active">0</property>
|
264
|
+
<property name="active_id">0</property>
|
265
|
+
<items>
|
266
|
+
<item id="<Enter ID>" translatable="yes">run</item>
|
267
|
+
<item translatable="yes">wr</item>
|
268
|
+
<item translatable="yes">te</item>
|
269
|
+
<item translatable="yes">qb</item>
|
270
|
+
</items>
|
271
|
+
</object>
|
272
|
+
<packing>
|
273
|
+
<property name="left_attach">0</property>
|
274
|
+
<property name="top_attach">0</property>
|
275
|
+
<property name="width">1</property>
|
276
|
+
<property name="height">1</property>
|
277
|
+
</packing>
|
278
|
+
</child>
|
279
|
+
</object>
|
280
|
+
<packing>
|
281
|
+
<property name="expand">False</property>
|
282
|
+
<property name="fill">True</property>
|
283
|
+
<property name="position">3</property>
|
284
|
+
</packing>
|
285
|
+
</child>
|
286
|
+
</object>
|
287
|
+
</child>
|
288
|
+
</object>
|
289
|
+
</interface>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!-- Generated with glade 3.16.1 -->
|
3
|
+
<interface>
|
4
|
+
<requires lib="gtk+" version="3.0"/>
|
5
|
+
<object class="GtkWindow" id="window1">
|
6
|
+
<property name="can_focus">False</property>
|
7
|
+
<property name="window_position">center</property>
|
8
|
+
<child>
|
9
|
+
<object class="GtkButtonBox" id="buttonbox1">
|
10
|
+
<property name="visible">True</property>
|
11
|
+
<property name="can_focus">False</property>
|
12
|
+
<property name="halign">center</property>
|
13
|
+
<property name="valign">center</property>
|
14
|
+
<property name="margin_left">50</property>
|
15
|
+
<property name="margin_right">50</property>
|
16
|
+
<property name="margin_top">50</property>
|
17
|
+
<property name="margin_bottom">50</property>
|
18
|
+
<property name="orientation">vertical</property>
|
19
|
+
<property name="layout_style">start</property>
|
20
|
+
<child>
|
21
|
+
<object class="GtkButton" id="button1">
|
22
|
+
<property name="label" translatable="yes">button</property>
|
23
|
+
<property name="visible">True</property>
|
24
|
+
<property name="can_focus">True</property>
|
25
|
+
<property name="receives_default">True</property>
|
26
|
+
</object>
|
27
|
+
<packing>
|
28
|
+
<property name="expand">True</property>
|
29
|
+
<property name="fill">True</property>
|
30
|
+
<property name="position">0</property>
|
31
|
+
</packing>
|
32
|
+
</child>
|
33
|
+
</object>
|
34
|
+
</child>
|
35
|
+
</object>
|
36
|
+
</interface>
|
metadata
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: nature
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Eric Cunningham
|
8
|
+
autorequire:
|
9
|
+
bindir:
|
10
|
+
- "."
|
11
|
+
cert_chain: []
|
12
|
+
date: 2017-08-22 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: visualruby
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: 3.1.10
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 3.1.10
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: require_all
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 1.2.0
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 1.2.0
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: sqlite3
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 1.2.0
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 1.2.0
|
56
|
+
description: Full description here
|
57
|
+
email: you@yoursite.com
|
58
|
+
executables:
|
59
|
+
- nature
|
60
|
+
extensions: []
|
61
|
+
extra_rdoc_files: []
|
62
|
+
files:
|
63
|
+
- "./nature"
|
64
|
+
- src/Combo.rb
|
65
|
+
- src/Combos.rb
|
66
|
+
- src/Fantasy.rb
|
67
|
+
- src/Game.rb
|
68
|
+
- src/MyClass.rb
|
69
|
+
- src/ParseSchedule.rb
|
70
|
+
- src/TallyGames.rb
|
71
|
+
- src/Team.rb
|
72
|
+
- src/Util.rb
|
73
|
+
- src/glade/Combos.glade
|
74
|
+
- src/glade/Fantasy.glade
|
75
|
+
- src/glade/MyClass.glade
|
76
|
+
homepage: http://www.yoursite.org/
|
77
|
+
licenses: []
|
78
|
+
metadata: {}
|
79
|
+
post_install_message:
|
80
|
+
rdoc_options: []
|
81
|
+
require_paths:
|
82
|
+
- lib
|
83
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - ">="
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '0'
|
93
|
+
requirements: []
|
94
|
+
rubyforge_project: nowarning
|
95
|
+
rubygems_version: 2.5.1
|
96
|
+
signing_key:
|
97
|
+
specification_version: 4
|
98
|
+
summary: Short Description Here.
|
99
|
+
test_files: []
|