padrino-gen 0.13.0.beta2 → 0.13.0.beta3

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: eb6b8990a21282c06f0e7e0727d62ec5470fa604
4
- data.tar.gz: 72044379f1f848294dfca02672199f5890382eb2
3
+ metadata.gz: aceae5b873cbcba1e4b72aa2dcb1f0466be21683
4
+ data.tar.gz: 746ce83ec7367d4472913f10efccedfe53af73e0
5
5
  SHA512:
6
- metadata.gz: 8b810a9cdbd38cfa1ad0122a55610c5f036fb9890c5983c255942b490c036d45bbb18e1a1576b0fda731af4dd27122a5ddb1c65f0168a00af95b05b1bb358130
7
- data.tar.gz: e7aeb4b08d77b333116225c30513822e035b1b99202571bd4a127b09cbdca1618f507487a17699c8f39ebd0a81352749d852046a9f30e8fee9233f07ae26afa5
6
+ metadata.gz: 93c568757fda1a7f6a05e28baf039fcf87d68b788d9d98ed7c0d4969215813eefa23002e03398119e5e392b9bfe9c298fc7d5b687cc152c685641d32f22db4ae
7
+ data.tar.gz: 5313b5922d16b4cbb587514f1b20bee6d1a5a3c7750d5ef39993fefa08426c69b5e8aba8ec9b46a1e082276551a9b4dac8437f1843053c0ebc6cd349fa5169f5
@@ -15,7 +15,7 @@ module <%= @project_name %>
15
15
  #
16
16
  # set :cache, Padrino::Cache.new(:LRUHash) # Keeps cached values in memory
17
17
  # set :cache, Padrino::Cache.new(:Memcached) # Uses default server at localhost
18
- # set :cache, Padrino::Cache.new(:Memcached, '127.0.0.1:11211', :exception_retry_limit => 1)
18
+ # set :cache, Padrino::Cache.new(:Memcached, :server => '127.0.0.1:11211', :exception_retry_limit => 1)
19
19
  # set :cache, Padrino::Cache.new(:Memcached, :backend => memcached_or_dalli_instance)
20
20
  # set :cache, Padrino::Cache.new(:Redis) # Uses default server at localhost
21
21
  # set :cache, Padrino::Cache.new(:Redis, :host => '127.0.0.1', :port => 6379, :db => 0)
@@ -41,6 +41,21 @@ case Padrino.env
41
41
  end
42
42
  DM
43
43
 
44
+ IDENTITY_MAP_MIDDLEWARE = <<-MIDDLEWARE
45
+ class IdentityMap
46
+ def initialize(app, name = :default)
47
+ @app = app
48
+ @name = name.to_sym
49
+ end
50
+
51
+ def call(env)
52
+ ::DataMapper.repository(@name) do
53
+ @app.call(env)
54
+ end
55
+ end
56
+ end
57
+ MIDDLEWARE
58
+
44
59
  def setup_orm
45
60
  dm = DM
46
61
  db = @project_name.underscore
@@ -73,6 +88,7 @@ def setup_orm
73
88
 
74
89
  create_file("config/database.rb", dm)
75
90
  insert_hook("DataMapper.finalize", :after_load)
91
+ middleware :identity_map, IDENTITY_MAP_MIDDLEWARE
76
92
  end
77
93
 
78
94
  DM_MODEL = (<<-MODEL) unless defined?(DM_MODEL)
@@ -0,0 +1,110 @@
1
+ TESTUNIT_SETUP = (<<-TEST).gsub(/^ {10}/, '') unless defined?(TESTUNIT_SETUP)
2
+ RACK_ENV = 'test' unless defined?(RACK_ENV)
3
+ require File.expand_path(File.dirname(__FILE__) + "/../config/boot")
4
+ Dir[File.expand_path(File.dirname(__FILE__) + "/../app/helpers/**/*.rb")].each(&method(:require))
5
+
6
+ class Test::Unit::TestCase
7
+ include Rack::Test::Methods
8
+
9
+ # You can use this method to custom specify a Rack app
10
+ # you want rack-test to invoke:
11
+ #
12
+ # app CLASS_NAME
13
+ # app CLASS_NAME.tap { |a| }
14
+ # app(CLASS_NAME) do
15
+ # set :foo, :bar
16
+ # end
17
+ #
18
+ def app(app = nil, &blk)
19
+ @app ||= block_given? ? app.instance_eval(&blk) : app
20
+ @app ||= Padrino.application
21
+ end
22
+ end
23
+ TEST
24
+
25
+ TESTUNIT_RAKE = (<<-TEST).gsub(/^ {10}/, '') unless defined?(TESTUNIT_RAKE)
26
+ require 'rake/testtask'
27
+
28
+ test_tasks = Dir['test/*/'].map { |d| File.basename(d) }
29
+
30
+ test_tasks.each do |folder|
31
+ Rake::TestTask.new("test:\#{folder}") do |test|
32
+ test.pattern = "test/\#{folder}/**/*_test.rb"
33
+ test.verbose = true
34
+ end
35
+ end
36
+
37
+ desc "Run application test suite"
38
+ task 'test' => test_tasks.map { |f| "test:\#{f}" }
39
+ TEST
40
+
41
+ TESTUNIT_CONTROLLER_TEST = (<<-TEST).gsub(/^ {10}/, '') unless defined?(TESTUNIT_CONTROLLER_TEST)
42
+ require File.expand_path(File.dirname(__FILE__) + '/../../test_config.rb')
43
+
44
+ class !NAME!ControllerTest < Test::Unit::TestCase
45
+ def setup
46
+ get "/"
47
+ end
48
+
49
+ def test_returns_hello_world_text
50
+ assert_equal "Hello World", last_response.body
51
+ end
52
+ end
53
+ TEST
54
+
55
+ TESTUNIT_MODEL_TEST = (<<-TEST).gsub(/^ {10}/, '') unless defined?(TESTUNIT_MODEL_TEST)
56
+ require File.expand_path(File.dirname(__FILE__) + '!PATH!/test_config.rb')
57
+
58
+ class !NAME!Test < Test::Unit::TestCase
59
+ def test_constructs_a_new_instance
60
+ @!DNAME! = !NAME!.new
61
+ refute_nil @!DNAME!
62
+ end
63
+ end
64
+ TEST
65
+
66
+ TESTUNIT_HELPER_TEST = (<<-TEST) unless defined?(TESTUNIT_HELPER_TEST)
67
+ require File.expand_path(File.dirname(__FILE__) + '!PATH!/test_config.rb')
68
+
69
+ class !NAME!Test < Test::Unit::TestCase
70
+ def self.setup
71
+ @helpers = Class.new
72
+ @helpers.extend !CONSTANT_NAME!
73
+ end
74
+
75
+ def helpers
76
+ @helpers
77
+ end
78
+
79
+ def test_foo_helper
80
+ assert_equal nil, helpers.foo
81
+ end
82
+ end
83
+ TEST
84
+
85
+ def setup_test
86
+ require_dependencies 'rack-test', :require => 'rack/test', :group => 'test'
87
+ require_dependencies 'test-unit', :require => 'test/unit', :group => 'test'
88
+ insert_test_suite_setup TESTUNIT_SETUP
89
+ create_file destination_root("test/test.rake"), TESTUNIT_RAKE
90
+ end
91
+
92
+ def generate_controller_test(name, path)
93
+ test_unit_contents = TESTUNIT_CONTROLLER_TEST.gsub(/!NAME!/, name.to_s.underscore.camelize)
94
+ controller_test_path = File.join('test',options[:app],'controllers',"#{name.to_s.underscore}_controller_test.rb")
95
+ create_file destination_root(controller_test_path), test_unit_contents, :skip => true
96
+ end
97
+
98
+ def generate_model_test(name)
99
+ test_unit_contents = TESTUNIT_MODEL_TEST.gsub(/!NAME!/, name.to_s.underscore.camelize).gsub(/!DNAME!/, name.to_s.underscore)
100
+ test_unit_contents.gsub!(/!PATH!/, recognize_path)
101
+ model_test_path = File.join('test',options[:app],'models',"#{name.to_s.underscore}_test.rb")
102
+ create_file destination_root(model_test_path), test_unit_contents, :skip => true
103
+ end
104
+
105
+ def generate_helper_test(name, project_name, app_name)
106
+ test_unit_contents = TESTUNIT_HELPER_TEST.gsub(/!NAME!/, name).gsub(/!CONSTANT_NAME!/, "#{project_name}::#{app_name}::#{name}")
107
+ test_unit_contents.gsub!(/!PATH!/, recognize_path)
108
+ helper_spec_path = File.join('test', options[:app], 'helpers', "#{name.underscore}_test.rb")
109
+ create_file destination_root(helper_spec_path), test_unit_contents, :skip => true
110
+ end
@@ -86,6 +86,8 @@ if PadrinoTasks.load?(:datamapper, defined?(DataMapper))
86
86
  task :setup => [:create, :migrate, :seed]
87
87
  end
88
88
 
89
+ task 'db:migrate:down' => 'dm:migrate:down'
90
+ task 'db:migrate:up' => 'dm:migrate:up'
89
91
  task 'db:migrate' => 'dm:migrate'
90
92
  task 'db:create' => 'dm:create'
91
93
  task 'db:drop' => 'dm:drop'
@@ -200,6 +200,14 @@ describe "ControllerGenerator" do
200
200
  assert_match_in_file(/Capybara.app = /, "#{@apptmp}/sample_project/features/support/env.rb")
201
201
  end
202
202
 
203
+ it "should generate controller test for testunit" do
204
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=testunit') }
205
+ capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
206
+ capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
207
+ assert_match_in_file(/class DemoItemsControllerTest < Test::Unit::TestCase/m, "#{@apptmp}/sample_project/test/subby/controllers/demo_items_controller_test.rb")
208
+ end
209
+
210
+
203
211
  it 'should correctly generate file names' do
204
212
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=rspec') }
205
213
  capture_io { generate(:controller, 'DemoItems', "-r=#{@apptmp}/sample_project") }
@@ -95,6 +95,14 @@ describe "HelperGenerator" do
95
95
  assert_match_in_file(/describe "SampleProject::Subby::DemoItemsHelper" do/m, "#{@apptmp}/sample_project/spec/subby/helpers/demo_items_helper_spec.rb")
96
96
  end
97
97
 
98
+ it "should generate helper test for testunit" do
99
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=testunit', '--script=none') }
100
+ capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
101
+ capture_io { generate(:helper, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
102
+ assert_match_in_file(/class DemoItemsHelperTest < Test::Unit::TestCase/m, "#{@apptmp}/sample_project/test/subby/helpers/demo_items_helper_test.rb")
103
+ assert_match_in_file(/@helpers\.extend SampleProject::Subby::DemoItemsHelper/m, "#{@apptmp}/sample_project/test/subby/helpers/demo_items_helper_test.rb")
104
+ end
105
+
98
106
  it 'should correctly generate file names' do
99
107
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=rspec') }
100
108
  capture_io { generate(:helper, 'DemoItems', "-r=#{@apptmp}/sample_project") }
@@ -214,6 +214,12 @@ describe "ModelGenerator" do
214
214
 
215
215
  # DATAMAPPER
216
216
  describe "model generator using datamapper" do
217
+ it 'should add activerecord middleware' do
218
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=datamapper') }
219
+ assert_match_in_file(/ use IdentityMap/m, "#{@apptmp}/sample_project/app/app.rb")
220
+ assert_file_exists("#{@apptmp}/sample_project/lib/identity_map_middleware.rb")
221
+ end
222
+
217
223
  it 'should generate model file with camelized name' do
218
224
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=datamapper') }
219
225
  capture_io { generate(:model, 'ChunkyBacon', "-r=#{@apptmp}/sample_project") }
@@ -753,5 +753,20 @@ describe "ProjectGenerator" do
753
753
  assert_match_in_file(/class ControllerTest < Test::Unit::TestCase/, "#{@apptmp}/sample_project/test/app/controllers/controllers_test.rb")
754
754
  assert_match_in_file(/class SampleProject::App::HelperTest < Test::Unit::TestCase/, "#{@apptmp}/sample_project/test/app/helpers/helpers_test.rb")
755
755
  end
756
+
757
+ it "should properly generate for testunit" do
758
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=testunit', '--script=none', '--tiny') }
759
+ assert_match(/applying.*?testunit.*?test/, out)
760
+ assert_match_in_file(/gem 'rack-test'/, "#{@apptmp}/sample_project/Gemfile")
761
+ assert_match_in_file(/:require => 'rack\/test'/, "#{@apptmp}/sample_project/Gemfile")
762
+ assert_match_in_file(/:group => 'test'/, "#{@apptmp}/sample_project/Gemfile")
763
+ assert_match_in_file(/gem 'test-unit'/, "#{@apptmp}/sample_project/Gemfile")
764
+ assert_match_in_file(/RACK_ENV = 'test' unless defined\?\(RACK_ENV\)/, "#{@apptmp}/sample_project/test/test_config.rb")
765
+ assert_file_exists("#{@apptmp}/sample_project/test/test.rake")
766
+ assert_match_in_file(/task 'test' => test_tasks/,"#{@apptmp}/sample_project/test/test.rake")
767
+ assert_match_in_file(/Dir\[File\.expand_path\(File\.dirname\(__FILE__\) \+ "\/\.\.\/app\/helpers\.rb"\)\]\.each\(&method\(:require\)\)/, "#{@apptmp}/sample_project/test/test_config.rb")
768
+ assert_match_in_file(/class ControllerTest < Test::Unit::TestCase/, "#{@apptmp}/sample_project/test/app/controllers/controllers_test.rb")
769
+ assert_match_in_file(/class SampleProject::App::HelperTest < Test::Unit::TestCase/, "#{@apptmp}/sample_project/test/app/helpers/helpers_test.rb")
770
+ end
756
771
  end
757
772
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: padrino-gen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0.beta2
4
+ version: 0.13.0.beta3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Padrino Team
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-04-11 00:00:00.000000000 Z
14
+ date: 2015-08-02 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: padrino-core
@@ -19,14 +19,14 @@ dependencies:
19
19
  requirements:
20
20
  - - '='
21
21
  - !ruby/object:Gem::Version
22
- version: 0.13.0.beta2
22
+ version: 0.13.0.beta3
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - '='
28
28
  - !ruby/object:Gem::Version
29
- version: 0.13.0.beta2
29
+ version: 0.13.0.beta3
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: bundler
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -47,28 +47,28 @@ dependencies:
47
47
  requirements:
48
48
  - - '='
49
49
  - !ruby/object:Gem::Version
50
- version: 0.13.0.beta2
50
+ version: 0.13.0.beta3
51
51
  type: :development
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
55
  - - '='
56
56
  - !ruby/object:Gem::Version
57
- version: 0.13.0.beta2
57
+ version: 0.13.0.beta3
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: padrino-mailer
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
62
  - - '='
63
63
  - !ruby/object:Gem::Version
64
- version: 0.13.0.beta2
64
+ version: 0.13.0.beta3
65
65
  type: :development
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
69
  - - '='
70
70
  - !ruby/object:Gem::Version
71
- version: 0.13.0.beta2
71
+ version: 0.13.0.beta3
72
72
  description: Generators for easily creating and building padrino applications from
73
73
  the console
74
74
  email: padrinorb@gmail.com
@@ -129,6 +129,7 @@ files:
129
129
  - lib/padrino-gen/generators/components/tests/rspec.rb
130
130
  - lib/padrino-gen/generators/components/tests/shoulda.rb
131
131
  - lib/padrino-gen/generators/components/tests/steak.rb
132
+ - lib/padrino-gen/generators/components/tests/testunit.rb
132
133
  - lib/padrino-gen/generators/controller.rb
133
134
  - lib/padrino-gen/generators/helper.rb
134
135
  - lib/padrino-gen/generators/mailer.rb