autumn 3.1.8

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.
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