quick_shoulda 0.1.1 → 0.2.1

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.rdoc CHANGED
@@ -62,8 +62,14 @@ multi model name / paths as parameter
62
62
  or
63
63
  Rails generate quick_shoulda:g app/models/user.rb app/models/post.rb
64
64
 
65
+ == Configurations
66
+ Install config file by
67
+ Rails generate quick_shoulda:install
65
68
 
69
+ This will place the .qshoulda.yml in the root path , then edit this file for configuration purpose
66
70
 
71
+ Config location to put the generated spec files
72
+ spec_folder: test/models
67
73
 
68
74
  == Contributing
69
75
 
@@ -0,0 +1,11 @@
1
+ module QuickShoulda
2
+ class InstallGenerator < ::Rails::Generators::Base
3
+ def self.source_root
4
+ @source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
5
+ end
6
+
7
+ def copy_config_file
8
+ template '.qshoulda.yml'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1 @@
1
+ spec_folder: spec/models/
data/lib/quick_shoulda.rb CHANGED
@@ -4,7 +4,6 @@ require "quick_shoulda/path_resolver"
4
4
  require "quick_shoulda/file_writer"
5
5
  require "quick_shoulda/generator"
6
6
  require "quick_shoulda/main"
7
- require "quick_shoulda/config"
8
7
  require 'fileutils'
9
8
 
10
9
  module QuickShoulda
@@ -0,0 +1,20 @@
1
+ require 'yaml'
2
+
3
+ module QuickShoulda
4
+ module ConfigFileReader
5
+ class << self
6
+ def read
7
+ YAML.load(File.open(config_file_name))
8
+ end
9
+
10
+ def config_file_exist?
11
+ File.file?(config_file_name)
12
+ end
13
+
14
+ private
15
+ def config_file_name
16
+ './.qshoulda.yml'
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,3 +1,5 @@
1
+ require 'quick_shoulda/config_file_reader'
2
+
1
3
  module QuickShoulda
2
4
  module Main
3
5
  def self.included(base)
@@ -15,11 +17,22 @@ module QuickShoulda
15
17
 
16
18
  def configure(path)
17
19
  @path = path
18
- @spec_folder = QuickShoulda::Config::SpecFolder
20
+ @spec_folder = default_spec_folder
21
+
22
+ if ConfigFileReader.config_file_exist?
23
+ configs = ConfigFileReader.read
24
+ @spec_folder = configs['spec_folder'].dup if configs['spec_folder']
25
+ @spec_folder << "/" if @spec_folder[-1].to_s != '/'
26
+ end
27
+
19
28
  @model_full_namespace = _model_full_namespace
20
29
  @spec_file_path = _spec_file_path
21
30
  end
22
31
 
32
+ def default_spec_folder
33
+ 'spec/models/'
34
+ end
35
+
23
36
  def generate
24
37
  generate_shoulda_content
25
38
  create_and_write_to_file
@@ -34,6 +47,6 @@ module QuickShoulda
34
47
  create_file_and_write_init_content unless spec_file_exist?
35
48
  clear_all_blocks
36
49
  write_block(validations_block + associations_block)
37
- end
50
+ end
38
51
  end
39
52
  end
@@ -1,3 +1,3 @@
1
1
  module QuickShoulda
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'QuickShoulda::ConfigFileReader' do
4
+ subject { QuickShoulda::ConfigFileReader }
5
+ describe '#config_file_exist?' do
6
+ context 'with config file' do
7
+ before { subject.stub(:config_file_name).and_return('./spec/spec_helper.rb') }
8
+
9
+ it 'should return true' do
10
+ subject.config_file_exist?.should be_true
11
+ end
12
+ end
13
+
14
+ context 'without config file' do
15
+ it 'should return false' do
16
+ subject.config_file_exist?.should be_false
17
+ end
18
+ end
19
+ end
20
+
21
+ describe '#read' do
22
+ before { subject.stub(:config_file_name).and_return('./.travis.yml') }
23
+
24
+ it 'should return a hash of configurations' do
25
+ subject.read.should be_a Hash
26
+ end
27
+
28
+ it 'has string keys' do
29
+ subject.read.keys.each do |key|
30
+ key.should be_a String
31
+ end
32
+ end
33
+ end
34
+ end
data/spec/main_spec.rb CHANGED
@@ -47,35 +47,59 @@ describe 'QuickShoulda::Main' do
47
47
  let(:validations) {[]}
48
48
  let(:associations) {[]}
49
49
 
50
- before do
51
- send(:configure, given_path)
52
- end
53
-
54
50
  context 'path' do
55
51
  it 'should store valid value' do
52
+ send(:configure, given_path)
56
53
  path.should eq given_path
57
54
  end
58
55
  end
59
56
 
60
- context 'spec_folder' do
61
- it 'should store valid value' do
62
- spec_folder.should eq QuickShoulda::Config::SpecFolder
57
+ context 'config file given' do
58
+ let(:configs) do
59
+ { 'spec_folder' => 'aaaaaaaaaaaa' }
63
60
  end
64
- end
65
61
 
66
- context 'model_full_namespace' do
67
- let(:expected) { ::User::Friend }
68
- it 'should store valid value' do
69
- model_full_namespace.should eq expected
62
+ before do
63
+ QuickShoulda::ConfigFileReader.should_receive(:config_file_exist?).and_return(true)
64
+ QuickShoulda::ConfigFileReader.should_receive(:read).and_return(configs)
65
+ send(:configure, given_path)
66
+ end
67
+
68
+ context 'spec_folder' do
69
+ it 'should get value from config file' do
70
+ send(:spec_folder).should == configs['spec_folder'] + '/'
71
+ end
70
72
  end
71
73
  end
72
74
 
73
- context 'spec_file_path' do
74
- let(:expected) { 'spec/models/user/friend_spec.rb' }
75
- it 'should store valid value' do
76
- spec_file_path.should eq expected
75
+ context 'config file is not given' do
76
+ before do
77
+ QuickShoulda::ConfigFileReader.should_receive(:config_file_exist?).and_return(false)
78
+ send(:configure, given_path)
79
+ end
80
+
81
+
82
+ context 'spec_folder' do
83
+ it 'should store valid value' do
84
+ spec_folder.should eq send(:default_spec_folder)
85
+ end
86
+ end
87
+
88
+ context 'model_full_namespace' do
89
+ let(:expected) { ::User::Friend }
90
+ it 'should store valid value' do
91
+ model_full_namespace.should eq expected
92
+ end
93
+ end
94
+
95
+ context 'spec_file_path' do
96
+ let(:expected) { 'spec/models/user/friend_spec.rb' }
97
+ it 'should store valid value' do
98
+ spec_file_path.should eq expected
99
+ end
77
100
  end
78
101
  end
102
+
79
103
  end
80
104
 
81
105
  describe '#generate' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quick_shoulda
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.1
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: 2013-05-04 00:00:00.000000000 Z
12
+ date: 2013-05-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: random_string
@@ -77,9 +77,11 @@ files:
77
77
  - LICENSE.txt
78
78
  - README.rdoc
79
79
  - Rakefile
80
- - lib/generators/quick_shoulda/g_generator.rb
80
+ - lib/generators/quick_shoulda/g/g_generator.rb
81
+ - lib/generators/quick_shoulda/install/install_generator.rb
82
+ - lib/generators/quick_shoulda/install/templates/.qshoulda.yml
81
83
  - lib/quick_shoulda.rb
82
- - lib/quick_shoulda/config.rb
84
+ - lib/quick_shoulda/config_file_reader.rb
83
85
  - lib/quick_shoulda/errors.rb
84
86
  - lib/quick_shoulda/file_writer.rb
85
87
  - lib/quick_shoulda/generator.rb
@@ -91,6 +93,7 @@ files:
91
93
  - lib/quick_shoulda/path_resolver.rb
92
94
  - lib/quick_shoulda/version.rb
93
95
  - quick_shoulda.gemspec
96
+ - spec/config_file_reader_spec.rb
94
97
  - spec/file_writer_spec.rb
95
98
  - spec/fixtures/user_spec.rb
96
99
  - spec/fixtures/write_spec.rb
@@ -118,7 +121,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
118
121
  version: '0'
119
122
  segments:
120
123
  - 0
121
- hash: -3326814885739799411
124
+ hash: -2794241305955949592
122
125
  required_rubygems_version: !ruby/object:Gem::Requirement
123
126
  none: false
124
127
  requirements:
@@ -127,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
130
  version: '0'
128
131
  segments:
129
132
  - 0
130
- hash: -3326814885739799411
133
+ hash: -2794241305955949592
131
134
  requirements: []
132
135
  rubyforge_project:
133
136
  rubygems_version: 1.8.25
@@ -135,6 +138,7 @@ signing_key:
135
138
  specification_version: 3
136
139
  summary: read through your model file and generate Shoulda test cases
137
140
  test_files:
141
+ - spec/config_file_reader_spec.rb
138
142
  - spec/file_writer_spec.rb
139
143
  - spec/fixtures/user_spec.rb
140
144
  - spec/fixtures/write_spec.rb
@@ -1,5 +0,0 @@
1
- module QuickShoulda
2
- module Config
3
- SpecFolder = 'spec/models/'
4
- end
5
- end