penchant 0.2.11 → 0.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +10 -5
 - data/bin/penchant +15 -8
 - data/features/cli.feature +12 -0
 - data/features/support/env.rb +1 -1
 - data/lib/penchant/version.rb +1 -1
 - metadata +5 -5
 
    
        data/README.md
    CHANGED
    
    | 
         @@ -37,6 +37,14 @@ gem 'rails', '3.2.3' 
     | 
|
| 
       37 
37 
     | 
    
         
             
            # gem 'rack-rewrite'
         
     | 
| 
       38 
38 
     | 
    
         
             
            gems 'rake', 'nokogiri', 'rack-rewrite'
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
      
 40 
     | 
    
         
            +
            # define custom gem properties that get expanded to ones bundler understands
         
     | 
| 
      
 41 
     | 
    
         
            +
            property :github, :git => 'git://github.com/$1/%s.git'
         
     | 
| 
      
 42 
     | 
    
         
            +
              # values to the key are [ value ].flatten-ed and the $s are replaced on the fly,
         
     | 
| 
      
 43 
     | 
    
         
            +
              # with $1 being the first parameter given
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            # set up defaults for all gems in a particular environment
         
     | 
| 
      
 46 
     | 
    
         
            +
            defaults_for env(:local), :path => '../%s' # the %s is the name of the gem
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
       40 
48 
     | 
    
         
             
            no_deployment do
         
     | 
| 
       41 
49 
     | 
    
         
             
              group :development, :test do
         
     | 
| 
       42 
50 
     | 
    
         
             
                gem 'rspec', '~> 2.6.0'
         
     | 
| 
         @@ -46,9 +54,6 @@ no_deployment do 
     | 
|
| 
       46 
54 
     | 
    
         
             
                # set up defaults for certain gems that are probably being used in envs
         
     | 
| 
       47 
55 
     | 
    
         
             
                defaults_for dev_gems, :require => nil
         
     | 
| 
       48 
56 
     | 
    
         | 
| 
       49 
     | 
    
         
            -
                # set up defaults for all gems in a particular environment
         
     | 
| 
       50 
     | 
    
         
            -
                defaults_for env(:local), :path => '../%s' # the %s is the name of the gem
         
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
57 
     | 
    
         
             
                env :local do
         
     | 
| 
       53 
58 
     | 
    
         
             
                  # expands to:
         
     | 
| 
       54 
59 
     | 
    
         
             
                  #
         
     | 
| 
         @@ -62,7 +67,7 @@ no_deployment do 
     | 
|
| 
       62 
67 
     | 
    
         
             
                  #
         
     | 
| 
       63 
68 
     | 
    
         
             
                  # gem 'flowerbox', :git => 'git://github.com/johnbintz/flowerbox.git', :require => nil
         
     | 
| 
       64 
69 
     | 
    
         
             
                  # gem 'guard-flowerbox', :git => 'git://github.com/johnbintz/guard-flowerbox.git', :require => nil
         
     | 
| 
       65 
     | 
    
         
            -
                  gems dev_gems, : 
     | 
| 
      
 70 
     | 
    
         
            +
                  gems dev_gems, :github => 'johnbintz'
         
     | 
| 
       66 
71 
     | 
    
         
             
                end
         
     | 
| 
       67 
72 
     | 
    
         | 
| 
       68 
73 
     | 
    
         
             
                # only expanded on Mac OS X
         
     | 
| 
         @@ -122,7 +127,7 @@ shouldn't be changing the main versions of your application gems. It WORKSFORME 
     | 
|
| 
       122 
127 
     | 
    
         
             
            ### Getting local gems all set up
         
     | 
| 
       123 
128 
     | 
    
         | 
| 
       124 
129 
     | 
    
         
             
            `penchant bootstrap` will go through and find all git repo references in your `Gemfile.penchant` and
         
     | 
| 
       125 
     | 
    
         
            -
            will download them to the specified directory (by default,  
     | 
| 
      
 130 
     | 
    
         
            +
            will download them to the specified directory (by default, `..`). This means blocks like this
         
     | 
| 
       126 
131 
     | 
    
         
             
            will work as expected when you `penchant bootstrap` and then `penchant gemfile local`:
         
     | 
| 
       127 
132 
     | 
    
         | 
| 
       128 
133 
     | 
    
         
             
            ``` ruby
         
     | 
    
        data/bin/penchant
    CHANGED
    
    | 
         @@ -9,25 +9,32 @@ class PenchantCLI < Thor 
     | 
|
| 
       9 
9 
     | 
    
         
             
              include Thor::Actions
         
     | 
| 
       10 
10 
     | 
    
         
             
              source_root File.expand_path('../..', __FILE__)
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
      
 12 
     | 
    
         
            +
              SCRIPT_DIR = 'script'
         
     | 
| 
      
 13 
     | 
    
         
            +
              CLONE_DIR = '..'
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
       12 
15 
     | 
    
         
             
              desc "install", "Copy the common scripts to the project"
         
     | 
| 
       13 
     | 
    
         
            -
              method_options :dir =>  
     | 
| 
      
 16 
     | 
    
         
            +
              method_options :dir => SCRIPT_DIR
         
     | 
| 
       14 
17 
     | 
    
         
             
              def install
         
     | 
| 
       15 
18 
     | 
    
         
             
                directory 'template/script', options[:dir]
         
     | 
| 
       16 
19 
     | 
    
         
             
                Dir[File.join(options[:dir], '**/*')].each { |file| File.chmod(0755, file) }
         
     | 
| 
       17 
20 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
                 
     | 
| 
       19 
     | 
    
         
            -
                   
     | 
| 
      
 21 
     | 
    
         
            +
                if File.directory?('.git')
         
     | 
| 
      
 22 
     | 
    
         
            +
                  Dir['script/hooks/*'].each do |hook|
         
     | 
| 
      
 23 
     | 
    
         
            +
                    FileUtils.ln_sf File.join(Dir.pwd, hook), ".git/hooks/#{File.split(hook).last}"
         
     | 
| 
      
 24 
     | 
    
         
            +
                  end
         
     | 
| 
      
 25 
     | 
    
         
            +
                else
         
     | 
| 
      
 26 
     | 
    
         
            +
                  puts "No git repository detected here. Skipping git hook installation..."
         
     | 
| 
       20 
27 
     | 
    
         
             
                end
         
     | 
| 
       21 
28 
     | 
    
         
             
              end
         
     | 
| 
       22 
29 
     | 
    
         | 
| 
       23 
30 
     | 
    
         
             
              desc "update", "Update the installed scripts"
         
     | 
| 
       24 
     | 
    
         
            -
              method_options :dir =>  
     | 
| 
      
 31 
     | 
    
         
            +
              method_options :dir => SCRIPT_DIR
         
     | 
| 
       25 
32 
     | 
    
         
             
              def update
         
     | 
| 
       26 
33 
     | 
    
         
             
                install
         
     | 
| 
       27 
34 
     | 
    
         
             
              end
         
     | 
| 
       28 
35 
     | 
    
         | 
| 
       29 
36 
     | 
    
         
             
              desc "convert", "Make an existing project Penchant-isized"
         
     | 
| 
       30 
     | 
    
         
            -
              method_options :dir =>  
     | 
| 
      
 37 
     | 
    
         
            +
              method_options :dir => SCRIPT_DIR
         
     | 
| 
       31 
38 
     | 
    
         
             
              def convert
         
     | 
| 
       32 
39 
     | 
    
         
             
                install
         
     | 
| 
       33 
40 
     | 
    
         
             
                FileUtils.mv 'Gemfile', 'Gemfile.penchant'
         
     | 
| 
         @@ -63,10 +70,10 @@ class PenchantCLI < Thor 
     | 
|
| 
       63 
70 
     | 
    
         
             
                puts get_current_env
         
     | 
| 
       64 
71 
     | 
    
         
             
              end
         
     | 
| 
       65 
72 
     | 
    
         | 
| 
       66 
     | 
    
         
            -
              desc "bootstrap [DIR =  
     | 
| 
       67 
     | 
    
         
            -
              def bootstrap(dir =  
     | 
| 
      
 73 
     | 
    
         
            +
              desc "bootstrap [DIR = #{CLONE_DIR}]", "Download all referred-to git repos to the specified directory"
         
     | 
| 
      
 74 
     | 
    
         
            +
              def bootstrap(dir = CLONE_DIR)
         
     | 
| 
       68 
75 
     | 
    
         
             
                Penchant::Gemfile.defined_git_repos.each do |repo|
         
     | 
| 
       69 
     | 
    
         
            -
                  puts "Cloning #{repo} to #{dir} 
     | 
| 
      
 76 
     | 
    
         
            +
                  puts "Cloning #{repo} to #{dir}"
         
     | 
| 
       70 
77 
     | 
    
         
             
                  repo.clone_to(dir)
         
     | 
| 
       71 
78 
     | 
    
         
             
                end
         
     | 
| 
       72 
79 
     | 
    
         
             
              end
         
     | 
    
        data/features/cli.feature
    CHANGED
    
    | 
         @@ -16,3 +16,15 @@ Feature: CLI 
     | 
|
| 
       16 
16 
     | 
    
         
             
                  """
         
     | 
| 
       17 
17 
     | 
    
         
             
                  And the output should include "fallback: other"
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
      
 19 
     | 
    
         
            +
              Scenario: Try to convert a project, ignoring git hooks
         
     | 
| 
      
 20 
     | 
    
         
            +
                Given I have the file "tmp/Gemfile" with the content:
         
     | 
| 
      
 21 
     | 
    
         
            +
                  """
         
     | 
| 
      
 22 
     | 
    
         
            +
                  source :rubygems
         
     | 
| 
      
 23 
     | 
    
         
            +
                  """
         
     | 
| 
      
 24 
     | 
    
         
            +
                When I run "bin/penchant convert" in the "tmp" directory
         
     | 
| 
      
 25 
     | 
    
         
            +
                Then the file "tmp/Gemfile.penchant" should have the following content:
         
     | 
| 
      
 26 
     | 
    
         
            +
                  """
         
     | 
| 
      
 27 
     | 
    
         
            +
                  source :rubygems
         
     | 
| 
      
 28 
     | 
    
         
            +
                  """
         
     | 
| 
      
 29 
     | 
    
         
            +
                  And the output should include "No git"
         
     | 
| 
      
 30 
     | 
    
         
            +
                
         
     | 
    
        data/features/support/env.rb
    CHANGED
    
    
    
        data/lib/penchant/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: penchant
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.2.12
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2012-07- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2012-07-23 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: bundler
         
     | 
| 
         @@ -193,7 +193,7 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       193 
193 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       194 
194 
     | 
    
         
             
                  segments:
         
     | 
| 
       195 
195 
     | 
    
         
             
                  - 0
         
     | 
| 
       196 
     | 
    
         
            -
                  hash:  
     | 
| 
      
 196 
     | 
    
         
            +
                  hash: 1854452012171480691
         
     | 
| 
       197 
197 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       198 
198 
     | 
    
         
             
              none: false
         
     | 
| 
       199 
199 
     | 
    
         
             
              requirements:
         
     | 
| 
         @@ -202,10 +202,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       202 
202 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       203 
203 
     | 
    
         
             
                  segments:
         
     | 
| 
       204 
204 
     | 
    
         
             
                  - 0
         
     | 
| 
       205 
     | 
    
         
            -
                  hash:  
     | 
| 
      
 205 
     | 
    
         
            +
                  hash: 1854452012171480691
         
     | 
| 
       206 
206 
     | 
    
         
             
            requirements: []
         
     | 
| 
       207 
207 
     | 
    
         
             
            rubyforge_project: penchant
         
     | 
| 
       208 
     | 
    
         
            -
            rubygems_version: 1.8. 
     | 
| 
      
 208 
     | 
    
         
            +
            rubygems_version: 1.8.24
         
     | 
| 
       209 
209 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       210 
210 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       211 
211 
     | 
    
         
             
            summary: Things I do for my Rails projects to get up to speed in new environments
         
     |