blam 1.0.0 → 1.1.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d92a28640beb18f8070efd31f266d764812de862
4
- data.tar.gz: 24b98b9b36352698f2791e197d21660824e58b96
3
+ metadata.gz: 31009b908445b5df457b02052a723b47fce3a438
4
+ data.tar.gz: 62c14dec3e106ce2d9c8f5358f2b57aec1db0a46
5
5
  SHA512:
6
- metadata.gz: 1eced1ec385cd835f9a8dd9a019a4146de26610b45e90d8b804a7e333cfba727b83b69554d27eff07885197cd81fd2b9ca014197b458364f221c1f5c19012ad4
7
- data.tar.gz: 131c8b41125a8ac2c5f709171312e30e8316c4d4ea7c9c7501fd886edf91648029daadfc18933bcd14fdcc086acab2b1c8e7d0daf53d4c3661da9534b6cb8194
6
+ metadata.gz: 50b15cfe33eb0344aa93056014c3af9009146ae04524d2adfcfb6f806af5df3663d74eb0a7db3aecd756e2b9aa4e69f6ee2a8db73590a31067881d270635066b
7
+ data.tar.gz: 6de192cacd7c3a94331c6e42c443e85d009083db764adb55be4666da780b432b41e5984b14fe2e990975c916ee919a5e736479a331f9c4c54054c6cc2d01a4ef
@@ -1,2 +1,5 @@
1
+ #1.1.0 (2013-10-08)
2
+ - added `--no-tests` and `--just-unit` flags
3
+
1
4
  #1.0.0 (2013-10-03)
2
5
  - Initial Release
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # BLAM! [![Build Status](https://travis-ci.org/neverstopbuilding/blam.png?branch=develop)](https://travis-ci.org/neverstopbuilding/blam)
1
+ # BLAM! [![Build Status](https://travis-ci.org/neverstopbuilding/blam.png?branch=develop)](https://travis-ci.org/neverstopbuilding/blam) [![Gem Version](https://badge.fury.io/rb/blam.png)](http://badge.fury.io/rb/blam)
2
2
 
3
3
  ##Create ruby files quickly on the command line. BLAM!
4
4
 
@@ -21,7 +21,7 @@ Or install it yourself as:
21
21
  ## Usage
22
22
 
23
23
  $ blam BeastlyModule::DopeClass
24
-
24
+
25
25
  By default creates these files:
26
26
 
27
27
  - lib
@@ -30,7 +30,7 @@ By default creates these files:
30
30
  - spec
31
31
  - beastly_module
32
32
  - dope_class_spec.rb
33
-
33
+
34
34
  The class file has:
35
35
 
36
36
  ```ruby
@@ -43,7 +43,7 @@ module BeastlyModule
43
43
  end
44
44
  ```
45
45
 
46
- The spec file has:
46
+ The spec file has:
47
47
 
48
48
  ```ruby
49
49
  # Encoding: utf-8
@@ -60,8 +60,10 @@ end
60
60
 
61
61
  - **--source-dir** - Pass an alternative directory to `lib` in which the source files will be created.
62
62
  - **--tests-dir** - Pass an alternative directory to `spec` in which the test files will be created.
63
- - **--test-suffix** - Change the suffix from the test files from the default `spec` to anything you like. Non spec suffixes will get a default class template rather than an rspec class template.
63
+ - **--test-suffix** - Change the suffix from the test files from the default `spec` to anything you like. Non spec suffixes will get a default class template rather than an rspec class template.
64
64
  - **--additional-test-dirs** - Add other directories to create additional test files. This can be helpful for breaking up your tests into folders like `spec/unit` `spec/integration`
65
+ - **--no-tests** - Regardless of your settings it will not create the test files. This is bad. And you are lazy for using this option.
66
+ - **--just-unit** - This will not create files if you have specified additional test directories, helpful when you just want a unit test and don't need an integration test as well.
65
67
 
66
68
  ###.blam File
67
69
 
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'blam'
8
- spec.version = '1.0.0'
8
+ spec.version = '1.1.0'
9
9
  spec.authors = ['Jason Fox']
10
10
  spec.email = ['jasonrobertfox@gmail.com']
11
11
  spec.description = %q{Blam: quickly create ruby source and test files in the right place.}
@@ -121,3 +121,36 @@ Important Code
121
121
  """
122
122
  Important Code
123
123
  """
124
+
125
+ Scenario: Don't create test files if there is an over ride
126
+ Given a file named ".blam" with:
127
+ """
128
+ tests_dir: spec/unit/lib
129
+ additional_test_dirs: [spec/integration/lib, spec/system/lib]
130
+ source_dir: src
131
+ test_suffix: test
132
+ """
133
+ When I run `bundle exec blam --no-tests NameSpace::ClassName`
134
+ Then the following files should exist:
135
+ | src/name_space/class_name.rb |
136
+ And the output should contain "Skipped the tests, you lazy piece of shit!"
137
+ And the following files should not exist:
138
+ | spec/unit/lib/name_space/class_name_test.rb |
139
+ | spec/integration/lib/name_space/class_name_test.rb |
140
+ | spec/system/lib/name_space/class_name_test.rb |
141
+
142
+ Scenario: Only create the unit tests with an over ride
143
+ Given a file named ".blam" with:
144
+ """
145
+ tests_dir: spec/unit/lib
146
+ additional_test_dirs: [spec/integration/lib, spec/system/lib]
147
+ source_dir: src
148
+ test_suffix: test
149
+ """
150
+ When I run `bundle exec blam --just-unit NameSpace::ClassName`
151
+ Then the following files should exist:
152
+ | src/name_space/class_name.rb |
153
+ | spec/unit/lib/name_space/class_name_test.rb |
154
+ And the following files should not exist:
155
+ | spec/integration/lib/name_space/class_name_test.rb |
156
+ | spec/system/lib/name_space/class_name_test.rb |
@@ -13,6 +13,8 @@ class Blam < Thor::Group
13
13
  class_option :tests_dir
14
14
  class_option :test_suffix
15
15
  class_option :additional_test_dirs, type: :array
16
+ class_option :no_tests, type: :boolean
17
+ class_option :just_unit, type: :boolean
16
18
 
17
19
  def self.source_root
18
20
  File.dirname(__FILE__)
@@ -26,15 +28,19 @@ class Blam < Thor::Group
26
28
  end
27
29
 
28
30
  def create_test_file
29
- dirs = [opts[:tests_dir]]
30
- test_suffix = opts[:test_suffix]
31
- test_template = test_suffix == 'spec' ? 'rspec' : 'test'
32
- dirs.concat opts[:additional_test_dirs] if opts[:additional_test_dirs]
33
- dirs.each do |dir|
34
- @name = name
35
- @path = get_path(name)
36
- file_name = "#{dir}/#{get_path(name)}_#{test_suffix}.rb"
37
- template("templates/#{test_template}.tt", file_name) unless File.exists?(file_name)
31
+ if opts[:no_tests]
32
+ puts 'Skipped the tests, you lazy piece of shit!'
33
+ else
34
+ dirs = [opts[:tests_dir]]
35
+ test_suffix = opts[:test_suffix]
36
+ test_template = test_suffix == 'spec' ? 'rspec' : 'test'
37
+ dirs.concat opts[:additional_test_dirs] if opts[:additional_test_dirs] && ! opts[:just_unit]
38
+ dirs.each do |dir|
39
+ @name = name
40
+ @path = get_path(name)
41
+ file_name = "#{dir}/#{get_path(name)}_#{test_suffix}.rb"
42
+ template("templates/#{test_template}.tt", file_name) unless File.exists?(file_name)
43
+ end
38
44
  end
39
45
  end
40
46
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blam
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Fox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-04 00:00:00.000000000 Z
11
+ date: 2013-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler