adamelliot-nifty-generators 0.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.
Files changed (2) hide show
  1. data/test/test_helper.rb +117 -0
  2. metadata +77 -0
@@ -0,0 +1,117 @@
1
+ require 'test/unit'
2
+
3
+ # Must set before requiring generator libs.
4
+ TMP_ROOT = File.dirname(__FILE__) + "/tmp" unless defined?(TMP_ROOT)
5
+ PROJECT_NAME = "myproject" unless defined?(PROJECT_NAME)
6
+ app_root = File.join(TMP_ROOT, PROJECT_NAME)
7
+ if defined?(APP_ROOT)
8
+ APP_ROOT.replace(app_root)
9
+ else
10
+ APP_ROOT = app_root
11
+ end
12
+ if defined?(RAILS_ROOT)
13
+ RAILS_ROOT.replace(app_root)
14
+ else
15
+ RAILS_ROOT = app_root
16
+ end
17
+
18
+ require 'rubygems'
19
+ gem 'rails', '2.0.2' # getting a Rails.configuration error with 2.1
20
+ require 'rubigen' # gem install rubigen
21
+ require 'rubigen/helpers/generator_test_helper'
22
+ require 'rails_generator'
23
+ require 'shoulda' # gem install Shoulda
24
+ require 'mocha'
25
+
26
+ module NiftyGenerators
27
+ module TestHelper
28
+ include RubiGen::GeneratorTestHelper
29
+
30
+ def setup
31
+ bare_setup
32
+ end
33
+
34
+ def teardown
35
+ bare_teardown
36
+ end
37
+
38
+ protected
39
+
40
+ def run_rails_generator(generator, *args)
41
+ options = args.pop if args.last.kind_of? Hash
42
+ options ||= {}
43
+ run_generator(generator.to_s, args, generator_sources, options.reverse_merge(:quiet => true))
44
+ end
45
+
46
+ def generator_sources
47
+ [RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__), "..", "rails_generators"))]
48
+ end
49
+ end
50
+
51
+ module ShouldaAdditions
52
+ def rails_generator(*args)
53
+ setup do
54
+ run_rails_generator(*args)
55
+ end
56
+ end
57
+
58
+ def should_generate_file(file, &block)
59
+ should "generate file #{file}" do
60
+ yield("foo") if block_given?
61
+ assert_generated_file(file)
62
+ end
63
+ end
64
+
65
+ def should_not_generate_file(file)
66
+ should "not generate file #{file}" do
67
+ assert !File.exists?("#{APP_ROOT}/#{file}"),"The file '#{file}' should not exist"
68
+ end
69
+ end
70
+ end
71
+ end
72
+
73
+ class Thoughtbot::Shoulda::Context
74
+ include NiftyGenerators::ShouldaAdditions
75
+ end
76
+
77
+ # Mock out what we need from AR::Base.
78
+ module ActiveRecord
79
+ class Base
80
+ class << self
81
+ attr_accessor :pluralize_table_names, :columns
82
+
83
+ def add_column(name, type = :string)
84
+ returning ActiveRecord::ConnectionAdapters::Column.new(name, nil) do |column|
85
+ column.type = type
86
+ @columns ||= []
87
+ @columns << column
88
+ end
89
+ end
90
+ end
91
+ self.pluralize_table_names = true
92
+ end
93
+
94
+ module ConnectionAdapters
95
+ class Column
96
+ attr_accessor :name, :default, :type, :limit, :null, :sql_type, :precision, :scale
97
+
98
+ def initialize(name, default, sql_type = nil)
99
+ @name = name
100
+ @default = default
101
+ @type = @sql_type = sql_type
102
+ end
103
+
104
+ def human_name
105
+ @name.humanize
106
+ end
107
+ end
108
+ end
109
+ end
110
+
111
+ # And what we need from ActionView
112
+ module ActionView
113
+ module Helpers
114
+ module ActiveRecordHelper; end
115
+ class InstanceTag; end
116
+ end
117
+ end
metadata ADDED
@@ -0,0 +1,77 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: adamelliot-nifty-generators
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Ryan Bates
8
+ - Adam Elliot
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2009-02-19 00:00:00 -08:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: authlogic
18
+ type: :runtime
19
+ version_requirement:
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: "0"
25
+ version:
26
+ - !ruby/object:Gem::Dependency
27
+ name: haml
28
+ type: :runtime
29
+ version_requirement:
30
+ version_requirements: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: "0"
35
+ version:
36
+ description: A collection of useful generator scripts for Rails.
37
+ email: adam@warptube.com
38
+ executables: []
39
+
40
+ extensions: []
41
+
42
+ extra_rdoc_files: []
43
+
44
+ files: []
45
+
46
+ has_rdoc: false
47
+ homepage: http://github.com/adamelliot/nifty-generators
48
+ post_install_message:
49
+ rdoc_options: []
50
+
51
+ require_paths:
52
+ - lib
53
+ required_ruby_version: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: "0"
58
+ version:
59
+ required_rubygems_version: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: "1.2"
64
+ version:
65
+ requirements: []
66
+
67
+ rubyforge_project:
68
+ rubygems_version: 1.2.0
69
+ signing_key:
70
+ specification_version: 2
71
+ summary: A collection of useful generator scripts for Rails.
72
+ test_files:
73
+ - test/test_pizza_config_generator.rb
74
+ - test/test_pizza_authentication_generator.rb
75
+ - test/test_pizza_layout_generator.rb
76
+ - test/test_pizza_scaffold_generator.rb
77
+ - test/test_helper.rb