dummy_gen-rails 0.0.1 → 0.0.5

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/Rakefile CHANGED
@@ -1 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ desc "Run RSpec tests"
5
+ RSpec::Core::RakeTask.new do |t|
6
+ end
7
+
data/dummy_gen.gemspec CHANGED
@@ -18,5 +18,8 @@ Gem::Specification.new do |gem|
18
18
  gem.require_paths = ["lib"]
19
19
 
20
20
  gem.add_dependency "rails", "~> 3.2"
21
+ gem.add_development_dependency 'rspec', '~> 2.11.0'
22
+ gem.add_development_dependency 'rspec-rails', '~> 2.11.0'
23
+ gem.add_development_dependency 'ammeter', '~> 0.2.8'
21
24
  end
22
25
 
@@ -5,7 +5,17 @@ require "active_support/core_ext/hash/slice"
5
5
  module DummyGen
6
6
  module Generators
7
7
  class DummyGenerator < Rails::Generators::Base
8
- argument :engine_name, :type => :string
8
+ argument :engine_name, type: :string
9
+
10
+ class_option :dummy_path,
11
+ type: :string,
12
+ default: "spec/dummy",
13
+ desc: "Where to generate the dummy application"
14
+
15
+ class_option :dummy_module,
16
+ type: :string,
17
+ default: "Dummy",
18
+ desc: "Dummy application module"
9
19
 
10
20
  def self.source_paths
11
21
  paths = self.superclass.source_paths
@@ -22,9 +32,7 @@ module DummyGen
22
32
  opts = (options || {}).slice(*PASSTHROUGH_OPTIONS)
23
33
  opts[:force] = true
24
34
  opts[:skip_bundle] = true
25
-
26
- invoke Rails::Generators::AppGenerator,
27
- [ File.expand_path(dummy_path, destination_root) ], opts
35
+ invoke_app_generator(opts)
28
36
  end
29
37
 
30
38
  def test_dummy_clean
@@ -61,15 +69,15 @@ module DummyGen
61
69
  end
62
70
 
63
71
  def dummy_path
64
- "spec/dummy"
72
+ options[:dummy_path]
65
73
  end
66
74
 
67
75
  def dummy_module_name
68
- "Dummy"
76
+ options[:dummy_module]
69
77
  end
70
78
 
71
79
  def dummy_app_requires
72
- [ "jquery_rails", "#{engine_name}", "#{engine_name}/engine" ]
80
+ [ "jquery-rails", "#{engine_name}", "#{engine_name}/engine" ]
73
81
  end
74
82
 
75
83
  def dummy_application_definition
@@ -85,6 +93,14 @@ module DummyGen
85
93
  def gemfile_path
86
94
  "../../../../Gemfile"
87
95
  end
96
+
97
+ private
98
+ def invoke_app_generator(opts)
99
+ cwd = FileUtils.pwd
100
+ invoke Rails::Generators::AppGenerator,
101
+ [ File.expand_path(dummy_path, destination_root) ], opts
102
+ FileUtils.cd(cwd)
103
+ end
88
104
  end
89
105
  end
90
106
  end
@@ -1,3 +1,3 @@
1
1
  module DummyGen
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -0,0 +1,37 @@
1
+ require 'rails/generators'
2
+
3
+ module DummyGen
4
+ class DummyAppTaskGenerator < Rails::Generators::NamedBase
5
+ argument :engine_name, :type => :string
6
+ class_option :lib_root,
7
+ type: :string,
8
+ default: "lib",
9
+ desc: "lib root directory"
10
+
11
+ class_option :dummy_path,
12
+ type: :string,
13
+ default: "spec/dummy",
14
+ desc: "Dummy application path"
15
+
16
+ def self.source_paths
17
+ paths = self.superclass.source_paths
18
+ paths << File.expand_path("../templates", __FILE__)
19
+ paths.flatten
20
+ end
21
+
22
+ def generate_task
23
+ puts application_name
24
+ template "dummy_app.rake", "#{lib_root}/tasks/#{file_name}.rake"
25
+ end
26
+
27
+ protected
28
+ def lib_root
29
+ options[:lib_root]
30
+ end
31
+
32
+ def dummy_path
33
+ options[:dummy_path]
34
+ end
35
+ end
36
+ end
37
+
@@ -0,0 +1,25 @@
1
+ require 'dummy_gen'
2
+
3
+ namespace :<%= file_name %> do
4
+ desc "Generate a dummy application"
5
+ task :generate => [:setup, :migrate]
6
+
7
+ task :setup do
8
+ DummyGen::Generators::DummyGenerator.start(
9
+ [
10
+ "<%= engine_name %>",
11
+ "--quiet",
12
+ "--dummy_path=<%= dummy_path %>",
13
+ ])
14
+ end
15
+
16
+ task :migrate do
17
+ # Add migration operations here
18
+ end
19
+
20
+ desc "Destroy the dummy application"
21
+ task :destroy do
22
+ FileUtils.rm_rf "<%= dummy_path %>" if File.exists?("<%= dummy_path %>")
23
+ end
24
+ end
25
+
@@ -0,0 +1,59 @@
1
+ require "spec_helper"
2
+
3
+ require "dummy_gen/generators/dummy_generator"
4
+
5
+ describe DummyGen::Generators::DummyGenerator, type: :generator do
6
+ destination DummyGenSpec.tmp_path
7
+
8
+ before { prepare_destination }
9
+
10
+ describe 'with an engine name' do
11
+ let (:generator_args) { ['engine_name'] }
12
+
13
+ describe 'the generated files' do
14
+ before { run_generator generator_args }
15
+
16
+ describe 'in spec/dummy' do
17
+ describe 'Rakefile' do
18
+ subject { file('spec/dummy/Rakefile') }
19
+
20
+ it { should exist }
21
+ it { should contain /Dummy::Application.load_tasks/ }
22
+ end
23
+
24
+ shared_examples_for 'an empty app dir' do |file_path|
25
+ it 'should be a directory' do
26
+ File.directory?(file_path)
27
+ end
28
+
29
+ describe 'entries' do
30
+ subject { Dir.new(file(file_path)).entries }
31
+ its(:size) { should == 3 }
32
+ it { should eq(['.', '..', '.gitkeep']) }
33
+ end
34
+ end
35
+
36
+ describe 'app/assets' do
37
+ it_should_behave_like 'an empty app dir', 'spec/dummy/app/assets'
38
+ end
39
+
40
+ describe 'app/controllers' do
41
+ it_should_behave_like 'an empty app dir', 'spec/dummy/app/controllers'
42
+ end
43
+
44
+ describe 'app/helpers' do
45
+ it_should_behave_like 'an empty app dir', 'spec/dummy/app/helpers'
46
+ end
47
+
48
+ describe 'app/models' do
49
+ it_should_behave_like 'an empty app dir', 'spec/dummy/app/models'
50
+ end
51
+
52
+ describe 'app/views' do
53
+ it_should_behave_like 'an empty app dir', 'spec/dummy/app/views'
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+
@@ -0,0 +1,11 @@
1
+ require 'bundler/setup'
2
+ require 'ammeter/init'
3
+
4
+ Bundler.require
5
+
6
+ module DummyGenSpec
7
+ def self.tmp_path
8
+ File.expand_path('../../tmp', __FILE__)
9
+ end
10
+ end
11
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dummy_gen-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.5
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-09-25 00:00:00.000000000 Z
12
+ date: 2012-09-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -27,6 +27,54 @@ dependencies:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
29
  version: '3.2'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 2.11.0
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 2.11.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: rspec-rails
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 2.11.0
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 2.11.0
62
+ - !ruby/object:Gem::Dependency
63
+ name: ammeter
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 0.2.8
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 0.2.8
30
78
  description: Generator for creating a dummy application for use in Rails 3 engine
31
79
  development.
32
80
  email:
@@ -55,6 +103,10 @@ files:
55
103
  - lib/dummy_gen/generators/dummy_templates/config/initializers/engine_initializer.rb
56
104
  - lib/dummy_gen/generators/dummy_templates/config/routes.rb
57
105
  - lib/dummy_gen/version.rb
106
+ - lib/generators/dummy_gen/dummy_app_task/dummy_app_task_generator.rb
107
+ - lib/generators/dummy_gen/dummy_app_task/templates/dummy_app.rake
108
+ - spec/lib/dummy_gen/generators/dummy_generator_spec.rb
109
+ - spec/spec_helper.rb
58
110
  homepage: https://github.com/skroll/dummy_gen-rails
59
111
  licenses: []
60
112
  post_install_message:
@@ -79,4 +131,6 @@ rubygems_version: 1.8.23
79
131
  signing_key:
80
132
  specification_version: 3
81
133
  summary: Generator for creating a dummy application for use in Rails 3 engine development.
82
- test_files: []
134
+ test_files:
135
+ - spec/lib/dummy_gen/generators/dummy_generator_spec.rb
136
+ - spec/spec_helper.rb