documentator 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1cb2b60a388b55a2ef800f92c0727205a2a87593
4
+ data.tar.gz: 394c3267f4522ac5e9f3b46b8e29cac433d4dc12
5
+ SHA512:
6
+ metadata.gz: 2f04a465bf81908689d13b5c3492d0a0a007c8ddbf81e4eaa11ff57cb60c2208707e52c8c875f414ea68279319c292f9cba0b14d257c8a05003345d0807a084a
7
+ data.tar.gz: ae4e8b7aa668ddc5b5239cc9d76007c19eb7310fc4511807a71ad3f2c71fc9f2d53e261b301fe62a2ecca14b7548295388aa8cdb4143ee14a1ea3075c9b087b1
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT LICENSE
2
+
3
+ Copyright (c) chatgris <jboyer@af83.com>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,72 @@
1
+ # documentator
2
+
3
+ documentator has one primary goal: having better docs on our projects.
4
+
5
+ documentator provides two main features to achieve that goal:
6
+
7
+
8
+ ### Bootstrap
9
+
10
+ `bootstrap` provides a minimal set of documentation's file.
11
+ Those are empty, and they *must* be written for each project. This is specific
12
+ to each project:
13
+
14
+ * What's the architecture (providing a [ditaa](http://ditaa.sourceforge.net/)
15
+ schema will make you earns some karma points)?
16
+ * Dependencies?
17
+ * Environnements?
18
+
19
+
20
+ As a treat, `bootstrap` generates a Gemfile in `project/doc` which include
21
+ [Guide'em up](https://github.com/nono/guide-em-up). Guide'em up can be used to
22
+ preview markdown file in a browser.
23
+
24
+ ### Import
25
+
26
+ `import` provides some templates of common documentation that should be the same
27
+ from one project to another. And yet, we write them on each project. I mean,
28
+ installing ElasticSearch is always the same.
29
+
30
+ ## Installation
31
+
32
+ With bundler, add it to your `Gemfile`:
33
+
34
+ ``` ruby
35
+ group :development do
36
+ gem "documentator", git: "git@github.com:AF83/documentator.git"
37
+ end
38
+ ```
39
+
40
+ ## Usage
41
+
42
+ Commands should be used from the root directory of the current project.
43
+
44
+ ### Bootstrap
45
+
46
+ ``` bash
47
+ bundle exec documentator bootstrap
48
+ ```
49
+
50
+ ### Importing templates
51
+
52
+ ``` bash
53
+ bundle exec documentator list
54
+ ```
55
+
56
+ ``` bash
57
+ bundle exec documentator import nginx
58
+ ```
59
+
60
+ ## Contribution
61
+
62
+ YES. We want contributions.
63
+
64
+ * Adding a bootstrap's file is done by adding a file to
65
+ `lib/documentator/bootstrap`.
66
+ * Adding a templates's file is done by adding a file to
67
+ `lib/documentator/templates`.
68
+
69
+
70
+ ## Copyright
71
+
72
+ MIT. See LICENSE for further details.
data/bin/documentator ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ #require 'documentator'
4
+ require_relative '../lib/documentator'
5
+
6
+ Documentator::Runner.start
@@ -0,0 +1,55 @@
1
+ # encoding: utf-8
2
+ require 'boson/runner'
3
+ require 'pathname'
4
+ require 'fileutils'
5
+
6
+ module Documentator
7
+ class Runner < Boson::Runner
8
+ include FileUtils
9
+
10
+ desc "Generate and populate a doc directory"
11
+ def bootstrap
12
+ create_default_dir!
13
+ Dir[bootstrap_path.join("*")].each do |file|
14
+ cp(file, doc_path).tap { puts "✓ #{File.basename(file, File.extname(file))} created!" }
15
+ end
16
+ end
17
+
18
+ desc "import a template to doc directory"
19
+ def import(template)
20
+ unless File.exists?(doc_path)
21
+ puts "You should run `bootstrap` before trying to import documentation"
22
+ exit 1
23
+ end
24
+ cp(templates_path.join("#{template}.md"), doc_path)
25
+ puts "✓ File #{template} copied."
26
+ rescue Errno::ENOENT
27
+ puts "x File #{template} not found."
28
+ end
29
+
30
+ desc "List all templates"
31
+ def list
32
+ Dir[templates_path.join("*")].each do |file|
33
+ puts "* #{File.basename(file, File.extname(file))}"
34
+ end
35
+ end
36
+
37
+ private
38
+
39
+ def create_default_dir!
40
+ mkdir doc_path rescue nil
41
+ end
42
+
43
+ def doc_path
44
+ Pathname.new(Dir.pwd).join('doc')
45
+ end
46
+
47
+ def bootstrap_path
48
+ Pathname.new(File.expand_path("../", __FILE__)).join "documentator", "bootstrap"
49
+ end
50
+
51
+ def templates_path
52
+ Pathname.new(File.expand_path("../", __FILE__)).join "documentator", "templates"
53
+ end
54
+ end
55
+ end
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,4 @@
1
+ # encoding: utf-8
2
+ source :rubygems
3
+
4
+ gem "guide-em-up"
@@ -0,0 +1,29 @@
1
+ # Beanstalkd
2
+
3
+ [A simple, fast work queue](http://kr.github.com/beanstalkd/).
4
+
5
+ ## Installation
6
+
7
+ En tant que root:
8
+
9
+ ``` shell
10
+ aptitude install beanstalkd
11
+ ```
12
+
13
+ ## Configuration
14
+
15
+ Exemple de fichier de configuration:
16
+
17
+ ## Defaults for the beanstalkd init script, /etc/init.d/beanstalkd on
18
+ ## Debian systems. Append ``-b /var/lib/beanstalkd'' for persistent
19
+ ## storage.
20
+ BEANSTALKD_LISTEN_ADDR=0.0.0.0
21
+ BEANSTALKD_LISTEN_PORT=11300
22
+ DAEMON_OPTS="-l $BEANSTALKD_LISTEN_ADDR -p $BEANSTALKD_LISTEN_PORT"
23
+
24
+ ## Uncomment to enable startup during boot.
25
+ START=yes
26
+
27
+ `beanstalkd` accepte le flag `-b` suivit d'un chemin. Cette option active un
28
+ binlog. Cela permet de ne pas perdre de message lors d'un redémarrage de
29
+ beanstalkd.
@@ -0,0 +1,91 @@
1
+ Déploiement avec capistrano
2
+ ---------------------------
3
+
4
+ Pour nos applications, nous mettons en place un script de déploiement
5
+ automatisé. Celui-ci s'appuie sur l'outil Capistrano et nos recettes maison :
6
+ [capistrano-af83](https://github.com/AF83/capistrano-af83).
7
+
8
+ Sur le serveur
9
+ --------------
10
+
11
+ Nous conseillons de faire tourner l'application avec un user UNIX au nom du
12
+ projet. Pour ce guide de déploiement, nous supposons que son `$HOME` est
13
+ `/var/www/projet` et que les dépendances (Git, Ruby, Nginx, etc.) ont déjà été
14
+ installées.
15
+
16
+ Il est alors nécessaire de créer une clé ssh pour cet utilisateur, à l'aide de
17
+ la commande `ssh-keygen`. Puis, il faudra nous fournir cette clé pour que l'on
18
+ ajoute cette clé SSH comme clé de déploiement sur github.
19
+
20
+ On peut alors se connecter en ssh pour, d'une part, vérifier que ça marche et,
21
+ d'autre part, définir quelques variables d'environnement. Nous avons pour
22
+ habitude de les placer dans le fichier `~/ruby-env` et d'ajouter la ligne
23
+ `source ~/ruby-env` au début du fichier `~/.bashrc`. Voici le contenu de ce
24
+ fichier `ruby-env` :
25
+
26
+ ```
27
+ #!/bin/sh
28
+ export GEM_HOME=~/gem
29
+ export PATH=~/bin:$GEM_HOME/bin:$PATH
30
+ export APP_ROOT=~/prod/current
31
+ export THIN_CONF=~/prod/shared/thin.yml
32
+
33
+ if [ -z "en_US.UTF-8" ]; then
34
+ export LANG=en_US.UTF-8
35
+ fi
36
+
37
+ export RAILS_ENV=production
38
+
39
+ reload() {
40
+ pushd $APP_ROOT && bundle exec thin restart -C $THIN_CONF
41
+ popd
42
+ }
43
+
44
+ stop() {
45
+ pushd $APP_ROOT && bundle exec thin stop -C $THIN_CONF
46
+ popd
47
+ }
48
+ ```
49
+
50
+ Dernière étape coté serveur, il faut installer bundler avec `gem install
51
+ bundler`.
52
+
53
+
54
+ Sur la sandbox de déploiement
55
+ -----------------------------
56
+
57
+ D'autre part, la personne qui fera le déploiement du code a également besoin
58
+ d'accéder à notre dépôt github (envoyez-nous la liste des comptes github) et à
59
+ un environnement Ruby depuis lequel le déploiement capistrano se fera. Sur cet
60
+ environnement, il faudra également installer la gem Ruby bundler (`gem install
61
+ bundler`).
62
+
63
+ Comme pour le coté serveur, il peut être utile de définir les variables
64
+ d'environnement suivantes si Ruby a été installé en root :
65
+
66
+ ```
67
+ export GEM_HOME=~/gem
68
+ export PATH=~/bin:$GEM_HOME/bin:$PATH
69
+ ```
70
+
71
+ Le déploiement se fera depuis le répertoire contenant le code :
72
+
73
+ ```
74
+ git clone git@github.com:AF83/projet.git
75
+ cd projet
76
+ ```
77
+
78
+ La configuration spécifique pour l'environnement de production peut être
79
+ adaptée dans le fichier `config/deploy/prod.rb` (créez le fichier s'il
80
+ n'existe pas). Les principales variables peuvent être affichées avec `cap prod
81
+ info`.
82
+
83
+ Lors du premier déploiement, il convient de lancer `cap prod deploy:setup`.
84
+ Puis, chaque déploiement se fera en lançant `cap prod deploy`.
85
+
86
+ **Note** : il est recommandé de faire un git clone depuis le serveur avant le
87
+ premier déploiement pour éviter le message d'avertissement de ssh (connexion à
88
+ un hôte inconnu).
89
+
90
+ **Astuce** : il est possible de se connecter en ssh sur le serveur en faisant
91
+ `cap prod ssh`.
@@ -0,0 +1,34 @@
1
+ # Grunt
2
+
3
+ [The JavaScript Task Runner](http://gruntjs.com/)
4
+
5
+ ## Installation
6
+
7
+ Version recommandé: 0.4
8
+ Il est supposé que nodejs est installé dans une version supérieure à 0.8
9
+
10
+ ``` shell
11
+ npm install -g grunt-cli
12
+ ```
13
+
14
+ ## Modules projet
15
+
16
+ Pour installer les modules nécessaires au build d'un projet
17
+
18
+ ``` shell
19
+ npm install .
20
+ ```
21
+
22
+ ## Utilisation
23
+
24
+ Pour connaitre la liste des taches disponibles
25
+
26
+ ``` shell
27
+ grunt --help
28
+ ```
29
+
30
+ Dans la plupart des cas, la tache par défaut permet de construire le projet
31
+
32
+ ``` shell
33
+ grunt
34
+ ```
File without changes
@@ -0,0 +1,59 @@
1
+ # Ruby
2
+
3
+ ## Install
4
+
5
+ Our recommandation is to use the most recent Ruby 1.9.3.
6
+
7
+ Debian doesn't provide official packages for Ruby 1.9.3, but it's possible to
8
+ use other sources for that. We trust Bearstech and use their debian packages.
9
+ You can use them for Ruby by creating a
10
+ `/etc/apt/sources.list.d/bearstech-ruby1.9.3.list` file with this line:
11
+
12
+ ```
13
+ deb http://deb.bearstech.com/squeeze ruby-1.9.3/
14
+ ```
15
+
16
+ Then, as root, you can launch the install with:
17
+
18
+ ``` shell
19
+ aptitude update && aptitude install ruby1.9.3 ruby1.9.1-dev build-essential libxml2-dev libxslt1-dev libcurl4-gnutls-dev
20
+ ```
21
+
22
+
23
+ ## Configuration
24
+
25
+ First of all, you need to do some manual setup on the server, create a ruby-env
26
+ shell script with:
27
+
28
+ ``` shell
29
+ cat > ~/ruby-env << EOF
30
+ #!/bin/sh
31
+ export GEM_HOME=~/gem
32
+ export PATH=~/bin:\$GEM_HOME/bin:\$PATH
33
+ if [ -z "\$LANG" ]; then
34
+ export LANG=en_US.UTF-8
35
+ fi
36
+ export RAILS_ENV=production
37
+ export RACK_ENV=production
38
+ EOF
39
+ ```
40
+
41
+ A gemrc file:
42
+
43
+ ``` shell
44
+ cat > ~/.gemrc << EOF
45
+ gem: --no-ri --no-rdoc
46
+ EOF
47
+ ```
48
+
49
+ And source the ~/ruby-env file on top of bashrc.
50
+
51
+
52
+ ## Gems
53
+
54
+ To manage our gems, we use a tool called Bundler. So, you can install them
55
+ by going in the application directory and taping this one-liner:
56
+
57
+ ``` shell
58
+ gem install bundler && bundle install
59
+ ```
@@ -0,0 +1,3 @@
1
+ module Documentator
2
+ VERSION = "0.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,76 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: documentator
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - chatgris
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-03-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: boson
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: |-
28
+ documentator provides templates of documentations and
29
+ command-line utilities to add them to a project.
30
+ email:
31
+ - julien.boyer@af83.com
32
+ executables:
33
+ - documentator
34
+ extensions: []
35
+ extra_rdoc_files: []
36
+ files:
37
+ - LICENSE
38
+ - README.md
39
+ - bin/documentator
40
+ - lib/documentator.rb
41
+ - lib/documentator/bootstrap/Archi.ditaa
42
+ - lib/documentator/bootstrap/Archi.md
43
+ - lib/documentator/bootstrap/Dependencies.md
44
+ - lib/documentator/bootstrap/Deploy.md
45
+ - lib/documentator/bootstrap/Environments.md
46
+ - lib/documentator/bootstrap/Gemfile
47
+ - lib/documentator/templates/beanstalkd.md
48
+ - lib/documentator/templates/capistrano.md
49
+ - lib/documentator/templates/grunt.md
50
+ - lib/documentator/templates/nginx.md
51
+ - lib/documentator/templates/ruby.md
52
+ - lib/documentator/version.rb
53
+ homepage: https://github.com/AF83/documentator
54
+ licenses: []
55
+ metadata: {}
56
+ post_install_message:
57
+ rdoc_options: []
58
+ require_paths:
59
+ - lib
60
+ required_ruby_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - '>='
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ required_rubygems_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ requirements: []
71
+ rubyforge_project:
72
+ rubygems_version: 2.0.0
73
+ signing_key:
74
+ specification_version: 4
75
+ summary: Documents all the things
76
+ test_files: []