Commit e2dcc19c451cf821637178fe987945d065ba3a29
1 parent
aa59ba15
Exists in
master
and in
29 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. |