autumn 3.1.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. data/AUTHORS +11 -0
  2. data/CHANGELOG +567 -0
  3. data/MANIFEST +110 -0
  4. data/README +1114 -0
  5. data/README.textile +1153 -0
  6. data/Rakefile +75 -0
  7. data/autumn.gemspec +44 -0
  8. data/bin/autumn +11 -0
  9. data/lib/autumn.rb +8 -0
  10. data/lib/autumn/authentication.rb +238 -0
  11. data/lib/autumn/channel_leaf.rb +107 -0
  12. data/lib/autumn/coder.rb +166 -0
  13. data/lib/autumn/console_boot.rb +10 -0
  14. data/lib/autumn/ctcp.rb +250 -0
  15. data/lib/autumn/daemon.rb +207 -0
  16. data/lib/autumn/datamapper_hacks.rb +290 -0
  17. data/lib/autumn/foliater.rb +231 -0
  18. data/lib/autumn/formatting.rb +236 -0
  19. data/lib/autumn/generator.rb +231 -0
  20. data/lib/autumn/genesis.rb +190 -0
  21. data/lib/autumn/inheritable_attributes.rb +162 -0
  22. data/lib/autumn/leaf.rb +738 -0
  23. data/lib/autumn/log_facade.rb +49 -0
  24. data/lib/autumn/misc.rb +87 -0
  25. data/lib/autumn/resources/daemons/Anothernet.yml +3 -0
  26. data/lib/autumn/resources/daemons/AustHex.yml +29 -0
  27. data/lib/autumn/resources/daemons/Bahamut.yml +67 -0
  28. data/lib/autumn/resources/daemons/Dancer.yml +3 -0
  29. data/lib/autumn/resources/daemons/GameSurge.yml +3 -0
  30. data/lib/autumn/resources/daemons/IRCnet.yml +3 -0
  31. data/lib/autumn/resources/daemons/Ithildin.yml +7 -0
  32. data/lib/autumn/resources/daemons/KineIRCd.yml +56 -0
  33. data/lib/autumn/resources/daemons/PTlink.yml +6 -0
  34. data/lib/autumn/resources/daemons/QuakeNet.yml +20 -0
  35. data/lib/autumn/resources/daemons/RFC1459.yml +158 -0
  36. data/lib/autumn/resources/daemons/RFC2811.yml +16 -0
  37. data/lib/autumn/resources/daemons/RFC2812.yml +36 -0
  38. data/lib/autumn/resources/daemons/RatBox.yml +25 -0
  39. data/lib/autumn/resources/daemons/Ultimate.yml +24 -0
  40. data/lib/autumn/resources/daemons/Undernet.yml +6 -0
  41. data/lib/autumn/resources/daemons/Unreal.yml +110 -0
  42. data/lib/autumn/resources/daemons/_Other.yml +7 -0
  43. data/lib/autumn/resources/daemons/aircd.yml +33 -0
  44. data/lib/autumn/resources/daemons/bdq-ircd.yml +3 -0
  45. data/lib/autumn/resources/daemons/hybrid.yml +38 -0
  46. data/lib/autumn/resources/daemons/ircu.yml +67 -0
  47. data/lib/autumn/resources/daemons/tr-ircd.yml +8 -0
  48. data/lib/autumn/script.rb +74 -0
  49. data/lib/autumn/speciator.rb +165 -0
  50. data/lib/autumn/stem.rb +919 -0
  51. data/lib/autumn/stem_facade.rb +176 -0
  52. data/lib/autumn/tool/bin.rb +301 -0
  53. data/lib/autumn/tool/create.rb +48 -0
  54. data/lib/autumn/tool/project_creator.rb +110 -0
  55. data/lib/autumn/version.rb +3 -0
  56. data/lib/skel/Rakefile +163 -0
  57. data/lib/skel/config/global.yml +2 -0
  58. data/lib/skel/config/seasons/testing/database.yml +4 -0
  59. data/lib/skel/config/seasons/testing/leaves.yml +9 -0
  60. data/lib/skel/config/seasons/testing/season.yml +2 -0
  61. data/lib/skel/config/seasons/testing/stems.yml +10 -0
  62. data/lib/skel/leaves/administrator/README +20 -0
  63. data/lib/skel/leaves/administrator/controller.rb +67 -0
  64. data/lib/skel/leaves/administrator/views/autumn.txt.erb +1 -0
  65. data/lib/skel/leaves/administrator/views/reload.txt.erb +11 -0
  66. data/lib/skel/leaves/insulter/README +17 -0
  67. data/lib/skel/leaves/insulter/controller.rb +65 -0
  68. data/lib/skel/leaves/insulter/views/about.txt.erb +1 -0
  69. data/lib/skel/leaves/insulter/views/help.txt.erb +1 -0
  70. data/lib/skel/leaves/insulter/views/insult.txt.erb +1 -0
  71. data/lib/skel/leaves/scorekeeper/README +34 -0
  72. data/lib/skel/leaves/scorekeeper/config.yml +2 -0
  73. data/lib/skel/leaves/scorekeeper/controller.rb +104 -0
  74. data/lib/skel/leaves/scorekeeper/helpers/general.rb +64 -0
  75. data/lib/skel/leaves/scorekeeper/models/channel.rb +12 -0
  76. data/lib/skel/leaves/scorekeeper/models/person.rb +14 -0
  77. data/lib/skel/leaves/scorekeeper/models/pseudonym.rb +11 -0
  78. data/lib/skel/leaves/scorekeeper/models/score.rb +14 -0
  79. data/lib/skel/leaves/scorekeeper/tasks/stats.rake +17 -0
  80. data/lib/skel/leaves/scorekeeper/views/about.txt.erb +1 -0
  81. data/lib/skel/leaves/scorekeeper/views/change.txt.erb +5 -0
  82. data/lib/skel/leaves/scorekeeper/views/history.txt.erb +11 -0
  83. data/lib/skel/leaves/scorekeeper/views/points.txt.erb +5 -0
  84. data/lib/skel/leaves/scorekeeper/views/usage.txt.erb +1 -0
  85. data/lib/skel/log/README +1 -0
  86. data/lib/skel/script/console +28 -0
  87. data/lib/skel/script/destroy +48 -0
  88. data/lib/skel/script/generate +48 -0
  89. data/lib/skel/shared/README +1 -0
  90. data/lib/skel/tmp/README +1 -0
  91. data/spec/authentication_spec.rb +328 -0
  92. data/spec/channel_leaf_spec.rb +142 -0
  93. data/spec/coder_spec.rb +146 -0
  94. data/spec/ctcp_spec.rb +222 -0
  95. data/spec/daemon_spec.rb +202 -0
  96. data/spec/datamapper_hacks_spec.rb +164 -0
  97. data/tasks/authors.rake +30 -0
  98. data/tasks/changelog.rake +18 -0
  99. data/tasks/copyright.rake +21 -0
  100. data/tasks/doc.rake +7 -0
  101. data/tasks/gem.rake +23 -0
  102. data/tasks/gem_installer.rake +76 -0
  103. data/tasks/install_dependencies.rake +6 -0
  104. data/tasks/manifest.rake +4 -0
  105. data/tasks/rcov.rake +23 -0
  106. data/tasks/release.rake +52 -0
  107. data/tasks/reversion.rake +8 -0
  108. data/tasks/setup.rake +24 -0
  109. data/tasks/spec.rake +7 -0
  110. data/tasks/yard.rake +4 -0
  111. metadata +188 -0
@@ -0,0 +1,16 @@
1
+ ---
2
+ channel_mode:
3
+ a: :anonymous
4
+ O: :creator
5
+ e: :ban_exception
6
+ q: :quiet
7
+ r: :reop
8
+ h: :halfop
9
+ I: :invitation_mask
10
+ channel_prefix:
11
+ +: :network_unmoderated
12
+ "!": :network_safe
13
+ privilege:
14
+ O: :creator
15
+ usermode:
16
+ "@": :creator
@@ -0,0 +1,36 @@
1
+ ---
2
+ event:
3
+ 478: :err_banlistfull
4
+ 346: :rpl_invitelist
5
+ 247: :rpl_statsbline
6
+ 5: :rpl_bounce
7
+ 484: :err_restricted
8
+ 209: :rpl_traceclass
9
+ 347: :rpl_endofinvitelist
10
+ 325: :rpl_uniqopis
11
+ 485: :err_uniqoprivsneeded
12
+ 408: :err_nosuchservice
13
+ 210: :rpl_tracereconnect
14
+ 1: :rpl_welcome
15
+ 348: :rpl_exceptlist
16
+ 2: :rpl_yourhost
17
+ 437: :err_unavailresource
18
+ 415: :err_badmask
19
+ 349: :rpl_endofexceptlist
20
+ 250: :rpl_statsdline
21
+ 476: :err_badchanmask
22
+ 234: :rpl_servlist
23
+ 3: :rpl_created
24
+ 383: :rpl_youreservice
25
+ 262: :rpl_traceend
26
+ 240: :rpl_statsvline
27
+ 207: :rpl_traceservice
28
+ 477: :err_nochanmodes
29
+ 246: :rpl_statsping
30
+ 235: :rpl_servlistend
31
+ 4: :rpl_myinfo
32
+ 263: :rpl_tryagain
33
+ usermode:
34
+ a: :away
35
+ O: :local_operator
36
+ r: :restricted
@@ -0,0 +1,25 @@
1
+ ---
2
+ event:
3
+ 720: :rpl_omotdstart
4
+ 709: :rpl_etrace
5
+ 726: :rpl_notestline
6
+ 715: :err_knockdisabled
7
+ 704: :rpl_helpstart
8
+ 721: :rpl_omotd
9
+ 710: :rpl_knock
10
+ 716: :rpl_targumodeg
11
+ 705: :rpl_helptxt
12
+ 722: :rpl_endofomotd
13
+ 711: :rpl_knockdlvr
14
+ 717: :rpl_targnotify
15
+ 706: :rpl_endofhelp
16
+ 723: :err_noprivs
17
+ 712: :err_toomanyknock
18
+ 718: :rpl_umodegmsg
19
+ 724: :rpl_testmark
20
+ 713: :err_chanopen
21
+ 702: :rpl_modlist
22
+ 708: :rpl_etracefull
23
+ 725: :rpl_testline
24
+ 714: :err_knockonchan
25
+ 703: :rpl_endofmodlist
@@ -0,0 +1,24 @@
1
+ ---
2
+ event:
3
+ 621: :rpl_rules
4
+ 610: :rpl_isoper
5
+ 434: :err_norules
6
+ 616: :rpl_whoishost
7
+ 275: :rpl_statsdline
8
+ 622: :rpl_endofrules
9
+ 611: :rpl_islocop
10
+ 617: :rpl_whoisbot
11
+ 386: :rpl_ircops
12
+ 623: :rpl_mapmore
13
+ 612: :rpl_isnotoper
14
+ 387: :rpl_endofircops
15
+ 624: :rpl_omotdstart
16
+ 613: :rpl_endofisoper
17
+ 630: :rpl_settings
18
+ 619: :rpl_whowashost
19
+ 608: :rpl_watchclear
20
+ 625: :rpl_omotd
21
+ 631: :rpl_endofsettings
22
+ 620: :rpl_rulesstart
23
+ 626: :rpl_endofo
24
+ 615: :rpl_whoismodes
@@ -0,0 +1,6 @@
1
+ ---
2
+ event:
3
+ 489: :err_voiceneeded
4
+ 484: :err_ischanservice
5
+ 396: :rpl_hosthidden
6
+ 449: :err_notimplemented
@@ -0,0 +1,110 @@
1
+ ---
2
+ channel_mode:
3
+ V: :no_invite
4
+ K: :noknock
5
+ L: :link
6
+ A: :admin_only
7
+ a: :channel_protection
8
+ M: :regonly
9
+ N: :no_nick_change
10
+ C: :no_ctcp
11
+ z: :secured_only
12
+ O: :oper_only
13
+ Q: :no_kick
14
+ q: :channel_owner
15
+ f: :flood_limit
16
+ G: :strip_bad_words
17
+ S: :strip
18
+ H: :no_hiding
19
+ u: :auditorium
20
+ event:
21
+ 389: :rpl_endofalist
22
+ 294: :rpl_helpfwd
23
+ 484: :err_attackdeny
24
+ 247: :rpl_statsxline
25
+ 295: :rpl_helpign
26
+ 447: :err_nonickchange
27
+ 485: :err_killdeny
28
+ 334: :rpl_listsyntax
29
+ 486: :err_htmdisabled
30
+ 524: :err_operspverify
31
+ 600: :rpl_logon
32
+ 220: :rpl_statsbline
33
+ 477: :err_needreggednick
34
+ 610: :rpl_mapmore
35
+ 601: :rpl_logoff
36
+ 468: :err_onlyserverscanchange
37
+ 335: :rpl_whoisbot
38
+ 972: :err_cannotdocommand
39
+ 307: :rpl_whoisregnick
40
+ 250: :rpl_statsconn
41
+ 459: :err_nohiding
42
+ 440: :err_servicesdown
43
+ 602: :rpl_watchoff
44
+ 222: :rpl_sqline_nick
45
+ 640: :rpl_dumping
46
+ 469: :err_linkset
47
+ 460: :err_notforhalfops
48
+ 232: :rpl_rules
49
+ 479: :err_linkfail
50
+ 308: :rpl_rulesstart
51
+ 603: :rpl_watchstat
52
+ 223: :rpl_statsgline
53
+ 641: :rpl_dumprpl
54
+ 470: :err_linkchannel
55
+ 489: :err_secureonlychan
56
+ 290: :rpl_helphdr
57
+ 499: :err_chanownprivneeded
58
+ 480: :err_cannotknock
59
+ 309: :rpl_endofrules
60
+ 518: :err_noinvite
61
+ 385: :rpl_notoperanymore
62
+ 642: :rpl_eodump
63
+ 604: :rpl_nowon
64
+ 224: :rpl_statstline
65
+ 310: :rpl_whoishelpop
66
+ 519: :err_admonly
67
+ 386: :rpl_qlist
68
+ 6: :rpl_map
69
+ 291: :rpl_helpop
70
+ 320: :rpl_whoisspecial
71
+ 605: :rpl_nowoff
72
+ 225: :rpl_statseline
73
+ 434: :err_norules
74
+ 520: :err_operonly
75
+ 387: :rpl_endofqlist
76
+ 7: :rpl_mapend
77
+ 425: :err_noopermotd
78
+ 292: :rpl_helptlr
79
+ 378: :rpl_whoishost
80
+ 606: :rpl_watchlist
81
+ 226: :rpl_statsnline
82
+ 435: :err_serviceconfused
83
+ 388: :rpl_alist
84
+ 293: :rpl_helphlp
85
+ 455: :err_hostilename
86
+ 607: :rpl_endofwatchlist
87
+ 227: :rpl_statsvline
88
+ 379: :rpl_whoismodes
89
+ usermode:
90
+ V: :webtv
91
+ v: :victim
92
+ W: :whois_paranoia
93
+ A: :server_admin
94
+ a: :services_admin
95
+ x: :host_hiding
96
+ B: :bot
97
+ b: :chatops
98
+ N: :network_admin
99
+ C: :co_admin
100
+ z: :secure_conn
101
+ p: :hide_channels
102
+ q: :kix
103
+ R: :no_non_registered
104
+ G: :strip_bad_words
105
+ S: :service
106
+ s: :server_notices
107
+ H: :hide_oper
108
+ T: :block_ctcp
109
+ t: :modified_host
110
+ I: :invisible_joinpart
@@ -0,0 +1,7 @@
1
+ ---
2
+ privilege:
3
+ a: :admin # Compatibility with irc.utonet.org
4
+ user_prefix:
5
+ "~": :channel_owner # Compatibility with irc.utonet.org
6
+ "&": :admin # Compatibility with irc.utonet.org
7
+
@@ -0,0 +1,33 @@
1
+ ---
2
+ event:
3
+ 379: :rpl_kicklinked
4
+ 291: :rpl_chaninfo_banned
5
+ 269: :rpl_end_netstat
6
+ 308: :rpl_notifyaction
7
+ 286: :rpl_chaninfo_users
8
+ 380: :rpl_banlinked
9
+ 292: :rpl_chaninfo_bans
10
+ 50: :rpl_attemptingjunc
11
+ 419: :err_lengthtruncated
12
+ 309: :rpl_nicktrace
13
+ 287: :rpl_chaninfo_chops
14
+ 265: :rpl_localusers
15
+ 210: :rpl_stats
16
+ 293: :rpl_chaninfo_invite
17
+ 51: :rpl_attemptingreroute
18
+ 299: :rpl_end_chaninfo
19
+ 288: :rpl_chaninfo_voices
20
+ 266: :rpl_globalusers
21
+ 470: :err_kickedfromchan
22
+ 294: :rpl_chaninfo_invites
23
+ 377: :rpl_kickexpired
24
+ 289: :rpl_chaninfo_away
25
+ 267: :rpl_start_netstat
26
+ 295: :rpl_chaninfo_kick
27
+ 273: :rpl_notify
28
+ 378: :rpl_banexpired
29
+ 290: :rpl_chaninfo_opers
30
+ 268: :rpl_netstat
31
+ 296: :rpl_chaninfo_kicks
32
+ 285: :rpl_chaninfo_handle
33
+ 274: :rpl_endnotify
@@ -0,0 +1,3 @@
1
+ ---
2
+ event:
3
+ 391: :rpl_time
@@ -0,0 +1,38 @@
1
+ ---
2
+ channel_mode:
3
+ a: :hideops
4
+ p: :private
5
+ event:
6
+ 247: :rpl_statsxline
7
+ 225: :rpl_statsdline
8
+ 484: :err_desync
9
+ 385: :rpl_notoperanymore
10
+ 220: :rpl_statspline
11
+ 479: :err_badchanname
12
+ 265: :rpl_localusers
13
+ 249: :rpl_statsdebug
14
+ 266: :rpl_globalusers
15
+ 503: :err_ghostedclient
16
+ 245: :rpl_statssline
17
+ 14: :rpl_yourcookie
18
+ 246: :rpl_statsuline
19
+ 224: :rpl_statsfline
20
+ user_prefix:
21
+ "%": :half_operator
22
+ usermode:
23
+ k: :kills
24
+ l: :locops
25
+ a: :admin
26
+ x: :external
27
+ b: :bots
28
+ y: :spy
29
+ n: :nchange
30
+ c: :client_conns
31
+ z: :operwall
32
+ d: :debug
33
+ f: :full
34
+ r: :rej
35
+ g: :callerid
36
+ u: :unauth
37
+ privilege:
38
+ h: :half_operator
@@ -0,0 +1,67 @@
1
+ ---
2
+ server_mode:
3
+ s: :service
4
+ h: :hub
5
+ channel_mode:
6
+ r: :regonly
7
+ event:
8
+ 511: :err_silelistfull
9
+ 280: :rpl_glist
10
+ 247: :rpl_statsgline
11
+ 236: :rpl_statsverbose
12
+ 16: :rpl_mapmore
13
+ 517: :err_disabled
14
+ 495: :err_badlogtype
15
+ 330: :rpl_whoisaccount
16
+ 275: :rpl_statsdline
17
+ 468: :err_invalidusername
18
+ 391: :rpl_time
19
+ 281: :rpl_endofglist
20
+ 270: :rpl_privs
21
+ 248: :rpl_statsuline
22
+ 237: :rpl_statsengine
23
+ 17: :rpl_mapend
24
+ 518: :err_longmask
25
+ 496: :err_badlogsys
26
+ 524: :err_quarantined
27
+ 513: :err_badping
28
+ 282: :rpl_jupelist
29
+ 271: :rpl_silelist
30
+ 238: :rpl_statsfline
31
+ 519: :err_toomanyusers
32
+ 497: :err_badlogvalue
33
+ 354: :rpl_whospcrpl
34
+ 514: :err_invalid_error
35
+ 437: :err_bannickchange
36
+ 338: :rpl_whoisactually
37
+ 283: :rpl_endofjupelist
38
+ 272: :rpl_endofsilelist
39
+ 250: :rpl_statsconn
40
+ 228: :rpl_statsqline
41
+ 217: :rpl_statspline
42
+ 8: :rpl_snomask
43
+ 520: :err_masktoowide
44
+ 498: :err_isoperlchan
45
+ 333: :rpl_topicwhotime
46
+ 515: :err_badexpire
47
+ 493: :err_nofeature
48
+ 438: :err_nicktoofast
49
+ 416: :err_querytoolong
50
+ 284: :rpl_feature
51
+ 9: :rpl_statmemtot
52
+ 477: :err_needreggednick
53
+ 334: :rpl_listusage
54
+ 246: :rpl_statstline
55
+ 15: :rpl_map
56
+ 516: :err_dontcheat
57
+ 494: :err_badfeature
58
+ 439: :err_targettoofast
59
+ 340: :rpl_userip
60
+ 10: :rpl_statmem
61
+ usermode:
62
+ k: :service
63
+ x: :host_hiding
64
+ d: :deaf
65
+ r: :registered
66
+ g: :debug
67
+ s: :server_notices
@@ -0,0 +1,8 @@
1
+ ---
2
+ channel_mode:
3
+ R: :regonly
4
+ u: :founder
5
+ user_prefix:
6
+ .: :founder
7
+ privilege:
8
+ u: :founder
@@ -0,0 +1,74 @@
1
+ # Defines the Autumn::Script class, which runs the script/generate and
2
+ # script/destroy utilities.
3
+
4
+ require 'getoptlong'
5
+ require 'rdoc/usage'
6
+ require 'facets'
7
+ require 'autumn/generator'
8
+
9
+ module Autumn
10
+
11
+ # Manages data used by the script/generate and script/destroy scripts. This
12
+ # class is instantiated by the script, and manages the script's data and
13
+ # encapsulates common functionality between the two scripts. The object must
14
+ # be initialized and parse_argv must be called before all attributes are ready
15
+ # for access.
16
+
17
+ class Script # :nodoc:
18
+ # The name of the Autumn object to be created.
19
+ attr :name
20
+ # The type of object to be created (e.g., "leaf").
21
+ attr :object
22
+ # The version control system in use for this project, or nil if none is being used for this transaction.
23
+ attr :vcs
24
+ # The Generator instance used to create files.
25
+ attr :generator
26
+
27
+ # Creates a new instance.
28
+
29
+ def initialize
30
+ @generator = Autumn::Generator.new
31
+ end
32
+
33
+ # Parses +ARGV+ or similar array. Normally you would pass +ARGV+ into this
34
+ # method. Populates the +object+ and +name+ attributes and returns true.
35
+ # Outputs an error and returns false if the given arguments are invalid.
36
+
37
+ def parse_argv(argv)
38
+ if ARGV.length != 2 then
39
+ $stderr.puts "Please specify an object (e.g., 'leaf') and its name (e.g., 'Scorekeeper')."
40
+ return false
41
+ end
42
+
43
+ @object = ARGV.shift
44
+ @name = ARGV.shift
45
+
46
+ return true
47
+ end
48
+
49
+ # Determines the version control system in use by this project and sets the
50
+ # +vcs+ attribute to its name (<tt>:cvs</tt>, <tt>:svn</tt>, or
51
+ # <tt>:git</tt>).
52
+
53
+ def use_vcs
54
+ @vcs = find_vcs
55
+ end
56
+
57
+ # Calls the method given by the symbol, with two arguments: the +name+
58
+ # attribute, and an options hash verbosity enabled and the VCS set to the
59
+ # value of +vcs+.
60
+
61
+ def call_generator(meth)
62
+ generator.send(meth, name, :verbose => true, :vcs => vcs)
63
+ end
64
+
65
+ private
66
+
67
+ def find_vcs
68
+ return :svn if File.exist? '.svn' and File.directory? '.svn'
69
+ return :cvs if File.exist? 'CVS' and File.directory? 'CVS'
70
+ return :git if File.exist? '.git' and File.directory? '.git'
71
+ return nil
72
+ end
73
+ end
74
+ end