Commit e2dcc19c451cf821637178fe987945d065ba3a29
1 parent
aa59ba15
Exists in
master
and in
28 other branches
ActionItem918: fixing copyright and authors information
Showing
4 changed files
with
270 additions
and
273 deletions
Show diff stats
COPYING
| 1 | - | ||
| 2 | - GNU GENERAL PUBLIC LICENSE | ||
| 3 | - Version 3, 29 June 2007 | 1 | + GNU AFFERO GENERAL PUBLIC LICENSE |
| 2 | + Version 3, 19 November 2007 | ||
| 4 | 3 | ||
| 5 | Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> | 4 | Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> |
| 6 | Everyone is permitted to copy and distribute verbatim copies | 5 | Everyone is permitted to copy and distribute verbatim copies |
| 7 | of this license document, but changing it is not allowed. | 6 | of this license document, but changing it is not allowed. |
| 8 | 7 | ||
| 9 | - Preamble | 8 | + Preamble |
| 10 | 9 | ||
| 11 | - The GNU General Public License is a free, copyleft license for | ||
| 12 | -software and other kinds of works. | 10 | + The GNU Affero General Public License is a free, copyleft license for |
| 11 | +software and other kinds of works, specifically designed to ensure | ||
| 12 | +cooperation with the community in the case of network server software. | ||
| 13 | 13 | ||
| 14 | The licenses for most software and other practical works are designed | 14 | The licenses for most software and other practical works are designed |
| 15 | to take away your freedom to share and change the works. By contrast, | 15 | to take away your freedom to share and change the works. By contrast, |
| 16 | -the GNU General Public License is intended to guarantee your freedom to | 16 | +our General Public Licenses are intended to guarantee your freedom to |
| 17 | share and change all versions of a program--to make sure it remains free | 17 | share and change all versions of a program--to make sure it remains free |
| 18 | -software for all its users. We, the Free Software Foundation, use the | ||
| 19 | -GNU General Public License for most of our software; it applies also to | ||
| 20 | -any other work released this way by its authors. You can apply it to | ||
| 21 | -your programs, too. | 18 | +software for all its users. |
| 22 | 19 | ||
| 23 | When we speak of free software, we are referring to freedom, not | 20 | When we speak of free software, we are referring to freedom, not |
| 24 | price. Our General Public Licenses are designed to make sure that you | 21 | price. Our General Public Licenses are designed to make sure that you |
| @@ -27,57 +24,47 @@ them if you wish), that you receive source code or can get it if you | @@ -27,57 +24,47 @@ them if you wish), that you receive source code or can get it if you | ||
| 27 | want it, that you can change the software or use pieces of it in new | 24 | want it, that you can change the software or use pieces of it in new |
| 28 | free programs, and that you know you can do these things. | 25 | free programs, and that you know you can do these things. |
| 29 | 26 | ||
| 30 | - To protect your rights, we need to prevent others from denying you | ||
| 31 | -these rights or asking you to surrender the rights. Therefore, you have | ||
| 32 | -certain responsibilities if you distribute copies of the software, or if | ||
| 33 | -you modify it: responsibilities to respect the freedom of others. | ||
| 34 | - | ||
| 35 | - For example, if you distribute copies of such a program, whether | ||
| 36 | -gratis or for a fee, you must pass on to the recipients the same | ||
| 37 | -freedoms that you received. You must make sure that they, too, receive | ||
| 38 | -or can get the source code. And you must show them these terms so they | ||
| 39 | -know their rights. | ||
| 40 | - | ||
| 41 | - Developers that use the GNU GPL protect your rights with two steps: | ||
| 42 | -(1) assert copyright on the software, and (2) offer you this License | ||
| 43 | -giving you legal permission to copy, distribute and/or modify it. | ||
| 44 | - | ||
| 45 | - For the developers' and authors' protection, the GPL clearly explains | ||
| 46 | -that there is no warranty for this free software. For both users' and | ||
| 47 | -authors' sake, the GPL requires that modified versions be marked as | ||
| 48 | -changed, so that their problems will not be attributed erroneously to | ||
| 49 | -authors of previous versions. | ||
| 50 | - | ||
| 51 | - Some devices are designed to deny users access to install or run | ||
| 52 | -modified versions of the software inside them, although the manufacturer | ||
| 53 | -can do so. This is fundamentally incompatible with the aim of | ||
| 54 | -protecting users' freedom to change the software. The systematic | ||
| 55 | -pattern of such abuse occurs in the area of products for individuals to | ||
| 56 | -use, which is precisely where it is most unacceptable. Therefore, we | ||
| 57 | -have designed this version of the GPL to prohibit the practice for those | ||
| 58 | -products. If such problems arise substantially in other domains, we | ||
| 59 | -stand ready to extend this provision to those domains in future versions | ||
| 60 | -of the GPL, as needed to protect the freedom of users. | ||
| 61 | - | ||
| 62 | - Finally, every program is threatened constantly by software patents. | ||
| 63 | -States should not allow patents to restrict development and use of | ||
| 64 | -software on general-purpose computers, but in those that do, we wish to | ||
| 65 | -avoid the special danger that patents applied to a free program could | ||
| 66 | -make it effectively proprietary. To prevent this, the GPL assures that | ||
| 67 | -patents cannot be used to render the program non-free. | 27 | + Developers that use our General Public Licenses protect your rights |
| 28 | +with two steps: (1) assert copyright on the software, and (2) offer | ||
| 29 | +you this License which gives you legal permission to copy, distribute | ||
| 30 | +and/or modify the software. | ||
| 31 | + | ||
| 32 | + A secondary benefit of defending all users' freedom is that | ||
| 33 | +improvements made in alternate versions of the program, if they | ||
| 34 | +receive widespread use, become available for other developers to | ||
| 35 | +incorporate. Many developers of free software are heartened and | ||
| 36 | +encouraged by the resulting cooperation. However, in the case of | ||
| 37 | +software used on network servers, this result may fail to come about. | ||
| 38 | +The GNU General Public License permits making a modified version and | ||
| 39 | +letting the public access it on a server without ever releasing its | ||
| 40 | +source code to the public. | ||
| 41 | + | ||
| 42 | + The GNU Affero General Public License is designed specifically to | ||
| 43 | +ensure that, in such cases, the modified source code becomes available | ||
| 44 | +to the community. It requires the operator of a network server to | ||
| 45 | +provide the source code of the modified version running there to the | ||
| 46 | +users of that server. Therefore, public use of a modified version, on | ||
| 47 | +a publicly accessible server, gives the public access to the source | ||
| 48 | +code of the modified version. | ||
| 49 | + | ||
| 50 | + An older license, called the Affero General Public License and | ||
| 51 | +published by Affero, was designed to accomplish similar goals. This is | ||
| 52 | +a different license, not a version of the Affero GPL, but Affero has | ||
| 53 | +released a new version of the Affero GPL which permits relicensing under | ||
| 54 | +this license. | ||
| 68 | 55 | ||
| 69 | The precise terms and conditions for copying, distribution and | 56 | The precise terms and conditions for copying, distribution and |
| 70 | modification follow. | 57 | modification follow. |
| 71 | 58 | ||
| 72 | - TERMS AND CONDITIONS | 59 | + TERMS AND CONDITIONS |
| 73 | 60 | ||
| 74 | 0. Definitions. | 61 | 0. Definitions. |
| 75 | 62 | ||
| 76 | - "This License" refers to version 3 of the GNU General Public License. | 63 | + "This License" refers to version 3 of the GNU Affero General Public License. |
| 77 | 64 | ||
| 78 | "Copyright" also means copyright-like laws that apply to other kinds of | 65 | "Copyright" also means copyright-like laws that apply to other kinds of |
| 79 | works, such as semiconductor masks. | 66 | works, such as semiconductor masks. |
| 80 | - | 67 | + |
| 81 | "The Program" refers to any copyrightable work licensed under this | 68 | "The Program" refers to any copyrightable work licensed under this |
| 82 | License. Each licensee is addressed as "you". "Licensees" and | 69 | License. Each licensee is addressed as "you". "Licensees" and |
| 83 | "recipients" may be individuals or organizations. | 70 | "recipients" may be individuals or organizations. |
| @@ -510,7 +497,7 @@ actual knowledge that, but for the patent license, your conveying the | @@ -510,7 +497,7 @@ actual knowledge that, but for the patent license, your conveying the | ||
| 510 | covered work in a country, or your recipient's use of the covered work | 497 | covered work in a country, or your recipient's use of the covered work |
| 511 | in a country, would infringe one or more identifiable patents in that | 498 | in a country, would infringe one or more identifiable patents in that |
| 512 | country that you have reason to believe are valid. | 499 | country that you have reason to believe are valid. |
| 513 | - | 500 | + |
| 514 | If, pursuant to or in connection with a single transaction or | 501 | If, pursuant to or in connection with a single transaction or |
| 515 | arrangement, you convey, or propagate by procuring conveyance of, a | 502 | arrangement, you convey, or propagate by procuring conveyance of, a |
| 516 | covered work, and grant a patent license to some of the parties | 503 | covered work, and grant a patent license to some of the parties |
| @@ -550,35 +537,45 @@ to collect a royalty for further conveying from those to whom you convey | @@ -550,35 +537,45 @@ to collect a royalty for further conveying from those to whom you convey | ||
| 550 | the Program, the only way you could satisfy both those terms and this | 537 | the Program, the only way you could satisfy both those terms and this |
| 551 | License would be to refrain entirely from conveying the Program. | 538 | License would be to refrain entirely from conveying the Program. |
| 552 | 539 | ||
| 553 | - 13. Use with the GNU Affero General Public License. | 540 | + 13. Remote Network Interaction; Use with the GNU General Public License. |
| 541 | + | ||
| 542 | + Notwithstanding any other provision of this License, if you modify the | ||
| 543 | +Program, your modified version must prominently offer all users | ||
| 544 | +interacting with it remotely through a computer network (if your version | ||
| 545 | +supports such interaction) an opportunity to receive the Corresponding | ||
| 546 | +Source of your version by providing access to the Corresponding Source | ||
| 547 | +from a network server at no charge, through some standard or customary | ||
| 548 | +means of facilitating copying of software. This Corresponding Source | ||
| 549 | +shall include the Corresponding Source for any work covered by version 3 | ||
| 550 | +of the GNU General Public License that is incorporated pursuant to the | ||
| 551 | +following paragraph. | ||
| 554 | 552 | ||
| 555 | Notwithstanding any other provision of this License, you have | 553 | Notwithstanding any other provision of this License, you have |
| 556 | permission to link or combine any covered work with a work licensed | 554 | permission to link or combine any covered work with a work licensed |
| 557 | -under version 3 of the GNU Affero General Public License into a single | 555 | +under version 3 of the GNU General Public License into a single |
| 558 | combined work, and to convey the resulting work. The terms of this | 556 | combined work, and to convey the resulting work. The terms of this |
| 559 | License will continue to apply to the part which is the covered work, | 557 | License will continue to apply to the part which is the covered work, |
| 560 | -but the special requirements of the GNU Affero General Public License, | ||
| 561 | -section 13, concerning interaction through a network will apply to the | ||
| 562 | -combination as such. | 558 | +but the work with which it is combined will remain governed by version |
| 559 | +3 of the GNU General Public License. | ||
| 563 | 560 | ||
| 564 | 14. Revised Versions of this License. | 561 | 14. Revised Versions of this License. |
| 565 | 562 | ||
| 566 | The Free Software Foundation may publish revised and/or new versions of | 563 | The Free Software Foundation may publish revised and/or new versions of |
| 567 | -the GNU General Public License from time to time. Such new versions will | ||
| 568 | -be similar in spirit to the present version, but may differ in detail to | 564 | +the GNU Affero General Public License from time to time. Such new versions |
| 565 | +will be similar in spirit to the present version, but may differ in detail to | ||
| 569 | address new problems or concerns. | 566 | address new problems or concerns. |
| 570 | 567 | ||
| 571 | Each version is given a distinguishing version number. If the | 568 | Each version is given a distinguishing version number. If the |
| 572 | -Program specifies that a certain numbered version of the GNU General | 569 | +Program specifies that a certain numbered version of the GNU Affero General |
| 573 | Public License "or any later version" applies to it, you have the | 570 | Public License "or any later version" applies to it, you have the |
| 574 | option of following the terms and conditions either of that numbered | 571 | option of following the terms and conditions either of that numbered |
| 575 | version or of any later version published by the Free Software | 572 | version or of any later version published by the Free Software |
| 576 | Foundation. If the Program does not specify a version number of the | 573 | Foundation. If the Program does not specify a version number of the |
| 577 | -GNU General Public License, you may choose any version ever published | 574 | +GNU Affero General Public License, you may choose any version ever published |
| 578 | by the Free Software Foundation. | 575 | by the Free Software Foundation. |
| 579 | 576 | ||
| 580 | If the Program specifies that a proxy can decide which future | 577 | If the Program specifies that a proxy can decide which future |
| 581 | -versions of the GNU General Public License can be used, that proxy's | 578 | +versions of the GNU Affero General Public License can be used, that proxy's |
| 582 | public statement of acceptance of a version permanently authorizes you | 579 | public statement of acceptance of a version permanently authorizes you |
| 583 | to choose that version for the Program. | 580 | to choose that version for the Program. |
| 584 | 581 | ||
| @@ -619,9 +616,9 @@ an absolute waiver of all civil liability in connection with the | @@ -619,9 +616,9 @@ an absolute waiver of all civil liability in connection with the | ||
| 619 | Program, unless a warranty or assumption of liability accompanies a | 616 | Program, unless a warranty or assumption of liability accompanies a |
| 620 | copy of the Program in return for a fee. | 617 | copy of the Program in return for a fee. |
| 621 | 618 | ||
| 622 | - END OF TERMS AND CONDITIONS | 619 | + END OF TERMS AND CONDITIONS |
| 623 | 620 | ||
| 624 | - How to Apply These Terms to Your New Programs | 621 | + How to Apply These Terms to Your New Programs |
| 625 | 622 | ||
| 626 | If you develop a new program, and you want it to be of the greatest | 623 | If you develop a new program, and you want it to be of the greatest |
| 627 | possible use to the public, the best way to achieve this is to make it | 624 | possible use to the public, the best way to achieve this is to make it |
| @@ -636,41 +633,29 @@ the "copyright" line and a pointer to where the full notice is found. | @@ -636,41 +633,29 @@ the "copyright" line and a pointer to where the full notice is found. | ||
| 636 | Copyright (C) <year> <name of author> | 633 | Copyright (C) <year> <name of author> |
| 637 | 634 | ||
| 638 | This program is free software: you can redistribute it and/or modify | 635 | This program is free software: you can redistribute it and/or modify |
| 639 | - it under the terms of the GNU General Public License as published by | 636 | + it under the terms of the GNU Affero General Public License as published by |
| 640 | the Free Software Foundation, either version 3 of the License, or | 637 | the Free Software Foundation, either version 3 of the License, or |
| 641 | (at your option) any later version. | 638 | (at your option) any later version. |
| 642 | 639 | ||
| 643 | This program is distributed in the hope that it will be useful, | 640 | This program is distributed in the hope that it will be useful, |
| 644 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 641 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 645 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 642 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 646 | - GNU General Public License for more details. | 643 | + GNU Affero General Public License for more details. |
| 647 | 644 | ||
| 648 | - You should have received a copy of the GNU General Public License | 645 | + You should have received a copy of the GNU Affero General Public License |
| 649 | along with this program. If not, see <http://www.gnu.org/licenses/>. | 646 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 650 | 647 | ||
| 651 | Also add information on how to contact you by electronic and paper mail. | 648 | Also add information on how to contact you by electronic and paper mail. |
| 652 | 649 | ||
| 653 | - If the program does terminal interaction, make it output a short | ||
| 654 | -notice like this when it starts in an interactive mode: | ||
| 655 | - | ||
| 656 | - <program> Copyright (C) <year> <name of author> | ||
| 657 | - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. | ||
| 658 | - This is free software, and you are welcome to redistribute it | ||
| 659 | - under certain conditions; type `show c' for details. | ||
| 660 | - | ||
| 661 | -The hypothetical commands `show w' and `show c' should show the appropriate | ||
| 662 | -parts of the General Public License. Of course, your program's commands | ||
| 663 | -might be different; for a GUI interface, you would use an "about box". | 650 | + If your software can interact with users remotely through a computer |
| 651 | +network, you should also make sure that it provides a way for users to | ||
| 652 | +get its source. For example, if your program is a web application, its | ||
| 653 | +interface could display a "Source" link that leads users to an archive | ||
| 654 | +of the code. There are many ways you could offer source, and different | ||
| 655 | +solutions will be better for different programs; see section 13 for the | ||
| 656 | +specific requirements. | ||
| 664 | 657 | ||
| 665 | You should also get your employer (if you work as a programmer) or school, | 658 | You should also get your employer (if you work as a programmer) or school, |
| 666 | if any, to sign a "copyright disclaimer" for the program, if necessary. | 659 | if any, to sign a "copyright disclaimer" for the program, if necessary. |
| 667 | -For more information on this, and how to apply and follow the GNU GPL, see | 660 | +For more information on this, and how to apply and follow the GNU AGPL, see |
| 668 | <http://www.gnu.org/licenses/>. | 661 | <http://www.gnu.org/licenses/>. |
| 669 | - | ||
| 670 | - The GNU General Public License does not permit incorporating your program | ||
| 671 | -into proprietary programs. If your program is a subroutine library, you | ||
| 672 | -may consider it more useful to permit linking proprietary applications with | ||
| 673 | -the library. If this is what you want to do, use the GNU Lesser General | ||
| 674 | -Public License instead of this License. But first, please read | ||
| 675 | -<http://www.gnu.org/philosophy/why-not-lgpl.html>. | ||
| 676 | - |
COPYRIGHT
| 1 | noosfero - a free web-based social platform | 1 | noosfero - a free web-based social platform |
| 2 | 2 | ||
| 3 | -Copyright (c) 2007-2008, | 3 | +Copyright (c) 2007-2009, |
| 4 | Cáritas Brasileira <http://www.caritasbrasileira.org/> | 4 | Cáritas Brasileira <http://www.caritasbrasileira.org/> |
| 5 | -Copyright (c) 2007-2008, | 5 | +Copyright (c) 2007-2009, |
| 6 | Ynternet.org Foundation <http://www.ynternet.org/> | 6 | Ynternet.org Foundation <http://www.ynternet.org/> |
| 7 | -Copyright (c) 2008, | 7 | +Copyright (c) 2008-2009, |
| 8 | Colivre <http://www.colivre.coop.br/> | 8 | Colivre <http://www.colivre.coop.br/> |
| 9 | 9 | ||
| 10 | This program is free software: you can redistribute it and/or modify | 10 | This program is free software: you can redistribute it and/or modify |
| 11 | -it under the terms of the GNU General Public License as published by | 11 | +it under the terms of the GNU Affero General Public License as published by |
| 12 | the Free Software Foundation, either version 3 of the License, or | 12 | the Free Software Foundation, either version 3 of the License, or |
| 13 | (at your option) any later version. | 13 | (at your option) any later version. |
| 14 | 14 | ||
| 15 | This program is distributed in the hope that it will be useful, | 15 | This program is distributed in the hope that it will be useful, |
| 16 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 16 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 18 | -GNU General Public License for more details. | 18 | +GNU Affero General Public License for more details. |
| 19 | 19 | ||
| 20 | -You should have received a copy of the GNU General Public License | 20 | +You should have received a copy of the GNU Affero General Public License |
| 21 | along with this program. If not, see <http://www.gnu.org/licenses/>. | 21 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 22 | 22 | ||
| 23 | Please see the file COPYING for the full license text of the GNU General Public | 23 | Please see the file COPYING for the full license text of the GNU General Public |
README
| 1 | -== Welcome to Rails | 1 | +noosfero - a web-based social platform |
| 2 | +====================================== | ||
| 2 | 3 | ||
| 3 | -Rails is a web-application and persistence framework that includes everything | ||
| 4 | -needed to create database-backed web-applications according to the | ||
| 5 | -Model-View-Control pattern of separation. This pattern splits the view (also | ||
| 6 | -called the presentation) into "dumb" templates that are primarily responsible | ||
| 7 | -for inserting pre-built data in between HTML tags. The model contains the | ||
| 8 | -"smart" domain objects (such as Account, Product, Person, Post) that holds all | ||
| 9 | -the business logic and knows how to persist themselves to a database. The | ||
| 10 | -controller handles the incoming requests (such as Save New Account, Update | ||
| 11 | -Product, Show Post) by manipulating the model and directing data to the view. | 4 | +:: About the project |
| 12 | 5 | ||
| 13 | -In Rails, the model is handled by what's called an object-relational mapping | ||
| 14 | -layer entitled Active Record. This layer allows you to present the data from | ||
| 15 | -database rows as objects and embellish these data objects with business logic | ||
| 16 | -methods. You can read more about Active Record in | ||
| 17 | -link:files/vendor/rails/activerecord/README.html. | 6 | +Homepage: http://www.noosfero.org/ |
| 18 | 7 | ||
| 19 | -The controller and view are handled by the Action Pack, which handles both | ||
| 20 | -layers by its two parts: Action View and Action Controller. These two layers | ||
| 21 | -are bundled in a single package due to their heavy interdependence. This is | ||
| 22 | -unlike the relationship between the Active Record and Action Pack that is much | ||
| 23 | -more separate. Each of these packages can be used independently outside of | ||
| 24 | -Rails. You can read more about Action Pack in | ||
| 25 | -link:files/vendor/rails/actionpack/README.html. | 8 | +:: Authors and copyright |
| 26 | 9 | ||
| 27 | - | ||
| 28 | -== Getting started | ||
| 29 | - | ||
| 30 | -1. Start the web server: <tt>ruby script/server</tt> (run with --help for options) | ||
| 31 | -2. Go to http://localhost:3000/ and get "Welcome aboard: You’re riding the Rails!" | ||
| 32 | -3. Follow the guidelines to start developing your application | ||
| 33 | - | ||
| 34 | - | ||
| 35 | -== Web servers | ||
| 36 | - | ||
| 37 | -Rails uses the built-in web server in Ruby called WEBrick by default, so you don't | ||
| 38 | -have to install or configure anything to play around. | ||
| 39 | - | ||
| 40 | -If you have lighttpd installed, though, it'll be used instead when running script/server. | ||
| 41 | -It's considerably faster than WEBrick and suited for production use, but requires additional | ||
| 42 | -installation and currently only works well on OS X/Unix (Windows users are encouraged | ||
| 43 | -to start with WEBrick). We recommend version 1.4.11 and higher. You can download it from | ||
| 44 | -http://www.lighttpd.net. | ||
| 45 | - | ||
| 46 | -If you want something that's halfway between WEBrick and lighttpd, we heartily recommend | ||
| 47 | -Mongrel. It's a Ruby-based web server with a C-component (so it requires compilation) that | ||
| 48 | -also works very well with Windows. See more at http://mongrel.rubyforge.org/. | ||
| 49 | - | ||
| 50 | -But of course its also possible to run Rails with the premiere open source web server Apache. | ||
| 51 | -To get decent performance, though, you'll need to install FastCGI. For Apache 1.3, you want | ||
| 52 | -to use mod_fastcgi. For Apache 2.0+, you want to use mod_fcgid. | ||
| 53 | - | ||
| 54 | -See http://wiki.rubyonrails.com/rails/pages/FastCGI for more information on FastCGI. | ||
| 55 | - | ||
| 56 | -== Example for Apache conf | ||
| 57 | - | ||
| 58 | - <VirtualHost *:80> | ||
| 59 | - ServerName rails | ||
| 60 | - DocumentRoot /path/application/public/ | ||
| 61 | - ErrorLog /path/application/log/server.log | ||
| 62 | - | ||
| 63 | - <Directory /path/application/public/> | ||
| 64 | - Options ExecCGI FollowSymLinks | ||
| 65 | - AllowOverride all | ||
| 66 | - Allow from all | ||
| 67 | - Order allow,deny | ||
| 68 | - </Directory> | ||
| 69 | - </VirtualHost> | ||
| 70 | - | ||
| 71 | -NOTE: Be sure that CGIs can be executed in that directory as well. So ExecCGI | ||
| 72 | -should be on and ".cgi" should respond. All requests from 127.0.0.1 go | ||
| 73 | -through CGI, so no Apache restart is necessary for changes. All other requests | ||
| 74 | -go through FCGI (or mod_ruby), which requires a restart to show changes. | ||
| 75 | - | ||
| 76 | - | ||
| 77 | -== Debugging Rails | ||
| 78 | - | ||
| 79 | -Have "tail -f" commands running on both the server.log, production.log, and | ||
| 80 | -test.log files. Rails will automatically display debugging and runtime | ||
| 81 | -information to these files. Debugging info will also be shown in the browser | ||
| 82 | -on requests from 127.0.0.1. | ||
| 83 | - | ||
| 84 | - | ||
| 85 | -== Breakpoints | ||
| 86 | - | ||
| 87 | -Breakpoint support is available through the script/breakpointer client. This | ||
| 88 | -means that you can break out of execution at any point in the code, investigate | ||
| 89 | -and change the model, AND then resume execution! Example: | ||
| 90 | - | ||
| 91 | - class WeblogController < ActionController::Base | ||
| 92 | - def index | ||
| 93 | - @posts = Post.find_all | ||
| 94 | - breakpoint "Breaking out from the list" | ||
| 95 | - end | ||
| 96 | - end | ||
| 97 | - | ||
| 98 | -So the controller will accept the action, run the first line, then present you | ||
| 99 | -with a IRB prompt in the breakpointer window. Here you can do things like: | ||
| 100 | - | ||
| 101 | -Executing breakpoint "Breaking out from the list" at .../webrick_server.rb:16 in 'breakpoint' | ||
| 102 | - | ||
| 103 | - >> @posts.inspect | ||
| 104 | - => "[#<Post:0x14a6be8 @attributes={\"title\"=>nil, \"body\"=>nil, \"id\"=>\"1\"}>, | ||
| 105 | - #<Post:0x14a6620 @attributes={\"title\"=>\"Rails you know!\", \"body\"=>\"Only ten..\", \"id\"=>\"2\"}>]" | ||
| 106 | - >> @posts.first.title = "hello from a breakpoint" | ||
| 107 | - => "hello from a breakpoint" | ||
| 108 | - | ||
| 109 | -...and even better is that you can examine how your runtime objects actually work: | ||
| 110 | - | ||
| 111 | - >> f = @posts.first | ||
| 112 | - => #<Post:0x13630c4 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}> | ||
| 113 | - >> f. | ||
| 114 | - Display all 152 possibilities? (y or n) | ||
| 115 | - | ||
| 116 | -Finally, when you're ready to resume execution, you press CTRL-D | ||
| 117 | - | ||
| 118 | - | ||
| 119 | -== Console | ||
| 120 | - | ||
| 121 | -You can interact with the domain model by starting the console through script/console. | ||
| 122 | -Here you'll have all parts of the application configured, just like it is when the | ||
| 123 | -application is running. You can inspect domain models, change values, and save to the | ||
| 124 | -database. Starting the script without arguments will launch it in the development environment. | ||
| 125 | -Passing an argument will specify a different environment, like <tt>script/console production</tt>. | ||
| 126 | - | ||
| 127 | -To reload your controllers and models after launching the console run <tt>reload!</tt> | ||
| 128 | - | ||
| 129 | - | ||
| 130 | - | ||
| 131 | -== Description of contents | ||
| 132 | - | ||
| 133 | -app | ||
| 134 | - Holds all the code that's specific to this particular application. | ||
| 135 | - | ||
| 136 | -app/controllers | ||
| 137 | - Holds controllers that should be named like weblog_controller.rb for | ||
| 138 | - automated URL mapping. All controllers should descend from | ||
| 139 | - ActionController::Base. | ||
| 140 | - | ||
| 141 | -app/models | ||
| 142 | - Holds models that should be named like post.rb. | ||
| 143 | - Most models will descend from ActiveRecord::Base. | ||
| 144 | - | ||
| 145 | -app/views | ||
| 146 | - Holds the template files for the view that should be named like | ||
| 147 | - weblog/index.rhtml for the WeblogController#index action. All views use eRuby | ||
| 148 | - syntax. This directory can also be used to keep stylesheets, images, and so on | ||
| 149 | - that can be symlinked to public. | ||
| 150 | - | ||
| 151 | -app/helpers | ||
| 152 | - Holds view helpers that should be named like weblog_helper.rb. | ||
| 153 | - | ||
| 154 | -app/apis | ||
| 155 | - Holds API classes for web services. | ||
| 156 | - | ||
| 157 | -config | ||
| 158 | - Configuration files for the Rails environment, the routing map, the database, and other dependencies. | ||
| 159 | - | ||
| 160 | -components | ||
| 161 | - Self-contained mini-applications that can bundle together controllers, models, and views. | ||
| 162 | - | ||
| 163 | -db | ||
| 164 | - Contains the database schema in schema.rb. db/migrate contains all | ||
| 165 | - the sequence of Migrations for your schema. | ||
| 166 | - | ||
| 167 | -lib | ||
| 168 | - Application specific libraries. Basically, any kind of custom code that doesn't | ||
| 169 | - belong under controllers, models, or helpers. This directory is in the load path. | ||
| 170 | - | ||
| 171 | -public | ||
| 172 | - The directory available for the web server. Contains subdirectories for images, stylesheets, | ||
| 173 | - and javascripts. Also contains the dispatchers and the default HTML files. | ||
| 174 | - | ||
| 175 | -script | ||
| 176 | - Helper scripts for automation and generation. | ||
| 177 | - | ||
| 178 | -test | ||
| 179 | - Unit and functional tests along with fixtures. | ||
| 180 | - | ||
| 181 | -vendor | ||
| 182 | - External libraries that the application depends on. Also includes the plugins subdirectory. | ||
| 183 | - This directory is in the load path. | 10 | +Authors: see file AUTHORS |
| 11 | +Copyright information: see file COPYRIGHT | ||
| 12 | +Full license text; see file COPYING |
| @@ -0,0 +1,183 @@ | @@ -0,0 +1,183 @@ | ||
| 1 | +== Welcome to Rails | ||
| 2 | + | ||
| 3 | +Rails is a web-application and persistence framework that includes everything | ||
| 4 | +needed to create database-backed web-applications according to the | ||
| 5 | +Model-View-Control pattern of separation. This pattern splits the view (also | ||
| 6 | +called the presentation) into "dumb" templates that are primarily responsible | ||
| 7 | +for inserting pre-built data in between HTML tags. The model contains the | ||
| 8 | +"smart" domain objects (such as Account, Product, Person, Post) that holds all | ||
| 9 | +the business logic and knows how to persist themselves to a database. The | ||
| 10 | +controller handles the incoming requests (such as Save New Account, Update | ||
| 11 | +Product, Show Post) by manipulating the model and directing data to the view. | ||
| 12 | + | ||
| 13 | +In Rails, the model is handled by what's called an object-relational mapping | ||
| 14 | +layer entitled Active Record. This layer allows you to present the data from | ||
| 15 | +database rows as objects and embellish these data objects with business logic | ||
| 16 | +methods. You can read more about Active Record in | ||
| 17 | +link:files/vendor/rails/activerecord/README.html. | ||
| 18 | + | ||
| 19 | +The controller and view are handled by the Action Pack, which handles both | ||
| 20 | +layers by its two parts: Action View and Action Controller. These two layers | ||
| 21 | +are bundled in a single package due to their heavy interdependence. This is | ||
| 22 | +unlike the relationship between the Active Record and Action Pack that is much | ||
| 23 | +more separate. Each of these packages can be used independently outside of | ||
| 24 | +Rails. You can read more about Action Pack in | ||
| 25 | +link:files/vendor/rails/actionpack/README.html. | ||
| 26 | + | ||
| 27 | + | ||
| 28 | +== Getting started | ||
| 29 | + | ||
| 30 | +1. Start the web server: <tt>ruby script/server</tt> (run with --help for options) | ||
| 31 | +2. Go to http://localhost:3000/ and get "Welcome aboard: You’re riding the Rails!" | ||
| 32 | +3. Follow the guidelines to start developing your application | ||
| 33 | + | ||
| 34 | + | ||
| 35 | +== Web servers | ||
| 36 | + | ||
| 37 | +Rails uses the built-in web server in Ruby called WEBrick by default, so you don't | ||
| 38 | +have to install or configure anything to play around. | ||
| 39 | + | ||
| 40 | +If you have lighttpd installed, though, it'll be used instead when running script/server. | ||
| 41 | +It's considerably faster than WEBrick and suited for production use, but requires additional | ||
| 42 | +installation and currently only works well on OS X/Unix (Windows users are encouraged | ||
| 43 | +to start with WEBrick). We recommend version 1.4.11 and higher. You can download it from | ||
| 44 | +http://www.lighttpd.net. | ||
| 45 | + | ||
| 46 | +If you want something that's halfway between WEBrick and lighttpd, we heartily recommend | ||
| 47 | +Mongrel. It's a Ruby-based web server with a C-component (so it requires compilation) that | ||
| 48 | +also works very well with Windows. See more at http://mongrel.rubyforge.org/. | ||
| 49 | + | ||
| 50 | +But of course its also possible to run Rails with the premiere open source web server Apache. | ||
| 51 | +To get decent performance, though, you'll need to install FastCGI. For Apache 1.3, you want | ||
| 52 | +to use mod_fastcgi. For Apache 2.0+, you want to use mod_fcgid. | ||
| 53 | + | ||
| 54 | +See http://wiki.rubyonrails.com/rails/pages/FastCGI for more information on FastCGI. | ||
| 55 | + | ||
| 56 | +== Example for Apache conf | ||
| 57 | + | ||
| 58 | + <VirtualHost *:80> | ||
| 59 | + ServerName rails | ||
| 60 | + DocumentRoot /path/application/public/ | ||
| 61 | + ErrorLog /path/application/log/server.log | ||
| 62 | + | ||
| 63 | + <Directory /path/application/public/> | ||
| 64 | + Options ExecCGI FollowSymLinks | ||
| 65 | + AllowOverride all | ||
| 66 | + Allow from all | ||
| 67 | + Order allow,deny | ||
| 68 | + </Directory> | ||
| 69 | + </VirtualHost> | ||
| 70 | + | ||
| 71 | +NOTE: Be sure that CGIs can be executed in that directory as well. So ExecCGI | ||
| 72 | +should be on and ".cgi" should respond. All requests from 127.0.0.1 go | ||
| 73 | +through CGI, so no Apache restart is necessary for changes. All other requests | ||
| 74 | +go through FCGI (or mod_ruby), which requires a restart to show changes. | ||
| 75 | + | ||
| 76 | + | ||
| 77 | +== Debugging Rails | ||
| 78 | + | ||
| 79 | +Have "tail -f" commands running on both the server.log, production.log, and | ||
| 80 | +test.log files. Rails will automatically display debugging and runtime | ||
| 81 | +information to these files. Debugging info will also be shown in the browser | ||
| 82 | +on requests from 127.0.0.1. | ||
| 83 | + | ||
| 84 | + | ||
| 85 | +== Breakpoints | ||
| 86 | + | ||
| 87 | +Breakpoint support is available through the script/breakpointer client. This | ||
| 88 | +means that you can break out of execution at any point in the code, investigate | ||
| 89 | +and change the model, AND then resume execution! Example: | ||
| 90 | + | ||
| 91 | + class WeblogController < ActionController::Base | ||
| 92 | + def index | ||
| 93 | + @posts = Post.find_all | ||
| 94 | + breakpoint "Breaking out from the list" | ||
| 95 | + end | ||
| 96 | + end | ||
| 97 | + | ||
| 98 | +So the controller will accept the action, run the first line, then present you | ||
| 99 | +with a IRB prompt in the breakpointer window. Here you can do things like: | ||
| 100 | + | ||
| 101 | +Executing breakpoint "Breaking out from the list" at .../webrick_server.rb:16 in 'breakpoint' | ||
| 102 | + | ||
| 103 | + >> @posts.inspect | ||
| 104 | + => "[#<Post:0x14a6be8 @attributes={\"title\"=>nil, \"body\"=>nil, \"id\"=>\"1\"}>, | ||
| 105 | + #<Post:0x14a6620 @attributes={\"title\"=>\"Rails you know!\", \"body\"=>\"Only ten..\", \"id\"=>\"2\"}>]" | ||
| 106 | + >> @posts.first.title = "hello from a breakpoint" | ||
| 107 | + => "hello from a breakpoint" | ||
| 108 | + | ||
| 109 | +...and even better is that you can examine how your runtime objects actually work: | ||
| 110 | + | ||
| 111 | + >> f = @posts.first | ||
| 112 | + => #<Post:0x13630c4 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}> | ||
| 113 | + >> f. | ||
| 114 | + Display all 152 possibilities? (y or n) | ||
| 115 | + | ||
| 116 | +Finally, when you're ready to resume execution, you press CTRL-D | ||
| 117 | + | ||
| 118 | + | ||
| 119 | +== Console | ||
| 120 | + | ||
| 121 | +You can interact with the domain model by starting the console through script/console. | ||
| 122 | +Here you'll have all parts of the application configured, just like it is when the | ||
| 123 | +application is running. You can inspect domain models, change values, and save to the | ||
| 124 | +database. Starting the script without arguments will launch it in the development environment. | ||
| 125 | +Passing an argument will specify a different environment, like <tt>script/console production</tt>. | ||
| 126 | + | ||
| 127 | +To reload your controllers and models after launching the console run <tt>reload!</tt> | ||
| 128 | + | ||
| 129 | + | ||
| 130 | + | ||
| 131 | +== Description of contents | ||
| 132 | + | ||
| 133 | +app | ||
| 134 | + Holds all the code that's specific to this particular application. | ||
| 135 | + | ||
| 136 | +app/controllers | ||
| 137 | + Holds controllers that should be named like weblog_controller.rb for | ||
| 138 | + automated URL mapping. All controllers should descend from | ||
| 139 | + ActionController::Base. | ||
| 140 | + | ||
| 141 | +app/models | ||
| 142 | + Holds models that should be named like post.rb. | ||
| 143 | + Most models will descend from ActiveRecord::Base. | ||
| 144 | + | ||
| 145 | +app/views | ||
| 146 | + Holds the template files for the view that should be named like | ||
| 147 | + weblog/index.rhtml for the WeblogController#index action. All views use eRuby | ||
| 148 | + syntax. This directory can also be used to keep stylesheets, images, and so on | ||
| 149 | + that can be symlinked to public. | ||
| 150 | + | ||
| 151 | +app/helpers | ||
| 152 | + Holds view helpers that should be named like weblog_helper.rb. | ||
| 153 | + | ||
| 154 | +app/apis | ||
| 155 | + Holds API classes for web services. | ||
| 156 | + | ||
| 157 | +config | ||
| 158 | + Configuration files for the Rails environment, the routing map, the database, and other dependencies. | ||
| 159 | + | ||
| 160 | +components | ||
| 161 | + Self-contained mini-applications that can bundle together controllers, models, and views. | ||
| 162 | + | ||
| 163 | +db | ||
| 164 | + Contains the database schema in schema.rb. db/migrate contains all | ||
| 165 | + the sequence of Migrations for your schema. | ||
| 166 | + | ||
| 167 | +lib | ||
| 168 | + Application specific libraries. Basically, any kind of custom code that doesn't | ||
| 169 | + belong under controllers, models, or helpers. This directory is in the load path. | ||
| 170 | + | ||
| 171 | +public | ||
| 172 | + The directory available for the web server. Contains subdirectories for images, stylesheets, | ||
| 173 | + and javascripts. Also contains the dispatchers and the default HTML files. | ||
| 174 | + | ||
| 175 | +script | ||
| 176 | + Helper scripts for automation and generation. | ||
| 177 | + | ||
| 178 | +test | ||
| 179 | + Unit and functional tests along with fixtures. | ||
| 180 | + | ||
| 181 | +vendor | ||
| 182 | + External libraries that the application depends on. Also includes the plugins subdirectory. | ||
| 183 | + This directory is in the load path. |