crystal_doc_search_index_callback({"repository_name":"crirc","body":"# Crirc\n\nA crystal library to create irc client/bot/server.\n\n## Installation\n\n[![travis](https://travis-ci.org/Meoowww/Crirc.svg)](https://travis-ci.org/Meoowww/Crirc)\n\nTo install the lib, you will have to add the Crirc dependancy to your project.\n\nAdd this to your application's `shard.yml`:\n\n```yaml\ndependencies:\n crirc:\n github: Meoowww/Crirc\n```\n\nThen, run ``crystal deps install`` to fetch the lib.\n\n## Documentation\n\nThe documentation is built automaticaly when a commit is pushed on master on github, via Travis: .\nThis explains the architecture and design on the library, and details the technical informations about the internal & external API.\n\nSpecifications (unit tests) are written into the `/spec` directory.\n\nA full implementation of a bot is published and maintained on .\n\n\n## Contributing\n\n1. Fork it ( https://github.com/Meoowww/Crirc/fork )\n2. Create your feature branch (git checkout -b my-new-feature)\n3. Commit your changes (git commit -am 'Add some feature')\n4. Push to the branch (git push origin my-new-feature)\n5. Create a new Pull Request\n\n\n## Contributors\n\n- [Nephos](https://github.com/Nephos) Arthur Poulet - creator, maintainer\n- [Damaia](https://github.com/Lucie-Dispot) Lucie Dispot - developer\n","program":{"html_id":"crirc/toplevel","path":"toplevel.html","kind":"module","full_name":"Top Level Namespace","name":"Top Level Namespace","abstract":false,"superclass":null,"ancestors":[],"locations":[],"repository_name":"crirc","program":true,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":null,"doc":null,"summary":null,"class_methods":[{"id":"extract_nick(address:String)-class-method","html_id":"extract_nick(address:String)-class-method","name":"extract_nick","doc":"Extracts the nick from the full address of a user (nick!name@host)","summary":"

Extracts the nick from the full address of a user (nick!name@host)

","abstract":false,"args":[{"name":"address","doc":null,"default_value":"","external_name":"address","restriction":"String"}],"args_string":"(address : String)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/example_bot.cr#L4","def":{"name":"extract_nick","args":[{"name":"address","doc":null,"default_value":"","external_name":"address","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"(address.split('!'))[0]"}}],"constructors":[],"instance_methods":[],"macros":[],"types":[{"html_id":"crirc/Crirc","path":"Crirc.html","kind":"module","full_name":"Crirc","name":"Crirc","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/crirc.cr","line_number":15,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc.cr#L15"},{"filename":"src/crirc/version.cr","line_number":1,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/version.cr#L1"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[{"id":"VERSION","name":"VERSION","value":"\"0.4.0\"","doc":null,"summary":null}],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":null,"doc":"The Crirc module contains all the object related to the project.\nIt uses 4 layers of objects:\n\n1. **Network**: A network object manage a socket / I0.\n The interface is described by `Crirc::Network::Network`.\n2. **Controller**: A controller belongs to a network object,\n and handle the logic and data. Its interface is described by\n `Crirc::Controller::Controller`.\n3. **Protocol**: A protocol object represent a IRC entity\n (chan, user, message, ...).\n4. **Broadcast**: The `Broadcast` allows the system to send transmission to\n several IRC entity as one.\n5. **Binding**: The `Binding::Handler` allows a given `Controller` to respond\n to incoming transmissions.","summary":"

The Crirc module contains all the object related to the project.

","class_methods":[],"constructors":[],"instance_methods":[],"macros":[],"types":[{"html_id":"crirc/Crirc/Binding","path":"Crirc/Binding.html","kind":"module","full_name":"Crirc::Binding","name":"Binding","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/crirc/binding/trigger.cr","line_number":3,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/binding/trigger.cr#L3"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc","kind":"module","full_name":"Crirc","name":"Crirc"},"doc":null,"summary":null,"class_methods":[],"constructors":[],"instance_methods":[],"macros":[],"types":[{"html_id":"crirc/Crirc/Binding/Handler","path":"Crirc/Binding/Handler.html","kind":"module","full_name":"Crirc::Binding::Handler","name":"Handler","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/crirc/binding/handler.cr","line_number":15,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/binding/handler.cr#L15"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[{"html_id":"crirc/Crirc/Controller/Client","kind":"class","full_name":"Crirc::Controller::Client","name":"Client"}],"namespace":{"html_id":"crirc/Crirc/Binding","kind":"module","full_name":"Crirc::Binding","name":"Binding"},"doc":"This class is designed to be able to automaticaly respond to incoming IRC\nmessages on a set conditions.\nThe flow of this system is the following:\n1. With `.on()`, defines a Trigger and the associated Hook\n2. Call `.handle()` to process the incoming IRC message.\n\n```\nbot.on(\"PRIVMSG\", message: /^(Hello|Hi)$/) { |msg, data| bot.reply(msg, \"Hello !\") }\nwhile (incoming_message = io.gets) do\n bot.handle(incoming_message)\nend\n```","summary":"

This class is designed to be able to automaticaly respond to incoming IRC messages on a set conditions.

","class_methods":[],"constructors":[{"id":"new(**opts)-class-method","html_id":"new(**opts)-class-method","name":"new","doc":null,"summary":null,"abstract":false,"args":[],"args_string":"(**opts)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/binding/handler.cr#L25","def":{"name":"new","args":[],"double_splat":{"name":"opts","doc":null,"default_value":"","external_name":"opts","restriction":""},"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize(**opts)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"docs:Hash(String,String)-instance-method","html_id":"docs:Hash(String,String)-instance-method","name":"docs","doc":"Documentation lines for each hook","summary":"

Documentation lines for each hook

","abstract":false,"args":[],"args_string":" : Hash(String, String)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/binding/handler.cr#L23","def":{"name":"docs","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Hash(String, String)","visibility":"Public","body":"@docs"}},{"id":"handle(msg:String)-instance-method","html_id":"handle(msg:String)-instance-method","name":"handle","doc":"Sugar for `handle` that parse the string as a `Crirc::Protocol::Message`","summary":"

Sugar for #handle that parse the string as a Crirc::Protocol::Message

","abstract":false,"args":[{"name":"msg","doc":null,"default_value":"","external_name":"msg","restriction":"String"}],"args_string":"(msg : String)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/binding/handler.cr#L70","def":{"name":"handle","args":[{"name":"msg","doc":null,"default_value":"","external_name":"msg","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"handle(Crirc::Protocol::Message.new(msg))"}},{"id":"handle(msg:Crirc::Protocol::Message)-instance-method","html_id":"handle(msg:Crirc::Protocol::Message)-instance-method","name":"handle","doc":"Handle one `Message`\nIt goes through the registred hooks, select the one to trigger.\nThen, it execute every hooks associated, and send as parameters the current message and the regex match if possible\nTODO: msg should NEVER be modified in the hook. (copy ? readonly ? struct ?)","summary":"

Handle one Message It goes through the registred hooks, select the one to trigger.

","abstract":false,"args":[{"name":"msg","doc":null,"default_value":"","external_name":"msg","restriction":"Crirc::Protocol::Message"}],"args_string":"(msg : Crirc::Protocol::Message)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/binding/handler.cr#L53","def":{"name":"handle","args":[{"name":"msg","doc":null,"default_value":"","external_name":"msg","restriction":"Crirc::Protocol::Message"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"selected_hooks = self.hooks.select do |rule, hooks|\n rule.test(msg)\nend\nselected_hooks.each do |rule, hooks|\n hooks.each do |hook|\n message_to_handle = msg.message\n rule_message = rule.message\n match = if message_to_handle && rule_message.is_a?(Regex)\n rule_message.match(message_to_handle)\n end\n hook.call(msg, match)\n end\nend\nself.hooks.fetch(msg.command) do\n Array(Hook).new\nend\nself\n"}},{"id":"hooks:Hash(Trigger,Array(Hook))-instance-method","html_id":"hooks:Hash(Trigger,Array(Hook))-instance-method","name":"hooks","doc":"Hooks associated with `Trigger`","summary":"

Hooks associated with Trigger

","abstract":false,"args":[],"args_string":" : Hash(Trigger, Array(Hook))","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/binding/handler.cr#L20","def":{"name":"hooks","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Hash(Trigger, Array(Hook))","visibility":"Public","body":"@hooks"}},{"id":"on(command:String="PRIVMSG",source:HookRule=nil,arguments:HookRule=nil,message:HookRule=nil,doc:Tuple(String,String)?=nil,&hook:Hook)-instance-method","html_id":"on(command:String="PRIVMSG",source:HookRule=nil,arguments:HookRule=nil,message:HookRule=nil,doc:Tuple(String,String)?=nil,&hook:Hook)-instance-method","name":"on","doc":"Register a news Hook that is called when the incoming messages meet a set\nof conditions: command name (JOIN, PRIVMSG, ...), source, arguments, message.\n\n- command : Condition that match exactly with the command of the incomming message.\n- source : Condition that match with the source of the incomming message.\n- arguments : Condition that match with the arguments of the incomming message.\n- message : Condition that match with the message of the incomming message.\n- doc : Documentation lines (`{short, long}`)\n- hook : function to call if the conditions are met (with the parameters `message` and `match`).","summary":"

Register a news Hook that is called when the incoming messages meet a set of conditions: command name (JOIN, PRIVMSG, ...), source, arguments, message.

","abstract":false,"args":[{"name":"command","doc":null,"default_value":"\"PRIVMSG\"","external_name":"command","restriction":"String"},{"name":"source","doc":null,"default_value":"nil","external_name":"source","restriction":"HookRule"},{"name":"arguments","doc":null,"default_value":"nil","external_name":"arguments","restriction":"HookRule"},{"name":"message","doc":null,"default_value":"nil","external_name":"message","restriction":"HookRule"},{"name":"doc","doc":null,"default_value":"nil","external_name":"doc","restriction":"::Tuple(String, String) | ::Nil"}],"args_string":"(command : String = "PRIVMSG", source : HookRule = nil, arguments : HookRule = nil, message : HookRule = nil, doc : Tuple(String, String)? = nil, &hook : Hook)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/binding/handler.cr#L40","def":{"name":"on","args":[{"name":"command","doc":null,"default_value":"\"PRIVMSG\"","external_name":"command","restriction":"String"},{"name":"source","doc":null,"default_value":"nil","external_name":"source","restriction":"HookRule"},{"name":"arguments","doc":null,"default_value":"nil","external_name":"arguments","restriction":"HookRule"},{"name":"message","doc":null,"default_value":"nil","external_name":"message","restriction":"HookRule"},{"name":"doc","doc":null,"default_value":"nil","external_name":"doc","restriction":"::Tuple(String, String) | ::Nil"}],"double_splat":null,"splat_index":null,"yields":0,"block_arg":{"name":"hook","doc":null,"default_value":"","external_name":"hook","restriction":"Hook"},"return_type":"","visibility":"Public","body":"rule = Trigger.new(command, source, arguments, message)\nself.hooks.fetch(rule) do\n self.hooks[rule] = Array(Hook).new\nend\nself.hooks[rule] << hook\nif doc.nil?\nelse\n @docs[doc[0]] = doc[1]\nend\nself\n"}}],"macros":[],"types":[{"html_id":"crirc/Crirc/Binding/Handler/Hook","path":"Crirc/Binding/Handler/Hook.html","kind":"alias","full_name":"Crirc::Binding::Handler::Hook","name":"Hook","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/crirc/binding/handler.cr","line_number":17,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/binding/handler.cr#L17"}],"repository_name":"crirc","program":false,"enum":false,"alias":true,"aliased":"Proc(Crirc::Protocol::Message, (Regex::MatchData | Nil), Nil)","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc/Binding/Handler","kind":"module","full_name":"Crirc::Binding::Handler","name":"Handler"},"doc":null,"summary":null,"class_methods":[],"constructors":[],"instance_methods":[],"macros":[],"types":[]},{"html_id":"crirc/Crirc/Binding/Handler/HookRule","path":"Crirc/Binding/Handler/HookRule.html","kind":"alias","full_name":"Crirc::Binding::Handler::HookRule","name":"HookRule","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/crirc/binding/handler.cr","line_number":16,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/binding/handler.cr#L16"}],"repository_name":"crirc","program":false,"enum":false,"alias":true,"aliased":"(Regex | String | Nil)","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc/Binding/Handler","kind":"module","full_name":"Crirc::Binding::Handler","name":"Handler"},"doc":null,"summary":null,"class_methods":[],"constructors":[],"instance_methods":[],"macros":[],"types":[]}]},{"html_id":"crirc/Crirc/Binding/Trigger","path":"Crirc/Binding/Trigger.html","kind":"class","full_name":"Crirc::Binding::Trigger","name":"Trigger","abstract":false,"superclass":{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"crirc/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crirc/binding/trigger.cr","line_number":3,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/binding/trigger.cr#L3"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc/Binding","kind":"module","full_name":"Crirc::Binding","name":"Binding"},"doc":"The `Trigger` define a set of rules.\nTheses rules can test an event (message) to \"match\" with.","summary":"

The Trigger define a set of rules.

","class_methods":[],"constructors":[{"id":"new(command="PRIVMSG",source=nil,arguments=nil,message=nil)-class-method","html_id":"new(command="PRIVMSG",source=nil,arguments=nil,message=nil)-class-method","name":"new","doc":"- \"command\" is by default \"PRIVMSG\", and must be a UPPERCASE irc command (JOIN, PRIVMSG, ...)\n- \"source\" is optional. It represents the sender.\n- \"arguments\" is optional. It represents the parameters (without the last argument if prefixed with \":\", like in JOIN).\n- \"message\" is optional. It represents the last argument when prefixed with \":\".","summary":"","abstract":false,"args":[{"name":"command","doc":null,"default_value":"\"PRIVMSG\"","external_name":"command","restriction":""},{"name":"source","doc":null,"default_value":"nil","external_name":"source","restriction":""},{"name":"arguments","doc":null,"default_value":"nil","external_name":"arguments","restriction":""},{"name":"message","doc":null,"default_value":"nil","external_name":"message","restriction":""}],"args_string":"(command = "PRIVMSG", source = nil, arguments = nil, message = nil)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/binding/trigger.cr#L19","def":{"name":"new","args":[{"name":"command","doc":null,"default_value":"\"PRIVMSG\"","external_name":"command","restriction":""},{"name":"source","doc":null,"default_value":"nil","external_name":"source","restriction":""},{"name":"arguments","doc":null,"default_value":"nil","external_name":"arguments","restriction":""},{"name":"message","doc":null,"default_value":"nil","external_name":"message","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize(command, source, arguments, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"arguments:Regex|String|Nil-instance-method","html_id":"arguments:Regex|String|Nil-instance-method","name":"arguments","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : Regex | String | Nil","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/binding/trigger.cr#L9","def":{"name":"arguments","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"@arguments"}},{"id":"command:Regex|String-instance-method","html_id":"command:Regex|String-instance-method","name":"command","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : Regex | String","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/binding/trigger.cr#L9","def":{"name":"command","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"@command"}},{"id":"message:Regex|String|Nil-instance-method","html_id":"message:Regex|String|Nil-instance-method","name":"message","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : Regex | String | Nil","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/binding/trigger.cr#L9","def":{"name":"message","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"@message"}},{"id":"raw_arguments:Regex|String|Nil-instance-method","html_id":"raw_arguments:Regex|String|Nil-instance-method","name":"raw_arguments","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : Regex | String | Nil","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/binding/trigger.cr#L11","def":{"name":"raw_arguments","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"@arguments"}},{"id":"source:Regex|String|Nil-instance-method","html_id":"source:Regex|String|Nil-instance-method","name":"source","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : Regex | String | Nil","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/binding/trigger.cr#L9","def":{"name":"source","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"@source"}},{"id":"test(msg:Crirc::Protocol::Message)-instance-method","html_id":"test(msg:Crirc::Protocol::Message)-instance-method","name":"test","doc":"returns true if the the message match with the condition of this trigger","summary":"

returns true if the the message match with the condition of this trigger

","abstract":false,"args":[{"name":"msg","doc":null,"default_value":"","external_name":"msg","restriction":"Crirc::Protocol::Message"}],"args_string":"(msg : Crirc::Protocol::Message)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/binding/trigger.cr#L23","def":{"name":"test","args":[{"name":"msg","doc":null,"default_value":"","external_name":"msg","restriction":"Crirc::Protocol::Message"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"(((test_command(msg)) && (test_source(msg))) && (test_arguments(msg))) && (test_message(msg))"}}],"macros":[],"types":[]}]},{"html_id":"crirc/Crirc/Broadcast","path":"Crirc/Broadcast.html","kind":"module","full_name":"Crirc::Broadcast","name":"Broadcast","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/crirc/broadcast/broadcast.cr","line_number":2,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/broadcast/broadcast.cr#L2"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[{"html_id":"crirc/Crirc/ChanList","kind":"class","full_name":"Crirc::ChanList","name":"ChanList"},{"html_id":"crirc/Crirc/UserList","kind":"class","full_name":"Crirc::UserList","name":"UserList"}],"namespace":{"html_id":"crirc/Crirc","kind":"module","full_name":"Crirc","name":"Crirc"},"doc":"Allow to send data to several IRC entity as one.","summary":"

Allow to send data to several IRC entity as one.

","class_methods":[],"constructors":[],"instance_methods":[{"id":"puts(context:Controller::Controller,data)-instance-method","html_id":"puts(context:Controller::Controller,data)-instance-method","name":"puts","doc":"TODO","summary":"

TODO

","abstract":true,"args":[{"name":"context","doc":null,"default_value":"","external_name":"context","restriction":"Controller::Controller"},{"name":"data","doc":null,"default_value":"","external_name":"data","restriction":""}],"args_string":"(context : Controller::Controller, data)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/broadcast/broadcast.cr#L4","def":{"name":"puts","args":[{"name":"context","doc":null,"default_value":"","external_name":"context","restriction":"Controller::Controller"},{"name":"data","doc":null,"default_value":"","external_name":"data","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":""}}],"macros":[],"types":[]},{"html_id":"crirc/Crirc/ChanList","path":"Crirc/ChanList.html","kind":"class","full_name":"Crirc::ChanList","name":"ChanList","abstract":false,"superclass":{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"crirc/Crirc/Broadcast","kind":"module","full_name":"Crirc::Broadcast","name":"Broadcast"},{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"crirc/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crirc/broadcast/chan_list.cr","line_number":9,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/broadcast/chan_list.cr#L9"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[{"html_id":"crirc/Crirc/Broadcast","kind":"module","full_name":"Crirc::Broadcast","name":"Broadcast"}],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc","kind":"module","full_name":"Crirc","name":"Crirc"},"doc":"TODO\nA ChanList is the associated list of `Protocol::Chan` and a `UserList`.\nIt is useful for a server that need to keep a track of all the uers\nconnected to any of its chans.","summary":"

TODO A ChanList is the associated list of Protocol::Chan and a UserList.

","class_methods":[],"constructors":[{"id":"new-class-method","html_id":"new-class-method","name":"new","doc":null,"summary":null,"abstract":false,"args":[],"args_string":"","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/broadcast/chan_list.cr#L13","def":{"name":"new","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"chans:Hash(Protocol::Chan,UserList)-instance-method","html_id":"chans:Hash(Protocol::Chan,UserList)-instance-method","name":"chans","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : Hash(Protocol::Chan, UserList)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/broadcast/chan_list.cr#L10","def":{"name":"chans","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Hash(Protocol::Chan, UserList)","visibility":"Public","body":"@chans"}},{"id":"puts(context:Controller::Controller,data)-instance-method","html_id":"puts(context:Controller::Controller,data)-instance-method","name":"puts","doc":"TODO\nBroadcast a message to the users","summary":"

TODO Broadcast a message to the users

","abstract":false,"args":[{"name":"context","doc":null,"default_value":"","external_name":"context","restriction":"Controller::Controller"},{"name":"data","doc":null,"default_value":"","external_name":"data","restriction":""}],"args_string":"(context : Controller::Controller, data)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/broadcast/chan_list.cr#L19","def":{"name":"puts","args":[{"name":"context","doc":null,"default_value":"","external_name":"context","restriction":"Controller::Controller"},{"name":"data","doc":null,"default_value":"","external_name":"data","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"@chans.each do |chan, userlist|\n userlist.puts(context, data)\nend"}}],"macros":[],"types":[]},{"html_id":"crirc/Crirc/Controller","path":"Crirc/Controller.html","kind":"module","full_name":"Crirc::Controller","name":"Controller","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/crirc/controller/controller.cr","line_number":3,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/controller.cr#L3"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc","kind":"module","full_name":"Crirc","name":"Crirc"},"doc":"A `Controller` is controlling a `Network`.\nIt is in charge to manage IRC messages at the IRC protocol level.","summary":"

A Controller is controlling a Network.

","class_methods":[],"constructors":[],"instance_methods":[],"macros":[],"types":[{"html_id":"crirc/Crirc/Controller/Client","path":"Crirc/Controller/Client.html","kind":"class","full_name":"Crirc::Controller::Client","name":"Client","abstract":false,"superclass":{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"crirc/Crirc/Binding/Handler","kind":"module","full_name":"Crirc::Binding::Handler","name":"Handler"},{"html_id":"crirc/Crirc/Controller/Controller","kind":"module","full_name":"Crirc::Controller::Controller","name":"Controller"},{"html_id":"crirc/Crirc/Controller/Command/Chan","kind":"module","full_name":"Crirc::Controller::Command::Chan","name":"Chan"},{"html_id":"crirc/Crirc/Controller/Command","kind":"module","full_name":"Crirc::Controller::Command","name":"Command"},{"html_id":"crirc/Crirc/Controller/Command/Talk","kind":"module","full_name":"Crirc::Controller::Command::Talk","name":"Talk"},{"html_id":"crirc/Crirc/Controller/Command","kind":"module","full_name":"Crirc::Controller::Command","name":"Command"},{"html_id":"crirc/Crirc/Controller/Command/User","kind":"module","full_name":"Crirc::Controller::Command::User","name":"User"},{"html_id":"crirc/Crirc/Controller/Command","kind":"module","full_name":"Crirc::Controller::Command","name":"Command"},{"html_id":"crirc/Crirc/Controller/Command/Ping","kind":"module","full_name":"Crirc::Controller::Command::Ping","name":"Ping"},{"html_id":"crirc/Crirc/Controller/Command","kind":"module","full_name":"Crirc::Controller::Command","name":"Command"},{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"crirc/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crirc/controller/client.cr","line_number":7,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/client.cr#L7"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[{"html_id":"crirc/Crirc/Binding/Handler","kind":"module","full_name":"Crirc::Binding::Handler","name":"Handler"},{"html_id":"crirc/Crirc/Controller/Command/Chan","kind":"module","full_name":"Crirc::Controller::Command::Chan","name":"Chan"},{"html_id":"crirc/Crirc/Controller/Command/Ping","kind":"module","full_name":"Crirc::Controller::Command::Ping","name":"Ping"},{"html_id":"crirc/Crirc/Controller/Command/Talk","kind":"module","full_name":"Crirc::Controller::Command::Talk","name":"Talk"},{"html_id":"crirc/Crirc/Controller/Command/User","kind":"module","full_name":"Crirc::Controller::Command::User","name":"User"},{"html_id":"crirc/Crirc/Controller/Controller","kind":"module","full_name":"Crirc::Controller::Controller","name":"Controller"}],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc/Controller","kind":"module","full_name":"Crirc::Controller","name":"Controller"},"doc":null,"summary":null,"class_methods":[],"constructors":[{"id":"new(network)-class-method","html_id":"new(network)-class-method","name":"new","doc":"New `Client` that controls the given `Network`.","summary":"

New Client that controls the given Network.

","abstract":false,"args":[{"name":"network","doc":null,"default_value":"","external_name":"network","restriction":""}],"args_string":"(network)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/client.cr#L30","def":{"name":"new","args":[{"name":"network","doc":null,"default_value":"","external_name":"network","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize(network)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"chanlist:ChanList-instance-method","html_id":"chanlist:ChanList-instance-method","name":"chanlist","doc":"TODO Not used yet","summary":"

TODO Not used yet

","abstract":false,"args":[],"args_string":" : ChanList","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/client.cr#L20","def":{"name":"chanlist","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"ChanList","visibility":"Public","body":"@chanlist"}},{"id":"gets(*args,**options)-instance-method","html_id":"gets(*args,**options)-instance-method","name":"gets","doc":"delegated to the `Network`","summary":"

delegated to the Network

","abstract":false,"args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"args_string":"(*args, **options)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/client.cr#L27","def":{"name":"gets","args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"double_splat":{"name":"options","doc":null,"default_value":"","external_name":"options","restriction":""},"splat_index":0,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"network.gets(*args, **options)"}},{"id":"gets(*args,**options,&)-instance-method","html_id":"gets(*args,**options,&)-instance-method","name":"gets","doc":"delegated to the `Network`","summary":"

delegated to the Network

","abstract":false,"args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/client.cr#L27","def":{"name":"gets","args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"double_splat":{"name":"options","doc":null,"default_value":"","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arg":null,"return_type":"","visibility":"Public","body":"network.gets(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"id":"init-instance-method","html_id":"init-instance-method","name":"init","doc":"Initialize the connection with the IRC server (send pass, nick and user).","summary":"

Initialize the connection with the IRC server (send pass, nick and user).

","abstract":false,"args":[],"args_string":"","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/client.cr#L36","def":{"name":"init","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"if @network.pass\n puts(\"PASS #{@network.pass}\")\nend\nputs(\"NICK #{@network.nick.to_s}\")\nputs(\"USER #{@network.user.to_s} \\\"#{@network.domain}\\\" \\\"#{@network.irc_server}\\\" :#{@network.realname.to_s}\")\n"}},{"id":"network:Network::Client-instance-method","html_id":"network:Network::Client-instance-method","name":"network","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : Network::Client","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/client.cr#L17","def":{"name":"network","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Network::Client","visibility":"Public","body":"@network"}},{"id":"nick(*args,**options)-instance-method","html_id":"nick(*args,**options)-instance-method","name":"nick","doc":"delegated to the `Network`","summary":"

delegated to the Network

","abstract":false,"args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"args_string":"(*args, **options)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/client.cr#L23","def":{"name":"nick","args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"double_splat":{"name":"options","doc":null,"default_value":"","external_name":"options","restriction":""},"splat_index":0,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"network.nick(*args, **options)"}},{"id":"nick(*args,**options,&)-instance-method","html_id":"nick(*args,**options,&)-instance-method","name":"nick","doc":"delegated to the `Network`","summary":"

delegated to the Network

","abstract":false,"args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/client.cr#L23","def":{"name":"nick","args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"double_splat":{"name":"options","doc":null,"default_value":"","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arg":null,"return_type":"","visibility":"Public","body":"network.nick(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"id":"on_ready(&b):Client-instance-method","html_id":"on_ready(&b):Client-instance-method","name":"on_ready","doc":"Start the callback when the server is ready to receive messages.\n\n```\nbot.on_ready do\n amazing_stuff(bot)\nend\n```","summary":"

Start the callback when the server is ready to receive messages.

","abstract":false,"args":[],"args_string":"(&b) : Client","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/client.cr#L49","def":{"name":"on_ready","args":[],"double_splat":null,"splat_index":null,"yields":0,"block_arg":{"name":"b","doc":null,"default_value":"","external_name":"b","restriction":""},"return_type":"Client","visibility":"Public","body":"self.on(\"001\") do\n b.call\nend\nself\n"}},{"id":"puts(*args,**options)-instance-method","html_id":"puts(*args,**options)-instance-method","name":"puts","doc":"delegated to the `Network`","summary":"

delegated to the Network

","abstract":false,"args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"args_string":"(*args, **options)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/client.cr#L25","def":{"name":"puts","args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"double_splat":{"name":"options","doc":null,"default_value":"","external_name":"options","restriction":""},"splat_index":0,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"network.puts(*args, **options)"}},{"id":"puts(*args,**options,&)-instance-method","html_id":"puts(*args,**options,&)-instance-method","name":"puts","doc":"delegated to the `Network`","summary":"

delegated to the Network

","abstract":false,"args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/client.cr#L25","def":{"name":"puts","args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"double_splat":{"name":"options","doc":null,"default_value":"","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arg":null,"return_type":"","visibility":"Public","body":"network.puts(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"id":"reply(msg,data)-instance-method","html_id":"reply(msg,data)-instance-method","name":"reply","doc":"Reply to a given message with a privmsg.\n\n```\nbot.on(\"JOIN\") do |msg, _|\n nick = msg.source.source_nick\n context.reply(msg, \"Welcome to #{nick}\")\nend\n```","summary":"

Reply to a given message with a privmsg.

","abstract":false,"args":[{"name":"msg","doc":null,"default_value":"","external_name":"msg","restriction":""},{"name":"data","doc":null,"default_value":"","external_name":"data","restriction":""}],"args_string":"(msg, data)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/client.cr#L62","def":{"name":"reply","args":[{"name":"msg","doc":null,"default_value":"","external_name":"msg","restriction":""},{"name":"data","doc":null,"default_value":"","external_name":"data","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"target = msg.argument_list.first\ntarget_object = ((target[0] == '#' ? Crirc::Protocol::Chan : Crirc::Protocol::User).new(target)).as(Crirc::Protocol::Target)\nself.privmsg(target_object, data)\n"}}],"macros":[],"types":[]},{"html_id":"crirc/Crirc/Controller/Command","path":"Crirc/Controller/Command.html","kind":"module","full_name":"Crirc::Controller::Command","name":"Command","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/crirc/controller/command.cr","line_number":5,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command.cr#L5"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[{"html_id":"crirc/Crirc/Controller/Command/Chan","kind":"module","full_name":"Crirc::Controller::Command::Chan","name":"Chan"},{"html_id":"crirc/Crirc/Controller/Command/Ping","kind":"module","full_name":"Crirc::Controller::Command::Ping","name":"Ping"},{"html_id":"crirc/Crirc/Controller/Command/Talk","kind":"module","full_name":"Crirc::Controller::Command::Talk","name":"Talk"},{"html_id":"crirc/Crirc/Controller/Command/User","kind":"module","full_name":"Crirc::Controller::Command::User","name":"User"}],"namespace":{"html_id":"crirc/Crirc/Controller","kind":"module","full_name":"Crirc::Controller","name":"Controller"},"doc":"The module `Command` is the scope for the IRC commands\ndefined in the standard.\nEach of these commands is included by a `Controller`, so the `puts` function\nis implemented by the `Controller`.","summary":"

The module Command is the scope for the IRC commands defined in the standard.

","class_methods":[],"constructors":[],"instance_methods":[{"id":"puts(data)-instance-method","html_id":"puts(data)-instance-method","name":"puts","doc":null,"summary":null,"abstract":true,"args":[{"name":"data","doc":null,"default_value":"","external_name":"data","restriction":""}],"args_string":"(data)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command.cr#L6","def":{"name":"puts","args":[{"name":"data","doc":null,"default_value":"","external_name":"data","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":""}}],"macros":[],"types":[{"html_id":"crirc/Crirc/Controller/Command/Chan","path":"Crirc/Controller/Command/Chan.html","kind":"module","full_name":"Crirc::Controller::Command::Chan","name":"Chan","abstract":false,"superclass":null,"ancestors":[{"html_id":"crirc/Crirc/Controller/Command","kind":"module","full_name":"Crirc::Controller::Command","name":"Command"}],"locations":[{"filename":"src/crirc/controller/command/chan.cr","line_number":4,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/chan.cr#L4"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[{"html_id":"crirc/Crirc/Controller/Command","kind":"module","full_name":"Crirc::Controller::Command","name":"Command"}],"extended_modules":[],"subclasses":[],"including_types":[{"html_id":"crirc/Crirc/Controller/Client","kind":"class","full_name":"Crirc::Controller::Client","name":"Client"}],"namespace":{"html_id":"crirc/Crirc/Controller/Command","kind":"module","full_name":"Crirc::Controller::Command","name":"Command"},"doc":"Defines the IRC commands that are related to chans (join, part, ...).","summary":"

Defines the IRC commands that are related to chans (join, part, ...).

","class_methods":[],"constructors":[],"instance_methods":[{"id":"invite(chan:Crirc::Protocol::Chan,user:Crirc::Protocol::User)-instance-method","html_id":"invite(chan:Crirc::Protocol::Chan,user:Crirc::Protocol::User)-instance-method","name":"invite","doc":"Invite the user \"user\" to the channel \"chan\".","summary":"

Invite the user \"user\" to the channel \"chan\".

","abstract":false,"args":[{"name":"chan","doc":null,"default_value":"","external_name":"chan","restriction":"Crirc::Protocol::Chan"},{"name":"user","doc":null,"default_value":"","external_name":"user","restriction":"Crirc::Protocol::User"}],"args_string":"(chan : Crirc::Protocol::Chan, user : Crirc::Protocol::User)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/chan.cr#L77","def":{"name":"invite","args":[{"name":"chan","doc":null,"default_value":"","external_name":"chan","restriction":"Crirc::Protocol::Chan"},{"name":"user","doc":null,"default_value":"","external_name":"user","restriction":"Crirc::Protocol::User"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"puts(\"INVITE #{user.name} #{chan.name}\")"}},{"id":"join(chans:Enumerable(Crirc::Protocol::Chan),passwords:Enumerable(String)=[""])-instance-method","html_id":"join(chans:Enumerable(Crirc::Protocol::Chan),passwords:Enumerable(String)=[""])-instance-method","name":"join","doc":"Request to join the chan(s) \"chans\", with password(s) \"passwords\".\nThe passwords may be ignored if not needed.","summary":"

Request to join the chan(s) \"chans\", with password(s) \"passwords\".

","abstract":false,"args":[{"name":"chans","doc":null,"default_value":"","external_name":"chans","restriction":"Enumerable(Crirc::Protocol::Chan)"},{"name":"passwords","doc":null,"default_value":"[\"\"]","external_name":"passwords","restriction":"Enumerable(String)"}],"args_string":"(chans : Enumerable(Crirc::Protocol::Chan), passwords : Enumerable(String) = [""])","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/chan.cr#L14","def":{"name":"join","args":[{"name":"chans","doc":null,"default_value":"","external_name":"chans","restriction":"Enumerable(Crirc::Protocol::Chan)"},{"name":"passwords","doc":null,"default_value":"[\"\"]","external_name":"passwords","restriction":"Enumerable(String)"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"to_join = format_list(chans)\npasses = passwords.join(\",\")\nputs(\"JOIN #{to_join} #{passes}\")\n"}},{"id":"join(chan:Crirc::Protocol::Chan,password:String="")-instance-method","html_id":"join(chan:Crirc::Protocol::Chan,password:String="")-instance-method","name":"join","doc":"Overloads the join function for 1 chan.","summary":"

Overloads the join function for 1 chan.

","abstract":false,"args":[{"name":"chan","doc":null,"default_value":"","external_name":"chan","restriction":"Crirc::Protocol::Chan"},{"name":"password","doc":null,"default_value":"\"\"","external_name":"password","restriction":"String"}],"args_string":"(chan : Crirc::Protocol::Chan, password : String = "")","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/chan.cr#L21","def":{"name":"join","args":[{"name":"chan","doc":null,"default_value":"","external_name":"chan","restriction":"Crirc::Protocol::Chan"},{"name":"password","doc":null,"default_value":"\"\"","external_name":"password","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"join({chan}, {password})"}},{"id":"kick(chans:Enumerable(Crirc::Protocol::Chan),users:Enumerable(Crirc::Protocol::User),msg:String?=nil)-instance-method","html_id":"kick(chans:Enumerable(Crirc::Protocol::Chan),users:Enumerable(Crirc::Protocol::User),msg:String?=nil)-instance-method","name":"kick","doc":"Kick the users users from the channels chans.\nThe reason of the kick will be displayed if given as a parameter.","summary":"

Kick the users users from the channels chans.

","abstract":false,"args":[{"name":"chans","doc":null,"default_value":"","external_name":"chans","restriction":"Enumerable(Crirc::Protocol::Chan)"},{"name":"users","doc":null,"default_value":"","external_name":"users","restriction":"Enumerable(Crirc::Protocol::User)"},{"name":"msg","doc":null,"default_value":"nil","external_name":"msg","restriction":"String | ::Nil"}],"args_string":"(chans : Enumerable(Crirc::Protocol::Chan), users : Enumerable(Crirc::Protocol::User), msg : String? = nil)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/chan.cr#L83","def":{"name":"kick","args":[{"name":"chans","doc":null,"default_value":"","external_name":"chans","restriction":"Enumerable(Crirc::Protocol::Chan)"},{"name":"users","doc":null,"default_value":"","external_name":"users","restriction":"Enumerable(Crirc::Protocol::User)"},{"name":"msg","doc":null,"default_value":"nil","external_name":"msg","restriction":"String | ::Nil"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"chan = format_list(chans)\ntargets = format_list(users)\nif msg\n reason = \":#{msg}\"\nend\nputs(\"KICK #{chan} #{targets} #{reason}\")\n"}},{"id":"kick(chans:Enumerable(Crirc::Protocol::Chan),user:Crirc::Protocol::User,msg:String?=nil)-instance-method","html_id":"kick(chans:Enumerable(Crirc::Protocol::Chan),user:Crirc::Protocol::User,msg:String?=nil)-instance-method","name":"kick","doc":"Overloads the kick function for several chans, one user.","summary":"

Overloads the kick function for several chans, one user.

","abstract":false,"args":[{"name":"chans","doc":null,"default_value":"","external_name":"chans","restriction":"Enumerable(Crirc::Protocol::Chan)"},{"name":"user","doc":null,"default_value":"","external_name":"user","restriction":"Crirc::Protocol::User"},{"name":"msg","doc":null,"default_value":"nil","external_name":"msg","restriction":"String | ::Nil"}],"args_string":"(chans : Enumerable(Crirc::Protocol::Chan), user : Crirc::Protocol::User, msg : String? = nil)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/chan.cr#L91","def":{"name":"kick","args":[{"name":"chans","doc":null,"default_value":"","external_name":"chans","restriction":"Enumerable(Crirc::Protocol::Chan)"},{"name":"user","doc":null,"default_value":"","external_name":"user","restriction":"Crirc::Protocol::User"},{"name":"msg","doc":null,"default_value":"nil","external_name":"msg","restriction":"String | ::Nil"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"kick(chans, {user}, msg)"}},{"id":"kick(chan:Crirc::Protocol::Chan,users:Enumerable(Crirc::Protocol::User),msg:String?=nil)-instance-method","html_id":"kick(chan:Crirc::Protocol::Chan,users:Enumerable(Crirc::Protocol::User),msg:String?=nil)-instance-method","name":"kick","doc":"Overloads the kick function for one chan, several users.","summary":"

Overloads the kick function for one chan, several users.

","abstract":false,"args":[{"name":"chan","doc":null,"default_value":"","external_name":"chan","restriction":"Crirc::Protocol::Chan"},{"name":"users","doc":null,"default_value":"","external_name":"users","restriction":"Enumerable(Crirc::Protocol::User)"},{"name":"msg","doc":null,"default_value":"nil","external_name":"msg","restriction":"String | ::Nil"}],"args_string":"(chan : Crirc::Protocol::Chan, users : Enumerable(Crirc::Protocol::User), msg : String? = nil)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/chan.cr#L96","def":{"name":"kick","args":[{"name":"chan","doc":null,"default_value":"","external_name":"chan","restriction":"Crirc::Protocol::Chan"},{"name":"users","doc":null,"default_value":"","external_name":"users","restriction":"Enumerable(Crirc::Protocol::User)"},{"name":"msg","doc":null,"default_value":"nil","external_name":"msg","restriction":"String | ::Nil"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"kick({chan}, users, msg)"}},{"id":"kick(chan:Crirc::Protocol::Chan,user:Crirc::Protocol::User,msg:String?=nil)-instance-method","html_id":"kick(chan:Crirc::Protocol::Chan,user:Crirc::Protocol::User,msg:String?=nil)-instance-method","name":"kick","doc":"Overloads the kick function for one chan, one user.","summary":"

Overloads the kick function for one chan, one user.

","abstract":false,"args":[{"name":"chan","doc":null,"default_value":"","external_name":"chan","restriction":"Crirc::Protocol::Chan"},{"name":"user","doc":null,"default_value":"","external_name":"user","restriction":"Crirc::Protocol::User"},{"name":"msg","doc":null,"default_value":"nil","external_name":"msg","restriction":"String | ::Nil"}],"args_string":"(chan : Crirc::Protocol::Chan, user : Crirc::Protocol::User, msg : String? = nil)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/chan.cr#L101","def":{"name":"kick","args":[{"name":"chan","doc":null,"default_value":"","external_name":"chan","restriction":"Crirc::Protocol::Chan"},{"name":"user","doc":null,"default_value":"","external_name":"user","restriction":"Crirc::Protocol::User"},{"name":"msg","doc":null,"default_value":"nil","external_name":"msg","restriction":"String | ::Nil"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"kick({chan}, {user}, msg)"}},{"id":"list(chans:Enumerable(Crirc::Protocol::Chan?)?)-instance-method","html_id":"list(chans:Enumerable(Crirc::Protocol::Chan?)?)-instance-method","name":"list","doc":"List the channels and their topics.\nIf the chans parameter is given, lists the status of the given chans.","summary":"

List the channels and their topics.

","abstract":false,"args":[{"name":"chans","doc":null,"default_value":"","external_name":"chans","restriction":"Enumerable(Crirc::Protocol::Chan | ::Nil) | ::Nil"}],"args_string":"(chans : Enumerable(Crirc::Protocol::Chan?)?)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/chan.cr#L66","def":{"name":"list","args":[{"name":"chans","doc":null,"default_value":"","external_name":"chans","restriction":"Enumerable(Crirc::Protocol::Chan | ::Nil) | ::Nil"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"if chans\n target = format_list(chans)\nend\nputs(\"LIST #{target}\")\n"}},{"id":"list(chan:Crirc::Protocol::Chan)-instance-method","html_id":"list(chan:Crirc::Protocol::Chan)-instance-method","name":"list","doc":"Overloads the list function for 1 chan.","summary":"

Overloads the list function for 1 chan.

","abstract":false,"args":[{"name":"chan","doc":null,"default_value":"","external_name":"chan","restriction":"Crirc::Protocol::Chan"}],"args_string":"(chan : Crirc::Protocol::Chan)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/chan.cr#L72","def":{"name":"list","args":[{"name":"chan","doc":null,"default_value":"","external_name":"chan","restriction":"Crirc::Protocol::Chan"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"puts(\"LIST #{chan.name}\")"}},{"id":"mode(chan:Crirc::Protocol::Chan,flags:String,user:Crirc::Protocol::User?=nil)-instance-method","html_id":"mode(chan:Crirc::Protocol::Chan,flags:String,user:Crirc::Protocol::User?=nil)-instance-method","name":"mode","doc":"Request to change the mode of the given channel.\nIf the mode is to be applied to an user, precise it.","summary":"

Request to change the mode of the given channel.

","abstract":false,"args":[{"name":"chan","doc":null,"default_value":"","external_name":"chan","restriction":"Crirc::Protocol::Chan"},{"name":"flags","doc":null,"default_value":"","external_name":"flags","restriction":"String"},{"name":"user","doc":null,"default_value":"nil","external_name":"user","restriction":"Crirc::Protocol::User | ::Nil"}],"args_string":"(chan : Crirc::Protocol::Chan, flags : String, user : Crirc::Protocol::User? = nil)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/chan.cr#L39","def":{"name":"mode","args":[{"name":"chan","doc":null,"default_value":"","external_name":"chan","restriction":"Crirc::Protocol::Chan"},{"name":"flags","doc":null,"default_value":"","external_name":"flags","restriction":"String"},{"name":"user","doc":null,"default_value":"nil","external_name":"user","restriction":"Crirc::Protocol::User | ::Nil"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"target = user ? user.name : \"\"\nputs(\"MODE #{chan.name} #{flags} #{target}\")\n"}},{"id":"names(chans:Enumerable(Crirc::Protocol::Chan)?)-instance-method","html_id":"names(chans:Enumerable(Crirc::Protocol::Chan)?)-instance-method","name":"names","doc":"Request the names of the users in the given channel(s).\nIf no channel is given, requests the names of the users in every\nknown channel.","summary":"

Request the names of the users in the given channel(s).

","abstract":false,"args":[{"name":"chans","doc":null,"default_value":"","external_name":"chans","restriction":"Enumerable(Crirc::Protocol::Chan) | ::Nil"}],"args_string":"(chans : Enumerable(Crirc::Protocol::Chan)?)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/chan.cr#L54","def":{"name":"names","args":[{"name":"chans","doc":null,"default_value":"","external_name":"chans","restriction":"Enumerable(Crirc::Protocol::Chan) | ::Nil"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"if chans\n target = format_list(chans)\nend\nputs(\"NAMES #{target}\")\n"}},{"id":"names(chan:Crirc::Protocol::Chan)-instance-method","html_id":"names(chan:Crirc::Protocol::Chan)-instance-method","name":"names","doc":"Overloads the names function for 1 chan.","summary":"

Overloads the names function for 1 chan.

","abstract":false,"args":[{"name":"chan","doc":null,"default_value":"","external_name":"chan","restriction":"Crirc::Protocol::Chan"}],"args_string":"(chan : Crirc::Protocol::Chan)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/chan.cr#L60","def":{"name":"names","args":[{"name":"chan","doc":null,"default_value":"","external_name":"chan","restriction":"Crirc::Protocol::Chan"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"names({chan})"}},{"id":"part(chans:Enumerable(Crirc::Protocol::Chan),msg:String?=nil)-instance-method","html_id":"part(chans:Enumerable(Crirc::Protocol::Chan),msg:String?=nil)-instance-method","name":"part","doc":"Request to leave the channel(s) \"chans\", with an optional part message \"msg\".","summary":"

Request to leave the channel(s) \"chans\", with an optional part message \"msg\".

","abstract":false,"args":[{"name":"chans","doc":null,"default_value":"","external_name":"chans","restriction":"Enumerable(Crirc::Protocol::Chan)"},{"name":"msg","doc":null,"default_value":"nil","external_name":"msg","restriction":"String | ::Nil"}],"args_string":"(chans : Enumerable(Crirc::Protocol::Chan), msg : String? = nil)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/chan.cr#L26","def":{"name":"part","args":[{"name":"chans","doc":null,"default_value":"","external_name":"chans","restriction":"Enumerable(Crirc::Protocol::Chan)"},{"name":"msg","doc":null,"default_value":"nil","external_name":"msg","restriction":"String | ::Nil"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"to_leave = format_list(chans)\nif msg\n reason = \":#{msg}\"\nend\nputs(\"PART #{to_leave} #{reason}\")\n"}},{"id":"part(chan:Crirc::Protocol::Chan,msg:String?=nil)-instance-method","html_id":"part(chan:Crirc::Protocol::Chan,msg:String?=nil)-instance-method","name":"part","doc":"Overloads the part function for 1 chan.","summary":"

Overloads the part function for 1 chan.

","abstract":false,"args":[{"name":"chan","doc":null,"default_value":"","external_name":"chan","restriction":"Crirc::Protocol::Chan"},{"name":"msg","doc":null,"default_value":"nil","external_name":"msg","restriction":"String | ::Nil"}],"args_string":"(chan : Crirc::Protocol::Chan, msg : String? = nil)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/chan.cr#L33","def":{"name":"part","args":[{"name":"chan","doc":null,"default_value":"","external_name":"chan","restriction":"Crirc::Protocol::Chan"},{"name":"msg","doc":null,"default_value":"nil","external_name":"msg","restriction":"String | ::Nil"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"part({chan}, msg)"}},{"id":"topic(chan:Crirc::Protocol::Chan,msg:String?=nil)-instance-method","html_id":"topic(chan:Crirc::Protocol::Chan,msg:String?=nil)-instance-method","name":"topic","doc":"Request to change the topic of the given channel.\nIf no topic is given, requests the topic of the given channel.","summary":"

Request to change the topic of the given channel.

","abstract":false,"args":[{"name":"chan","doc":null,"default_value":"","external_name":"chan","restriction":"Crirc::Protocol::Chan"},{"name":"msg","doc":null,"default_value":"nil","external_name":"msg","restriction":"String | ::Nil"}],"args_string":"(chan : Crirc::Protocol::Chan, msg : String? = nil)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/chan.cr#L46","def":{"name":"topic","args":[{"name":"chan","doc":null,"default_value":"","external_name":"chan","restriction":"Crirc::Protocol::Chan"},{"name":"msg","doc":null,"default_value":"nil","external_name":"msg","restriction":"String | ::Nil"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"if msg\n topic = \":#{msg}\"\nend\nputs(\"TOPIC #{chan.name} #{topic}\")\n"}}],"macros":[],"types":[]},{"html_id":"crirc/Crirc/Controller/Command/Ping","path":"Crirc/Controller/Command/Ping.html","kind":"module","full_name":"Crirc::Controller::Command::Ping","name":"Ping","abstract":false,"superclass":null,"ancestors":[{"html_id":"crirc/Crirc/Controller/Command","kind":"module","full_name":"Crirc::Controller::Command","name":"Command"}],"locations":[{"filename":"src/crirc/controller/command/ping.cr","line_number":4,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/ping.cr#L4"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[{"html_id":"crirc/Crirc/Controller/Command","kind":"module","full_name":"Crirc::Controller::Command","name":"Command"}],"extended_modules":[],"subclasses":[],"including_types":[{"html_id":"crirc/Crirc/Controller/Client","kind":"class","full_name":"Crirc::Controller::Client","name":"Client"}],"namespace":{"html_id":"crirc/Crirc/Controller/Command","kind":"module","full_name":"Crirc::Controller::Command","name":"Command"},"doc":"Defines the IRC ping.","summary":"

Defines the IRC ping.

","class_methods":[],"constructors":[],"instance_methods":[{"id":"ping(msg:String?="0")-instance-method","html_id":"ping(msg:String?="0")-instance-method","name":"ping","doc":"Send a ping to check if the other end is alive","summary":"

Send a ping to check if the other end is alive

","abstract":false,"args":[{"name":"msg","doc":null,"default_value":"\"0\"","external_name":"msg","restriction":"String | ::Nil"}],"args_string":"(msg : String? = "0")","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/ping.cr#L8","def":{"name":"ping","args":[{"name":"msg","doc":null,"default_value":"\"0\"","external_name":"msg","restriction":"String | ::Nil"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"puts(\"PING :#{msg}\")"}},{"id":"pong(msg:String?="0")-instance-method","html_id":"pong(msg:String?="0")-instance-method","name":"pong","doc":"Answer to a ping command with a pong","summary":"

Answer to a ping command with a pong

","abstract":false,"args":[{"name":"msg","doc":null,"default_value":"\"0\"","external_name":"msg","restriction":"String | ::Nil"}],"args_string":"(msg : String? = "0")","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/ping.cr#L13","def":{"name":"pong","args":[{"name":"msg","doc":null,"default_value":"\"0\"","external_name":"msg","restriction":"String | ::Nil"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"puts(\"PONG :#{msg}\")"}}],"macros":[],"types":[]},{"html_id":"crirc/Crirc/Controller/Command/Talk","path":"Crirc/Controller/Command/Talk.html","kind":"module","full_name":"Crirc::Controller::Command::Talk","name":"Talk","abstract":false,"superclass":null,"ancestors":[{"html_id":"crirc/Crirc/Controller/Command","kind":"module","full_name":"Crirc::Controller::Command","name":"Command"}],"locations":[{"filename":"src/crirc/controller/command/talk.cr","line_number":4,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/talk.cr#L4"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[{"html_id":"crirc/Crirc/Controller/Command","kind":"module","full_name":"Crirc::Controller::Command","name":"Command"}],"extended_modules":[],"subclasses":[],"including_types":[{"html_id":"crirc/Crirc/Controller/Client","kind":"class","full_name":"Crirc::Controller::Client","name":"Client"}],"namespace":{"html_id":"crirc/Crirc/Controller/Command","kind":"module","full_name":"Crirc::Controller::Command","name":"Command"},"doc":"Defines the IRC commands related to communicating between \"humans\".","summary":"

Defines the IRC commands related to communicating between \"humans\".

","class_methods":[],"constructors":[],"instance_methods":[{"id":"notice(target:Crirc::Protocol::Target,msg:String)-instance-method","html_id":"notice(target:Crirc::Protocol::Target,msg:String)-instance-method","name":"notice","doc":"Send a notice to a target","summary":"

Send a notice to a target

","abstract":false,"args":[{"name":"target","doc":null,"default_value":"","external_name":"target","restriction":"Crirc::Protocol::Target"},{"name":"msg","doc":null,"default_value":"","external_name":"msg","restriction":"String"}],"args_string":"(target : Crirc::Protocol::Target, msg : String)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/talk.cr#L8","def":{"name":"notice","args":[{"name":"target","doc":null,"default_value":"","external_name":"target","restriction":"Crirc::Protocol::Target"},{"name":"msg","doc":null,"default_value":"","external_name":"msg","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"puts(\"NOTICE #{target.name} :#{msg}\")"}},{"id":"privmsg(target:Crirc::Protocol::Target,msg:String)-instance-method","html_id":"privmsg(target:Crirc::Protocol::Target,msg:String)-instance-method","name":"privmsg","doc":"Send a message to a chan or an user","summary":"

Send a message to a chan or an user

","abstract":false,"args":[{"name":"target","doc":null,"default_value":"","external_name":"target","restriction":"Crirc::Protocol::Target"},{"name":"msg","doc":null,"default_value":"","external_name":"msg","restriction":"String"}],"args_string":"(target : Crirc::Protocol::Target, msg : String)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/talk.cr#L13","def":{"name":"privmsg","args":[{"name":"target","doc":null,"default_value":"","external_name":"target","restriction":"Crirc::Protocol::Target"},{"name":"msg","doc":null,"default_value":"","external_name":"msg","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"puts(\"PRIVMSG #{target.name} :#{msg}\")"}}],"macros":[],"types":[]},{"html_id":"crirc/Crirc/Controller/Command/User","path":"Crirc/Controller/Command/User.html","kind":"module","full_name":"Crirc::Controller::Command::User","name":"User","abstract":false,"superclass":null,"ancestors":[{"html_id":"crirc/Crirc/Controller/Command","kind":"module","full_name":"Crirc::Controller::Command","name":"Command"}],"locations":[{"filename":"src/crirc/controller/command/user.cr","line_number":4,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/user.cr#L4"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[{"html_id":"crirc/Crirc/Controller/Command","kind":"module","full_name":"Crirc::Controller::Command","name":"Command"}],"extended_modules":[],"subclasses":[],"including_types":[{"html_id":"crirc/Crirc/Controller/Client","kind":"class","full_name":"Crirc::Controller::Client","name":"Client"}],"namespace":{"html_id":"crirc/Crirc/Controller/Command","kind":"module","full_name":"Crirc::Controller::Command","name":"Command"},"doc":"Defines the IRC commands related to the users (whois, mode).","summary":"

Defines the IRC commands related to the users (whois, mode).

","class_methods":[],"constructors":[],"instance_methods":[{"id":"mode(target:Crirc::Protocol::Target,flags:String)-instance-method","html_id":"mode(target:Crirc::Protocol::Target,flags:String)-instance-method","name":"mode","doc":"Request to set the mode of the user.\nNOTE : only the user itself can change it\nNOTE : it should also be possible to send empty flags to get the mode","summary":"

Request to set the mode of the user.

","abstract":false,"args":[{"name":"target","doc":null,"default_value":"","external_name":"target","restriction":"Crirc::Protocol::Target"},{"name":"flags","doc":null,"default_value":"","external_name":"flags","restriction":"String"}],"args_string":"(target : Crirc::Protocol::Target, flags : String)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/user.cr#L20","def":{"name":"mode","args":[{"name":"target","doc":null,"default_value":"","external_name":"target","restriction":"Crirc::Protocol::Target"},{"name":"flags","doc":null,"default_value":"","external_name":"flags","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"puts(\"MODE #{target.name} #{flags}\")"}},{"id":"whois(target:Crirc::Protocol::Target)-instance-method","html_id":"whois(target:Crirc::Protocol::Target)-instance-method","name":"whois","doc":"Request data about a given target","summary":"

Request data about a given target

","abstract":false,"args":[{"name":"target","doc":null,"default_value":"","external_name":"target","restriction":"Crirc::Protocol::Target"}],"args_string":"(target : Crirc::Protocol::Target)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/user.cr#L8","def":{"name":"whois","args":[{"name":"target","doc":null,"default_value":"","external_name":"target","restriction":"Crirc::Protocol::Target"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"puts(\"WHOIS #{target.name}\")"}},{"id":"whowas(target:Crirc::Protocol::Target)-instance-method","html_id":"whowas(target:Crirc::Protocol::Target)-instance-method","name":"whowas","doc":"Request data about the target who used to have the given name","summary":"

Request data about the target who used to have the given name

","abstract":false,"args":[{"name":"target","doc":null,"default_value":"","external_name":"target","restriction":"Crirc::Protocol::Target"}],"args_string":"(target : Crirc::Protocol::Target)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/command/user.cr#L13","def":{"name":"whowas","args":[{"name":"target","doc":null,"default_value":"","external_name":"target","restriction":"Crirc::Protocol::Target"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"puts(\"WHOWAS #{target.name}\")"}}],"macros":[],"types":[]}]},{"html_id":"crirc/Crirc/Controller/Controller","path":"Crirc/Controller/Controller.html","kind":"module","full_name":"Crirc::Controller::Controller","name":"Controller","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/crirc/controller/controller.cr","line_number":5,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/controller.cr#L5"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[{"html_id":"crirc/Crirc/Controller/Client","kind":"class","full_name":"Crirc::Controller::Client","name":"Client"},{"html_id":"crirc/Crirc/Controller/Server","kind":"class","full_name":"Crirc::Controller::Server","name":"Server"},{"html_id":"crirc/Crirc/Controller/ServerClient","kind":"class","full_name":"Crirc::Controller::ServerClient","name":"ServerClient"}],"namespace":{"html_id":"crirc/Crirc/Controller","kind":"module","full_name":"Crirc::Controller","name":"Controller"},"doc":"Interface implemented by every `Crirc::Controller`","summary":"

Interface implemented by every Crirc::Controller

","class_methods":[],"constructors":[],"instance_methods":[{"id":"gets-instance-method","html_id":"gets-instance-method","name":"gets","doc":null,"summary":null,"abstract":true,"args":[],"args_string":"","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/controller.cr#L7","def":{"name":"gets","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":""}},{"id":"puts(data)-instance-method","html_id":"puts(data)-instance-method","name":"puts","doc":null,"summary":null,"abstract":true,"args":[{"name":"data","doc":null,"default_value":"","external_name":"data","restriction":""}],"args_string":"(data)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/controller.cr#L6","def":{"name":"puts","args":[{"name":"data","doc":null,"default_value":"","external_name":"data","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":""}}],"macros":[],"types":[]},{"html_id":"crirc/Crirc/Controller/Server","path":"Crirc/Controller/Server.html","kind":"class","full_name":"Crirc::Controller::Server","name":"Server","abstract":false,"superclass":{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"crirc/Crirc/Controller/Controller","kind":"module","full_name":"Crirc::Controller::Controller","name":"Controller"},{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"crirc/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crirc/controller/server.cr","line_number":5,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/server.cr#L5"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[{"html_id":"crirc/Crirc/Controller/Controller","kind":"module","full_name":"Crirc::Controller::Controller","name":"Controller"}],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc/Controller","kind":"module","full_name":"Crirc::Controller","name":"Controller"},"doc":"TODO","summary":"

TODO

","class_methods":[],"constructors":[{"id":"new(network)-class-method","html_id":"new(network)-class-method","name":"new","doc":null,"summary":null,"abstract":false,"args":[{"name":"network","doc":null,"default_value":"","external_name":"network","restriction":""}],"args_string":"(network)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/server.cr#L13","def":{"name":"new","args":[{"name":"network","doc":null,"default_value":"","external_name":"network","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize(network)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"gets(*args,**options)-instance-method","html_id":"gets(*args,**options)-instance-method","name":"gets","doc":null,"summary":null,"abstract":false,"args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"args_string":"(*args, **options)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/server.cr#L11","def":{"name":"gets","args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"double_splat":{"name":"options","doc":null,"default_value":"","external_name":"options","restriction":""},"splat_index":0,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"network.gets(*args, **options)"}},{"id":"gets(*args,**options,&)-instance-method","html_id":"gets(*args,**options,&)-instance-method","name":"gets","doc":null,"summary":null,"abstract":false,"args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/server.cr#L11","def":{"name":"gets","args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"double_splat":{"name":"options","doc":null,"default_value":"","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arg":null,"return_type":"","visibility":"Public","body":"network.gets(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"id":"network:Network::Server-instance-method","html_id":"network:Network::Server-instance-method","name":"network","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : Network::Server","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/server.cr#L8","def":{"name":"network","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Network::Server","visibility":"Public","body":"@network"}},{"id":"puts(*args,**options)-instance-method","html_id":"puts(*args,**options)-instance-method","name":"puts","doc":null,"summary":null,"abstract":false,"args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"args_string":"(*args, **options)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/server.cr#L10","def":{"name":"puts","args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"double_splat":{"name":"options","doc":null,"default_value":"","external_name":"options","restriction":""},"splat_index":0,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"network.puts(*args, **options)"}},{"id":"puts(*args,**options,&)-instance-method","html_id":"puts(*args,**options,&)-instance-method","name":"puts","doc":null,"summary":null,"abstract":false,"args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/server.cr#L10","def":{"name":"puts","args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"double_splat":{"name":"options","doc":null,"default_value":"","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arg":null,"return_type":"","visibility":"Public","body":"network.puts(*args, **options) do |*yield_args|\n yield *yield_args\nend"}}],"macros":[],"types":[]},{"html_id":"crirc/Crirc/Controller/ServerClient","path":"Crirc/Controller/ServerClient.html","kind":"class","full_name":"Crirc::Controller::ServerClient","name":"ServerClient","abstract":false,"superclass":{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"crirc/Crirc/Controller/Controller","kind":"module","full_name":"Crirc::Controller::Controller","name":"Controller"},{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"crirc/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crirc/controller/server_client.cr","line_number":6,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/server_client.cr#L6"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[{"html_id":"crirc/Crirc/Controller/Controller","kind":"module","full_name":"Crirc::Controller::Controller","name":"Controller"}],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc/Controller","kind":"module","full_name":"Crirc::Controller","name":"Controller"},"doc":"TODO\nHandles the clients connected to a `Server`","summary":"

TODO Handles the clients connected to a Server

","class_methods":[],"constructors":[{"id":"new(network)-class-method","html_id":"new(network)-class-method","name":"new","doc":null,"summary":null,"abstract":false,"args":[{"name":"network","doc":null,"default_value":"","external_name":"network","restriction":""}],"args_string":"(network)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/server_client.cr#L14","def":{"name":"new","args":[{"name":"network","doc":null,"default_value":"","external_name":"network","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize(network)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"gets(*args,**options)-instance-method","html_id":"gets(*args,**options)-instance-method","name":"gets","doc":null,"summary":null,"abstract":false,"args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"args_string":"(*args, **options)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/server_client.cr#L12","def":{"name":"gets","args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"double_splat":{"name":"options","doc":null,"default_value":"","external_name":"options","restriction":""},"splat_index":0,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"network.gets(*args, **options)"}},{"id":"gets(*args,**options,&)-instance-method","html_id":"gets(*args,**options,&)-instance-method","name":"gets","doc":null,"summary":null,"abstract":false,"args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/server_client.cr#L12","def":{"name":"gets","args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"double_splat":{"name":"options","doc":null,"default_value":"","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arg":null,"return_type":"","visibility":"Public","body":"network.gets(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"id":"network:Network::ServerClient-instance-method","html_id":"network:Network::ServerClient-instance-method","name":"network","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : Network::ServerClient","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/server_client.cr#L9","def":{"name":"network","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Network::ServerClient","visibility":"Public","body":"@network"}},{"id":"puts(*args,**options)-instance-method","html_id":"puts(*args,**options)-instance-method","name":"puts","doc":null,"summary":null,"abstract":false,"args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"args_string":"(*args, **options)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/server_client.cr#L11","def":{"name":"puts","args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"double_splat":{"name":"options","doc":null,"default_value":"","external_name":"options","restriction":""},"splat_index":0,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"network.puts(*args, **options)"}},{"id":"puts(*args,**options,&)-instance-method","html_id":"puts(*args,**options,&)-instance-method","name":"puts","doc":null,"summary":null,"abstract":false,"args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/controller/server_client.cr#L11","def":{"name":"puts","args":[{"name":"args","doc":null,"default_value":"","external_name":"args","restriction":""}],"double_splat":{"name":"options","doc":null,"default_value":"","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arg":null,"return_type":"","visibility":"Public","body":"network.puts(*args, **options) do |*yield_args|\n yield *yield_args\nend"}}],"macros":[],"types":[]}]},{"html_id":"crirc/Crirc/Network","path":"Crirc/Network.html","kind":"module","full_name":"Crirc::Network","name":"Network","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/crirc/network/network.cr","line_number":3,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/network.cr#L3"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc","kind":"module","full_name":"Crirc","name":"Crirc"},"doc":"A `Network` is controlling a I/O.\nIt is in charge to manage TCP messages at the TCP protocol level.","summary":"

A Network is controlling a I/O.

","class_methods":[],"constructors":[],"instance_methods":[],"macros":[],"types":[{"html_id":"crirc/Crirc/Network/Client","path":"Crirc/Network/Client.html","kind":"class","full_name":"Crirc::Network::Client","name":"Client","abstract":false,"superclass":{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"crirc/Crirc/Network/Network","kind":"module","full_name":"Crirc::Network::Network","name":"Network"},{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"crirc/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crirc/network/client.cr","line_number":6,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L6"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[{"html_id":"crirc/Crirc/Network/Network","kind":"module","full_name":"Crirc::Network::Network","name":"Network"}],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc/Network","kind":"module","full_name":"Crirc::Network","name":"Network"},"doc":null,"summary":null,"class_methods":[],"constructors":[{"id":"new(nick:String,ip,port=nil.as(UInt16|::Nil),ssl=true,user=nil,realname=nil,domain=nil,pass=nil,irc_server=nil,read_timeout=120_u16,write_timeout=5_u16,keepalive=true)-class-method","html_id":"new(nick:String,ip,port=nil.as(UInt16|::Nil),ssl=true,user=nil,realname=nil,domain=nil,pass=nil,irc_server=nil,read_timeout=120_u16,write_timeout=5_u16,keepalive=true)-class-method","name":"new","doc":"default port is 6667 or 6697 if ssl is true","summary":"

default port is 6667 or 6697 if ssl is true

","abstract":false,"args":[{"name":"nick","doc":null,"default_value":"","external_name":"nick","restriction":"String"},{"name":"ip","doc":null,"default_value":"","external_name":"ip","restriction":""},{"name":"port","doc":null,"default_value":"nil.as(UInt16 | ::Nil)","external_name":"port","restriction":""},{"name":"ssl","doc":null,"default_value":"true","external_name":"ssl","restriction":""},{"name":"user","doc":null,"default_value":"nil","external_name":"user","restriction":""},{"name":"realname","doc":null,"default_value":"nil","external_name":"realname","restriction":""},{"name":"domain","doc":null,"default_value":"nil","external_name":"domain","restriction":""},{"name":"pass","doc":null,"default_value":"nil","external_name":"pass","restriction":""},{"name":"irc_server","doc":null,"default_value":"nil","external_name":"irc_server","restriction":""},{"name":"read_timeout","doc":null,"default_value":"120_u16","external_name":"read_timeout","restriction":""},{"name":"write_timeout","doc":null,"default_value":"5_u16","external_name":"write_timeout","restriction":""},{"name":"keepalive","doc":null,"default_value":"true","external_name":"keepalive","restriction":""}],"args_string":"(nick : String, ip, port = nil.as(UInt16 | ::Nil), ssl = true, user = nil, realname = nil, domain = nil, pass = nil, irc_server = nil, read_timeout = 120_u16, write_timeout = 5_u16, keepalive = true)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L26","def":{"name":"new","args":[{"name":"nick","doc":null,"default_value":"","external_name":"nick","restriction":"String"},{"name":"ip","doc":null,"default_value":"","external_name":"ip","restriction":""},{"name":"port","doc":null,"default_value":"nil.as(UInt16 | ::Nil)","external_name":"port","restriction":""},{"name":"ssl","doc":null,"default_value":"true","external_name":"ssl","restriction":""},{"name":"user","doc":null,"default_value":"nil","external_name":"user","restriction":""},{"name":"realname","doc":null,"default_value":"nil","external_name":"realname","restriction":""},{"name":"domain","doc":null,"default_value":"nil","external_name":"domain","restriction":""},{"name":"pass","doc":null,"default_value":"nil","external_name":"pass","restriction":""},{"name":"irc_server","doc":null,"default_value":"nil","external_name":"irc_server","restriction":""},{"name":"read_timeout","doc":null,"default_value":"120_u16","external_name":"read_timeout","restriction":""},{"name":"write_timeout","doc":null,"default_value":"5_u16","external_name":"write_timeout","restriction":""},{"name":"keepalive","doc":null,"default_value":"true","external_name":"keepalive","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize(nick, ip, port, ssl, user, realname, domain, pass, irc_server, read_timeout, write_timeout, keepalive)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"close-instance-method","html_id":"close-instance-method","name":"close","doc":"End the connection","summary":"

End the connection

","abstract":false,"args":[],"args_string":"","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L71","def":{"name":"close","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"socket.close\n@socket = nil\n"}},{"id":"connect-instance-method","html_id":"connect-instance-method","name":"connect","doc":"Connect to the target server","summary":"

Connect to the target server

","abstract":false,"args":[],"args_string":"","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L41","def":{"name":"connect","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"tcp_socket = TCPSocket.new(@ip, @port)\ntcp_socket.read_timeout = @read_timeout\ntcp_socket.write_timeout = @write_timeout\ntcp_socket.keepalive = @keepalive\n@socket = tcp_socket\nif @ssl\n @socket = OpenSSL::SSL::Socket::Client.new(tcp_socket)\nend\nself\n"}},{"id":"domain:String?-instance-method","html_id":"domain:String?-instance-method","name":"domain","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : String?","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L18","def":{"name":"domain","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String | ::Nil","visibility":"Public","body":"@domain"}},{"id":"gets-instance-method","html_id":"gets-instance-method","name":"gets","doc":"Wait and fetch the next incoming message","summary":"

Wait and fetch the next incoming message

","abstract":false,"args":[],"args_string":"","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L59","def":{"name":"gets","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"socket.gets"}},{"id":"ip:String-instance-method","html_id":"ip:String-instance-method","name":"ip","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : String","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L12","def":{"name":"ip","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String","visibility":"Public","body":"@ip"}},{"id":"irc_server:String?-instance-method","html_id":"irc_server:String?-instance-method","name":"irc_server","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : String?","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L20","def":{"name":"irc_server","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String | ::Nil","visibility":"Public","body":"@irc_server"}},{"id":"keepalive:Bool-instance-method","html_id":"keepalive:Bool-instance-method","name":"keepalive","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : Bool","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L23","def":{"name":"keepalive","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"@keepalive"}},{"id":"nick:String-instance-method","html_id":"nick:String-instance-method","name":"nick","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : String","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L11","def":{"name":"nick","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String","visibility":"Public","body":"@nick"}},{"id":"pass:String?-instance-method","html_id":"pass:String?-instance-method","name":"pass","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : String?","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L19","def":{"name":"pass","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String | ::Nil","visibility":"Public","body":"@pass"}},{"id":"port:UInt16-instance-method","html_id":"port:UInt16-instance-method","name":"port","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : UInt16","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L13","def":{"name":"port","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"UInt16","visibility":"Public","body":"@port"}},{"id":"puts(data)-instance-method","html_id":"puts(data)-instance-method","name":"puts","doc":"Send a message to the server","summary":"

Send a message to the server

","abstract":false,"args":[{"name":"data","doc":null,"default_value":"","external_name":"data","restriction":""}],"args_string":"(data)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L64","def":{"name":"puts","args":[{"name":"data","doc":null,"default_value":"","external_name":"data","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"socket.puts(data.strip)\nsocket.puts(\"\\r\\n\")\nsocket.flush\n"}},{"id":"read_timeout:UInt16-instance-method","html_id":"read_timeout:UInt16-instance-method","name":"read_timeout","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : UInt16","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L21","def":{"name":"read_timeout","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"UInt16","visibility":"Public","body":"@read_timeout"}},{"id":"realname:String-instance-method","html_id":"realname:String-instance-method","name":"realname","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : String","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L17","def":{"name":"realname","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String","visibility":"Public","body":"@realname"}},{"id":"socket-instance-method","html_id":"socket-instance-method","name":"socket","doc":null,"summary":null,"abstract":false,"args":[],"args_string":"","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L35","def":{"name":"socket","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"if @socket.nil?\n raise(\"Socket is not set. Add `client.connect()` before using `client.socket`\")\nend\n@socket.as(IrcSocket)\n"}},{"id":"ssl:Bool-instance-method","html_id":"ssl:Bool-instance-method","name":"ssl","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : Bool","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L14","def":{"name":"ssl","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"@ssl"}},{"id":"start(&)-instance-method","html_id":"start(&)-instance-method","name":"start","doc":"Start a new Controller::Client binded to the current object","summary":"

Start a new Controller::Client binded to the current object

","abstract":false,"args":[],"args_string":"(&)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L52","def":{"name":"start","args":[],"double_splat":null,"splat_index":null,"yields":1,"block_arg":null,"return_type":"","visibility":"Public","body":"controller = Controller::Client.new(self)\ncontroller.init\nyield controller\n"}},{"id":"user:String-instance-method","html_id":"user:String-instance-method","name":"user","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : String","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L16","def":{"name":"user","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String","visibility":"Public","body":"@user"}},{"id":"write_timeout:UInt16-instance-method","html_id":"write_timeout:UInt16-instance-method","name":"write_timeout","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : UInt16","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L22","def":{"name":"write_timeout","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"UInt16","visibility":"Public","body":"@write_timeout"}}],"macros":[],"types":[{"html_id":"crirc/Crirc/Network/Client/IrcSocket","path":"Crirc/Network/Client/IrcSocket.html","kind":"alias","full_name":"Crirc::Network::Client::IrcSocket","name":"IrcSocket","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/crirc/network/client.cr","line_number":9,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/client.cr#L9"}],"repository_name":"crirc","program":false,"enum":false,"alias":true,"aliased":"IO+","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc/Network/Client","kind":"class","full_name":"Crirc::Network::Client","name":"Client"},"doc":null,"summary":null,"class_methods":[],"constructors":[],"instance_methods":[],"macros":[],"types":[]}]},{"html_id":"crirc/Crirc/Network/Network","path":"Crirc/Network/Network.html","kind":"module","full_name":"Crirc::Network::Network","name":"Network","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/crirc/network/network.cr","line_number":5,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/network.cr#L5"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[{"html_id":"crirc/Crirc/Network/Client","kind":"class","full_name":"Crirc::Network::Client","name":"Client"},{"html_id":"crirc/Crirc/Network/ServerClient","kind":"class","full_name":"Crirc::Network::ServerClient","name":"ServerClient"}],"namespace":{"html_id":"crirc/Crirc/Network","kind":"module","full_name":"Crirc::Network","name":"Network"},"doc":"Interface implemented by every `Crirc::Network`.","summary":"

Interface implemented by every Crirc::Network.

","class_methods":[],"constructors":[],"instance_methods":[{"id":"gets-instance-method","html_id":"gets-instance-method","name":"gets","doc":null,"summary":null,"abstract":true,"args":[],"args_string":"","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/network.cr#L7","def":{"name":"gets","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":""}},{"id":"puts(data)-instance-method","html_id":"puts(data)-instance-method","name":"puts","doc":null,"summary":null,"abstract":true,"args":[{"name":"data","doc":null,"default_value":"","external_name":"data","restriction":""}],"args_string":"(data)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/network.cr#L6","def":{"name":"puts","args":[{"name":"data","doc":null,"default_value":"","external_name":"data","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":""}}],"macros":[],"types":[]},{"html_id":"crirc/Crirc/Network/Server","path":"Crirc/Network/Server.html","kind":"class","full_name":"Crirc::Network::Server","name":"Server","abstract":false,"superclass":{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"crirc/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crirc/network/server.cr","line_number":1,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/server.cr#L1"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc/Network","kind":"module","full_name":"Crirc::Network","name":"Network"},"doc":null,"summary":null,"class_methods":[],"constructors":[{"id":"new-class-method","html_id":"new-class-method","name":"new","doc":null,"summary":null,"abstract":false,"args":[],"args_string":"","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/server.cr#L2","def":{"name":"new","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"accept-instance-method","html_id":"accept-instance-method","name":"accept","doc":"Wait for a client and yield it","summary":"

Wait for a client and yield it

","abstract":false,"args":[],"args_string":"","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/server.cr#L10","def":{"name":"accept","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":""}},{"id":"start-instance-method","html_id":"start-instance-method","name":"start","doc":"Listen on the port","summary":"

Listen on the port

","abstract":false,"args":[],"args_string":"","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/server.cr#L6","def":{"name":"start","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":""}}],"macros":[],"types":[]},{"html_id":"crirc/Crirc/Network/ServerClient","path":"Crirc/Network/ServerClient.html","kind":"class","full_name":"Crirc::Network::ServerClient","name":"ServerClient","abstract":false,"superclass":{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"crirc/Crirc/Network/Network","kind":"module","full_name":"Crirc::Network::Network","name":"Network"},{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"crirc/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crirc/network/server_client.cr","line_number":3,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/server_client.cr#L3"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[{"html_id":"crirc/Crirc/Network/Network","kind":"module","full_name":"Crirc::Network::Network","name":"Network"}],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc/Network","kind":"module","full_name":"Crirc::Network","name":"Network"},"doc":null,"summary":null,"class_methods":[],"constructors":[{"id":"new-class-method","html_id":"new-class-method","name":"new","doc":null,"summary":null,"abstract":false,"args":[],"args_string":"","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/server_client.cr#L6","def":{"name":"new","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"gets-instance-method","html_id":"gets-instance-method","name":"gets","doc":"Wait and fetch the next incoming message","summary":"

Wait and fetch the next incoming message

","abstract":false,"args":[],"args_string":"","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/server_client.cr#L10","def":{"name":"gets","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":""}},{"id":"puts(data)-instance-method","html_id":"puts(data)-instance-method","name":"puts","doc":"Send a message to the server","summary":"

Send a message to the server

","abstract":false,"args":[{"name":"data","doc":null,"default_value":"","external_name":"data","restriction":""}],"args_string":"(data)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/network/server_client.cr#L14","def":{"name":"puts","args":[{"name":"data","doc":null,"default_value":"","external_name":"data","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":""}}],"macros":[],"types":[]}]},{"html_id":"crirc/Crirc/Protocol","path":"Crirc/Protocol.html","kind":"module","full_name":"Crirc::Protocol","name":"Protocol","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/crirc/protocol/target.cr","line_number":2,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/target.cr#L2"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc","kind":"module","full_name":"Crirc","name":"Crirc"},"doc":null,"summary":null,"class_methods":[],"constructors":[],"instance_methods":[],"macros":[],"types":[{"html_id":"crirc/Crirc/Protocol/Chan","path":"Crirc/Protocol/Chan.html","kind":"class","full_name":"Crirc::Protocol::Chan","name":"Chan","abstract":false,"superclass":{"html_id":"crirc/Crirc/Protocol/Target","kind":"class","full_name":"Crirc::Protocol::Target","name":"Target"},"ancestors":[{"html_id":"crirc/Crirc/Protocol/Target","kind":"class","full_name":"Crirc::Protocol::Target","name":"Target"},{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"crirc/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crirc/protocol/chan.cr","line_number":4,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/chan.cr#L4"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc/Protocol","kind":"module","full_name":"Crirc::Protocol","name":"Protocol"},"doc":"Represents an IRC channel.","summary":"

Represents an IRC channel.

","class_methods":[],"constructors":[{"id":"new(name)-class-method","html_id":"new(name)-class-method","name":"new","doc":null,"summary":null,"abstract":false,"args":[{"name":"name","doc":null,"default_value":"","external_name":"name","restriction":""}],"args_string":"(name)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/chan.cr#L23","def":{"name":"new","args":[{"name":"name","doc":null,"default_value":"","external_name":"name","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize(name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"modes:String-instance-method","html_id":"modes:String-instance-method","name":"modes","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : String","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/chan.cr#L20","def":{"name":"modes","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String","visibility":"Public","body":"@modes"}},{"id":"modes=(modes:String)-instance-method","html_id":"modes=(modes:String)-instance-method","name":"modes=","doc":null,"summary":null,"abstract":false,"args":[{"name":"modes","doc":null,"default_value":"","external_name":"modes","restriction":"String"}],"args_string":"(modes : String)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/chan.cr#L20","def":{"name":"modes=","args":[{"name":"modes","doc":null,"default_value":"","external_name":"modes","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"@modes = modes"}},{"id":"motd:Motd-instance-method","html_id":"motd:Motd-instance-method","name":"motd","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : Motd","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/chan.cr#L21","def":{"name":"motd","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Motd","visibility":"Public","body":"@motd"}},{"id":"motd=(motd:Motd)-instance-method","html_id":"motd=(motd:Motd)-instance-method","name":"motd=","doc":null,"summary":null,"abstract":false,"args":[{"name":"motd","doc":null,"default_value":"","external_name":"motd","restriction":"Motd"}],"args_string":"(motd : Motd)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/chan.cr#L21","def":{"name":"motd=","args":[{"name":"motd","doc":null,"default_value":"","external_name":"motd","restriction":"Motd"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"@motd = motd"}},{"id":"name:String-instance-method","html_id":"name:String-instance-method","name":"name","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : String","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/chan.cr#L19","def":{"name":"name","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String","visibility":"Public","body":"@name"}}],"macros":[],"types":[{"html_id":"crirc/Crirc/Protocol/Chan/Motd","path":"Crirc/Protocol/Chan/Motd.html","kind":"class","full_name":"Crirc::Protocol::Chan::Motd","name":"Motd","abstract":false,"superclass":{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"crirc/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crirc/protocol/chan.cr","line_number":5,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/chan.cr#L5"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc/Protocol/Chan","kind":"class","full_name":"Crirc::Protocol::Chan","name":"Chan"},"doc":null,"summary":null,"class_methods":[],"constructors":[{"id":"new(message,user)-class-method","html_id":"new(message,user)-class-method","name":"new","doc":null,"summary":null,"abstract":false,"args":[{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":""},{"name":"user","doc":null,"default_value":"","external_name":"user","restriction":""}],"args_string":"(message, user)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/chan.cr#L10","def":{"name":"new","args":[{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":""},{"name":"user","doc":null,"default_value":"","external_name":"user","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize(message, user)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"message:String-instance-method","html_id":"message:String-instance-method","name":"message","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : String","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/chan.cr#L6","def":{"name":"message","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String","visibility":"Public","body":"@message"}},{"id":"set_motd(message,user)-instance-method","html_id":"set_motd(message,user)-instance-method","name":"set_motd","doc":null,"summary":null,"abstract":false,"args":[{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":""},{"name":"user","doc":null,"default_value":"","external_name":"user","restriction":""}],"args_string":"(message, user)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/chan.cr#L14","def":{"name":"set_motd","args":[{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":""},{"name":"user","doc":null,"default_value":"","external_name":"user","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"@message = message\n@user = user\n@timestamp = Time.utc.to_unix\n"}},{"id":"timestamp:Int64-instance-method","html_id":"timestamp:Int64-instance-method","name":"timestamp","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : Int64","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/chan.cr#L8","def":{"name":"timestamp","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"id":"user:String-instance-method","html_id":"user:String-instance-method","name":"user","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : String","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/chan.cr#L7","def":{"name":"user","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String","visibility":"Public","body":"@user"}}],"macros":[],"types":[]},{"html_id":"crirc/Crirc/Protocol/Chan/ParsingError","path":"Crirc/Protocol/Chan/ParsingError.html","kind":"class","full_name":"Crirc::Protocol::Chan::ParsingError","name":"ParsingError","abstract":false,"superclass":{"html_id":"crirc/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"crirc/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"crirc/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crirc/protocol/chan.cr","line_number":31,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/chan.cr#L31"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc/Protocol/Chan","kind":"class","full_name":"Crirc::Protocol::Chan","name":"Chan"},"doc":null,"summary":null,"class_methods":[],"constructors":[],"instance_methods":[],"macros":[],"types":[]}]},{"html_id":"crirc/Crirc/Protocol/Message","path":"Crirc/Protocol/Message.html","kind":"class","full_name":"Crirc::Protocol::Message","name":"Message","abstract":false,"superclass":{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"crirc/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crirc/protocol/message.cr","line_number":6,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/message.cr#L6"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[{"id":"R_ARG","name":"R_ARG","value":"\"(?: (?#{R_ARG_ONE}(?: #{R_ARG_ONE})*))\"","doc":null,"summary":null},{"id":"R_ARG_ONE","name":"R_ARG_ONE","value":"\"(?:[^: ][^ ]*)\"","doc":null,"summary":null},{"id":"R_CMD","name":"R_CMD","value":"\"(?[A-Z]+|\\\\d{3})\"","doc":null,"summary":null},{"id":"R_MSG","name":"R_MSG","value":"\"(?: \\\\:(?.+)?)\"","doc":null,"summary":null},{"id":"R_SRC","name":"R_SRC","value":"\"(\\\\:(?[^[:space:]]+) )\"","doc":null,"summary":null}],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc/Protocol","kind":"module","full_name":"Crirc::Protocol","name":"Protocol"},"doc":"`Message` is the object that parse the raw TCP body as a IRC message.\n\nMessage are a IRC core part. They contain a command, the arguments, and\nthe message (last argument in the IRC protocol).\nTODO: improve the message to appear in as the last argument. cf: fast_irc","summary":"

Message is the object that parse the raw TCP body as a IRC message.

","class_methods":[],"constructors":[{"id":"new(raw)-class-method","html_id":"new(raw)-class-method","name":"new","doc":null,"summary":null,"abstract":false,"args":[{"name":"raw","doc":null,"default_value":"","external_name":"raw","restriction":""}],"args_string":"(raw)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/message.cr#L28","def":{"name":"new","args":[{"name":"raw","doc":null,"default_value":"","external_name":"raw","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize(raw)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"argument_list:Array(String)-instance-method","html_id":"argument_list:Array(String)-instance-method","name":"argument_list","doc":"The arguments formated into an Array.\n\n```\nmsg.argument_list # => [\"user1\", \"+0\"]\n```","summary":"

The arguments formated into an Array.

","abstract":false,"args":[],"args_string":" : Array(String)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/message.cr#L55","def":{"name":"argument_list","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Array(String)","visibility":"Public","body":"if @arguments.nil? && @message.nil?\n return Array(String).new\nend\nif @message.nil?\n return (@arguments.as(String)).split(\" \")\nend\nif @arguments.nil?\n return [@message.as(String)]\nend\nreturn ((@arguments.as(String)).split(\" \")) << (@message.as(String))\n"}},{"id":"arguments:String?-instance-method","html_id":"arguments:String?-instance-method","name":"arguments","doc":"The arguments as a string (\"user1 +0\", \"pingmessage\", ...)","summary":"

The arguments as a string (\"user1 +0\", \"pingmessage\", ...)

","abstract":false,"args":[],"args_string":" : String?","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/message.cr#L17","def":{"name":"arguments","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String | ::Nil","visibility":"Public","body":"@arguments"}},{"id":"command:String-instance-method","html_id":"command:String-instance-method","name":"command","doc":"The command (\"PRIVMSG\", \"PING\", ...)","summary":"

The command (\"PRIVMSG\", \"PING\", ...)

","abstract":false,"args":[],"args_string":" : String","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/message.cr#L14","def":{"name":"command","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String","visibility":"Public","body":"@command"}},{"id":"message:String?-instance-method","html_id":"message:String?-instance-method","name":"message","doc":"The last argument when \":\" (\"This is a privmsg message\", ...)","summary":"

The last argument when \":\" (\"This is a privmsg message\", ...)

","abstract":false,"args":[],"args_string":" : String?","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/message.cr#L20","def":{"name":"message","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"id":"raw:String-instance-method","html_id":"raw:String-instance-method","name":"raw","doc":"Raw message without parsing","summary":"

Raw message without parsing

","abstract":false,"args":[],"args_string":" : String","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/message.cr#L8","def":{"name":"raw","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String","visibility":"Public","body":"@raw"}},{"id":"raw_arguments:String-instance-method","html_id":"raw_arguments:String-instance-method","name":"raw_arguments","doc":"Concatenation of `arguments` and `message`.\nIf the message exists, it is preceded by ':'\n\n```\nmsg.raw_arguments # => \"user1 +0 :do something\"\n```","summary":"

Concatenation of #arguments and #message.

","abstract":false,"args":[],"args_string":" : String","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/message.cr#L43","def":{"name":"raw_arguments","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String","visibility":"Public","body":"if @arguments.nil? && @message.nil?\n return \"\"\nend\nif @message.nil?\n return @arguments.to_s\nend\nif @arguments.nil?\n return \":#{@message}\"\nend\nreturn \"#{@arguments} :#{@message}\"\n"}},{"id":"source:String-instance-method","html_id":"source:String-instance-method","name":"source","doc":"Source of the message (ex: \"0\", \"abc@xyz\", ...)","summary":"

Source of the message (ex: \"0\", \"abc@xyz\", ...)

","abstract":false,"args":[],"args_string":" : String","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/message.cr#L11","def":{"name":"source","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String","visibility":"Public","body":"@source"}}],"macros":[],"types":[{"html_id":"crirc/Crirc/Protocol/Message/ParsingError","path":"Crirc/Protocol/Message/ParsingError.html","kind":"class","full_name":"Crirc::Protocol::Message::ParsingError","name":"ParsingError","abstract":false,"superclass":{"html_id":"crirc/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"crirc/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"crirc/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crirc/protocol/message.cr","line_number":62,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/message.cr#L62"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc/Protocol/Message","kind":"class","full_name":"Crirc::Protocol::Message","name":"Message"},"doc":null,"summary":null,"class_methods":[],"constructors":[],"instance_methods":[],"macros":[],"types":[]}]},{"html_id":"crirc/Crirc/Protocol/Target","path":"Crirc/Protocol/Target.html","kind":"class","full_name":"Crirc::Protocol::Target","name":"Target","abstract":true,"superclass":{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"crirc/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crirc/protocol/target.cr","line_number":2,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/target.cr#L2"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[{"html_id":"crirc/Crirc/Protocol/Chan","kind":"class","full_name":"Crirc::Protocol::Chan","name":"Chan"},{"html_id":"crirc/Crirc/Protocol/User","kind":"class","full_name":"Crirc::Protocol::User","name":"User"}],"including_types":[],"namespace":{"html_id":"crirc/Crirc/Protocol","kind":"module","full_name":"Crirc::Protocol","name":"Protocol"},"doc":"A target is a virtuel IRC entity that can receive message (`User`, `Chan`).","summary":"

A target is a virtuel IRC entity that can receive message (User, Chan).

","class_methods":[],"constructors":[],"instance_methods":[{"id":"name:String-instance-method","html_id":"name:String-instance-method","name":"name","doc":null,"summary":null,"abstract":true,"args":[],"args_string":" : String","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/target.cr#L3","def":{"name":"name","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String","visibility":"Public","body":""}}],"macros":[],"types":[]},{"html_id":"crirc/Crirc/Protocol/User","path":"Crirc/Protocol/User.html","kind":"class","full_name":"Crirc::Protocol::User","name":"User","abstract":false,"superclass":{"html_id":"crirc/Crirc/Protocol/Target","kind":"class","full_name":"Crirc::Protocol::Target","name":"Target"},"ancestors":[{"html_id":"crirc/Crirc/Protocol/Target","kind":"class","full_name":"Crirc::Protocol::Target","name":"Target"},{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"crirc/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crirc/protocol/user.cr","line_number":6,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/user.cr#L6"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[{"id":"CHARS_ALPHA","name":"CHARS_ALPHA","value":"\"[a-zA-Z]\"","doc":null,"summary":null},{"id":"CHARS_FIRST","name":"CHARS_FIRST","value":"\"#{CHARS_SPECIAL}|#{CHARS_ALPHA}\"","doc":null,"summary":null},{"id":"CHARS_NEXT","name":"CHARS_NEXT","value":"\"#{CHARS_FIRST}|#{CHARS_NUM}\"","doc":null,"summary":null},{"id":"CHARS_NUM","name":"CHARS_NUM","value":"\"[0-9\\\\-]\"","doc":null,"summary":null},{"id":"CHARS_SPECIAL","name":"CHARS_SPECIAL","value":"\"[_\\\\|\\\\[\\\\]\\\\\\\\\\\\`\\\\^\\\\{\\\\}]\"","doc":null,"summary":null}],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc/Protocol","kind":"module","full_name":"Crirc::Protocol","name":"Protocol"},"doc":"A User repretents a IRC client.\n\nIt has a nick, id and whois.","summary":"

A User repretents a IRC client.

","class_methods":[],"constructors":[{"id":"new(nick,id=nil,whois=nil)-class-method","html_id":"new(nick,id=nil,whois=nil)-class-method","name":"new","doc":null,"summary":null,"abstract":false,"args":[{"name":"nick","doc":null,"default_value":"","external_name":"nick","restriction":""},{"name":"id","doc":null,"default_value":"nil","external_name":"id","restriction":""},{"name":"whois","doc":null,"default_value":"nil","external_name":"whois","restriction":""}],"args_string":"(nick, id = nil, whois = nil)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/user.cr#L17","def":{"name":"new","args":[{"name":"nick","doc":null,"default_value":"","external_name":"nick","restriction":""},{"name":"id","doc":null,"default_value":"nil","external_name":"id","restriction":""},{"name":"whois","doc":null,"default_value":"nil","external_name":"whois","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize(nick, id, whois)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"id":"parse(source:String):User-class-method","html_id":"parse(source:String):User-class-method","name":"parse","doc":null,"summary":null,"abstract":false,"args":[{"name":"source","doc":null,"default_value":"","external_name":"source","restriction":"String"}],"args_string":"(source : String) : User","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/user.cr#L23","def":{"name":"parse","args":[{"name":"source","doc":null,"default_value":"","external_name":"source","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"User","visibility":"Public","body":"m = source.match(/\\A:?(?[^!]+)!(?.+)@(?.+)\\Z/)\nif m.nil?\n raise(ParsingError.new(\"The source (#{source}) is not a valid user\"))\nend\nUser.new(m[\"name\"], m[\"id\"], m[\"whois\"])\n"}}],"instance_methods":[{"id":"id:String-instance-method","html_id":"id:String-instance-method","name":"id","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : String","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/user.cr#L8","def":{"name":"id","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String","visibility":"Public","body":"@id"}},{"id":"name:String-instance-method","html_id":"name:String-instance-method","name":"name","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : String","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/user.cr#L29","def":{"name":"name","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String","visibility":"Public","body":"@nick"}},{"id":"nick:String-instance-method","html_id":"nick:String-instance-method","name":"nick","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : String","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/user.cr#L7","def":{"name":"nick","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String","visibility":"Public","body":"@nick"}},{"id":"nick=(nick:String)-instance-method","html_id":"nick=(nick:String)-instance-method","name":"nick=","doc":null,"summary":null,"abstract":false,"args":[{"name":"nick","doc":null,"default_value":"","external_name":"nick","restriction":"String"}],"args_string":"(nick : String)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/user.cr#L7","def":{"name":"nick=","args":[{"name":"nick","doc":null,"default_value":"","external_name":"nick","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"@nick = nick"}},{"id":"whois:String?-instance-method","html_id":"whois:String?-instance-method","name":"whois","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : String?","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/user.cr#L9","def":{"name":"whois","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"String | ::Nil","visibility":"Public","body":"@whois"}}],"macros":[],"types":[{"html_id":"crirc/Crirc/Protocol/User/ParsingError","path":"Crirc/Protocol/User/ParsingError.html","kind":"class","full_name":"Crirc::Protocol::User::ParsingError","name":"ParsingError","abstract":false,"superclass":{"html_id":"crirc/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"crirc/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"crirc/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crirc/protocol/user.cr","line_number":33,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/protocol/user.cr#L33"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc/Protocol/User","kind":"class","full_name":"Crirc::Protocol::User","name":"User"},"doc":null,"summary":null,"class_methods":[],"constructors":[],"instance_methods":[],"macros":[],"types":[]}]}]},{"html_id":"crirc/Crirc/UserList","path":"Crirc/UserList.html","kind":"class","full_name":"Crirc::UserList","name":"UserList","abstract":false,"superclass":{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"crirc/Crirc/Broadcast","kind":"module","full_name":"Crirc::Broadcast","name":"Broadcast"},{"html_id":"crirc/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"crirc/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crirc/broadcast/user_list.cr","line_number":13,"url":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/broadcast/user_list.cr#L13"}],"repository_name":"crirc","program":false,"enum":false,"alias":false,"aliased":"","const":false,"constants":[],"included_modules":[{"html_id":"crirc/Crirc/Broadcast","kind":"module","full_name":"Crirc::Broadcast","name":"Broadcast"}],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"crirc/Crirc","kind":"module","full_name":"Crirc","name":"Crirc"},"doc":"TODO.\nUserList is used to send message to a list of `Protocol::User`.\n\n```\nchan1 = UserList.new\nchan1.users << user_joined\nchan1.puts current_controller, crafted_message\n```","summary":"

TODO .

","class_methods":[],"constructors":[{"id":"new-class-method","html_id":"new-class-method","name":"new","doc":null,"summary":null,"abstract":false,"args":[],"args_string":"","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/broadcast/user_list.cr#L17","def":{"name":"new","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"puts(context:Controller::Controller,data)-instance-method","html_id":"puts(context:Controller::Controller,data)-instance-method","name":"puts","doc":"TODO\nNOTE: combine data+user\nBroadcast a message to the users","summary":"

TODO NOTE: combine data+user Broadcast a message to the users

","abstract":false,"args":[{"name":"context","doc":null,"default_value":"","external_name":"context","restriction":"Controller::Controller"},{"name":"data","doc":null,"default_value":"","external_name":"data","restriction":""}],"args_string":"(context : Controller::Controller, data)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/broadcast/user_list.cr#L24","def":{"name":"puts","args":[{"name":"context","doc":null,"default_value":"","external_name":"context","restriction":"Controller::Controller"},{"name":"data","doc":null,"default_value":"","external_name":"data","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"@users.each do |user|\n context.puts(data)\nend"}},{"id":"users:Array(Protocol::User)-instance-method","html_id":"users:Array(Protocol::User)-instance-method","name":"users","doc":null,"summary":null,"abstract":false,"args":[],"args_string":" : Array(Protocol::User)","source_link":"https://github.com/Meoowww/Crirc/blob/c21010a9d9d3ef9067b5610ec4cb4ea389fdc508/src/crirc/broadcast/user_list.cr#L14","def":{"name":"users","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Array(Protocol::User)","visibility":"Public","body":"@users"}}],"macros":[],"types":[]}]}]}})