merb-gen 0.9.4 → 0.9.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
@@ -17,7 +17,7 @@ GEM_EMAIL = "jonas.nicklas@gmail.com"
17
17
 
18
18
  GEM_NAME = "merb-gen"
19
19
  PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
20
- GEM_VERSION = (Merb::MORE_VERSION rescue "0.9.4") + PKG_BUILD
20
+ GEM_VERSION = (Merb::MORE_VERSION rescue "0.9.5") + PKG_BUILD
21
21
 
22
22
  RELEASE_NAME = "REL #{GEM_VERSION}"
23
23
 
@@ -38,8 +38,8 @@ spec = Gem::Specification.new do |s|
38
38
  s.bindir = "bin"
39
39
  s.executables = %w( merb-gen )
40
40
 
41
- s.add_dependency "merb-core", ">= 0.9.4"
42
- s.add_dependency "templater", ">= 0.1.4"
41
+ s.add_dependency "merb-core", ">= 0.9.5"
42
+ s.add_dependency "templater", ">= 0.1.5"
43
43
 
44
44
  s.require_path = 'lib'
45
45
  s.autorequire = GEM_NAME
@@ -10,8 +10,8 @@ module Merb::Generators
10
10
  Generates a new controller.
11
11
  DESC
12
12
 
13
- option :testing_framework, :desc => 'Testing framework to use (one of: spec, test_unit)'
14
- option :template_engine, :default => :erb, :desc => 'Template engine to use (one of: erb, haml, markaby, etc...)'
13
+ option :testing_framework, :desc => 'Testing framework to use (one of: rspec, test_unit)'
14
+ option :template_engine, :desc => 'Template engine to use (one of: erb, haml, markaby, etc...)'
15
15
 
16
16
  first_argument :name, :required => true, :desc => "controller name"
17
17
 
@@ -10,7 +10,7 @@ module Merb::Generators
10
10
  Generates a new helper.
11
11
  DESC
12
12
 
13
- option :testing_framework, :desc => 'Testing framework to use (one of: spec, test_unit)'
13
+ option :testing_framework, :desc => 'Testing framework to use (one of: rspec, test_unit)'
14
14
 
15
15
  first_argument :name, :required => true, :desc => "helper name"
16
16
 
@@ -11,7 +11,7 @@ module Merb::Generators
11
11
  DESC
12
12
 
13
13
  #option :testing_framework, :desc => 'Testing framework to use (one of: rspec, test_unit)'
14
- option :template_engine, :default => :erb, :desc => 'Specify what template engine should be used (one of: erb, haml...)'
14
+ option :template_engine, :desc => 'Specify what template engine should be used (one of: erb, haml...)'
15
15
 
16
16
  first_argument :name, :required => true, :desc => "layout name"
17
17
 
@@ -7,9 +7,11 @@ module Merb::Generators
7
7
  end
8
8
 
9
9
  option :testing_framework, :default => :rspec,
10
- :desc => 'Testing framework to use (one of: spec, test_unit).'
10
+ :desc => 'Testing framework to use (one of: rspec, test_unit).'
11
11
  option :orm, :default => :none,
12
12
  :desc => 'Object-Relation Mapper to use (one of: none, activerecord, datamapper, sequel).'
13
+ option :template_engine, :default => :erb,
14
+ :desc => 'Template engine to prefer for this application (one of: erb, haml).'
13
15
 
14
16
  desc <<-DESC
15
17
  This generates a Merb application with Ruby on Rails like structure.
@@ -17,6 +17,8 @@ module Merb::Generators
17
17
  source('application.rbt')
18
18
  destination("#{base_name}.rb")
19
19
  end
20
+
21
+ file :spec_helper, 'spec/spec_helper.rb', 'spec/spec_helper.rb'
20
22
 
21
23
  def class_name
22
24
  self.name.camel_case
@@ -26,4 +28,4 @@ module Merb::Generators
26
28
 
27
29
  add_private :app_very_flat, MerbVeryFlatGenerator
28
30
 
29
- end
31
+ end
@@ -2,7 +2,7 @@ module Merb::Generators
2
2
 
3
3
  class MerbGenerator < Generator
4
4
 
5
- option :testing_framework, :default => :rspec, :desc => 'Testing framework to use (one of: spec, test_unit)'
5
+ option :testing_framework, :default => :rspec, :desc => 'Testing framework to use (one of: rspec, test_unit)'
6
6
  option :orm, :default => :none, :desc => 'Object-Relation Mapper to use (one of: none, activerecord, datamapper, sequel)'
7
7
  option :flat, :as => :boolean, :desc => "Generate a flat application: one file + configs + templates directory."
8
8
  option :very_flat, :as => :boolean, :desc => "Generate a very flat, Sinatra-like one file application."
@@ -6,7 +6,7 @@ module Merb::Generators
6
6
  File.join(super, 'application', 'merb_plugin')
7
7
  end
8
8
 
9
- option :testing_framework, :default => :rspec, :desc => 'Testing framework to use (one of: spec, test_unit)'
9
+ option :testing_framework, :default => :rspec, :desc => 'Testing framework to use (one of: rspec, test_unit)'
10
10
  option :orm, :default => :none, :desc => 'Object-Relation Mapper to use (one of: none, activerecord, datamapper, sequel)'
11
11
  option :bin, :as => :boolean # TODO: explain this
12
12
 
@@ -11,7 +11,7 @@ module Merb::Generators
11
11
  of the application uses.
12
12
  DESC
13
13
 
14
- option :testing_framework, :desc => 'Testing framework to use (one of: spec, test_unit)'
14
+ option :testing_framework, :desc => 'Testing framework to use (one of: rspec, test_unit)'
15
15
  option :orm, :desc => 'Object-Relation Mapper to use (one of: none, activerecord, datamapper, sequel)'
16
16
 
17
17
  first_argument :name, :required => true, :desc => "model name"
@@ -6,7 +6,7 @@ module Merb::Generators
6
6
  Generates a new resource.
7
7
  DESC
8
8
 
9
- first_argument :name, :required => true, :desc => "resource name"
9
+ first_argument :name, :required => true, :desc => "resource name (singular)"
10
10
  second_argument :attributes, :as => :hash, :default => {}, :desc => "space separated resource model properties in form of name:type. Example: state:string"
11
11
 
12
12
  invoke :model do |generator|
@@ -22,7 +22,7 @@ module Merb::Generators
22
22
  end
23
23
 
24
24
  def model_name
25
- name.singularize
25
+ name
26
26
  end
27
27
 
28
28
  end
@@ -10,9 +10,9 @@ module Merb::Generators
10
10
  Generates a new resource controller.
11
11
  DESC
12
12
 
13
- option :testing_framework, :desc => 'Testing framework to use (one of: spec, test_unit)'
13
+ option :testing_framework, :desc => 'Testing framework to use (one of: rspec, test_unit)'
14
14
  option :orm, :desc => 'Object-Relation Mapper to use (one of: none, activerecord, datamapper, sequel)'
15
- option :template_engine, :default => :erb, :desc => 'Template Engine to use (one of: erb, haml, markaby, etc...)'
15
+ option :template_engine, :desc => 'Template Engine to use (one of: erb, haml, markaby, etc...)'
16
16
 
17
17
  first_argument :name, :required => true,
18
18
  :desc => "model name"
@@ -61,6 +61,10 @@ module Merb::Generators
61
61
  plural_model.singularize
62
62
  end
63
63
 
64
+ def resource_path
65
+ chunks.map{ |c| c.snake_case }.join('/')
66
+ end
67
+
64
68
  # TODO: fix this for Datamapper, so that it returns the primary keys for the model
65
69
  def params_for_get
66
70
  "params[:id]"
@@ -14,8 +14,7 @@ class Autotest::MerbRspec < Autotest
14
14
  super
15
15
 
16
16
  # Ignore any happenings in these directories
17
- add_exception %r%^\./(?:doc|log|public|tmp)%
18
-
17
+ add_exception %r%^\./(?:doc|log|public|tmp|\.git|\.hg|\.svn|framework|gems|schema|\.DS_Store|autotest|bin|.*\.sqlite3)%
19
18
  # Ignore SCM directories and custom Autotest mappings
20
19
  %w[.svn .hg .git .autotest].each { |exception| add_exception(exception) }
21
20
 
@@ -4,4 +4,5 @@ Merb::Config.use { |c|
4
4
  c[:reload_classes] = true
5
5
  c[:reload_time] = 0.5
6
6
  c[:log_auto_flush ] = true
7
- }
7
+ c[:log_level] = :debug
8
+ }
@@ -92,6 +92,17 @@ end
92
92
  <%= "# " unless testing_framework == :test_unit %>use_test :test_unit
93
93
  <%= "# " unless testing_framework == :rspec %>use_test :rspec
94
94
 
95
+
96
+ #
97
+ # ==== Choose which template engine to use by default
98
+ #
99
+
100
+ # Merb can generate views for different template engines, choose your favourite as the default.
101
+
102
+ <%= "# " unless template_engine == :erb %>use_template_engine :erb
103
+ <%= "# " unless template_engine == :haml %>use_template_engine :haml
104
+
105
+
95
106
  #
96
107
  # ==== Set up your basic configuration
97
108
  #
@@ -0,0 +1,17 @@
1
+ require "rubygems"
2
+ require "spec"
3
+ require "merb-core"
4
+
5
+ Merb::Config.use do |c|
6
+ c[:session_store] = "memory"
7
+ end
8
+
9
+ Merb.start_environment(:testing => true,
10
+ :adapter => 'runner',
11
+ :environment => ENV['MERB_ENV'] || 'test')
12
+
13
+ Spec::Runner.configure do |config|
14
+ config.include(Merb::Test::ViewHelper)
15
+ config.include(Merb::Test::RouteHelper)
16
+ config.include(Merb::Test::ControllerHelper)
17
+ end
@@ -0,0 +1,17 @@
1
+ require "rubygems"
2
+ require "spec"
3
+ require "merb-core"
4
+
5
+ Merb::Config.use do |c|
6
+ c[:session_store] = "memory"
7
+ end
8
+
9
+ Merb.start_environment(:testing => true,
10
+ :adapter => 'runner',
11
+ :environment => ENV['MERB_ENV'] || 'test')
12
+
13
+ Spec::Runner.configure do |config|
14
+ config.include(Merb::Test::ViewHelper)
15
+ config.include(Merb::Test::RouteHelper)
16
+ config.include(Merb::Test::ControllerHelper)
17
+ end
@@ -1,42 +1,42 @@
1
1
  <% with_modules(modules) do -%>
2
2
  class <%= class_name %> < Application
3
3
 
4
- # GET /<%= symbol_name %>
4
+ # GET /<%= resource_path %>
5
5
  def index
6
6
  render
7
7
  end
8
8
 
9
- # GET /<%= symbol_name %>/:id
9
+ # GET /<%= resource_path %>/:id
10
10
  def show
11
11
  render
12
12
  end
13
13
 
14
- # GET /<%= symbol_name %>/new
14
+ # GET /<%= resource_path %>/new
15
15
  def new
16
16
  render
17
17
  end
18
18
 
19
- # GET /<%= symbol_name %>/:id/edit
19
+ # GET /<%= resource_path %>/:id/edit
20
20
  def edit
21
21
  render
22
22
  end
23
23
 
24
- # GET /<%= symbol_name %>/:id/delete
24
+ # GET /<%= resource_path %>/:id/delete
25
25
  def delete
26
26
  render
27
27
  end
28
28
 
29
- # POST /<%= symbol_name %>
29
+ # POST /<%= resource_path %>
30
30
  def create
31
31
  render
32
32
  end
33
33
 
34
- # PUT /<%= symbol_name %>/:id
34
+ # PUT /<%= resource_path %>/:id
35
35
  def update
36
36
  render
37
37
  end
38
38
 
39
- # DELETE /<%= symbol_name %>/:id
39
+ # DELETE /<%= resource_path %>/:id
40
40
  def destroy
41
41
  render
42
42
  end
@@ -12,10 +12,9 @@ module Merb
12
12
 
13
13
  def initialize(*args)
14
14
  super
15
- options[:orm] ||= Merb.orm_generator_scope
16
- options[:testing_framework] ||= Merb.test_framework_generator_scope
17
-
18
- options[:orm] = :none if options[:orm] == :merb_default # FIXME: temporary until this is fixed in merb-core
15
+ options[:orm] ||= Merb.orm
16
+ options[:testing_framework] ||= Merb.test_framework
17
+ options[:template_engine] ||= Merb.template_engine
19
18
  end
20
19
 
21
20
  # Inside a template, wraps a block of code properly in modules, keeping the indentation correct
data/lib/merb-gen.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'rubygems'
2
2
  require 'merb-core'
3
3
  require 'sha1'
4
- gem 'templater', '>= 0.1.4'
4
+ gem 'templater', '>= 0.1.5'
5
5
  require 'templater'
6
6
 
7
7
  path = File.join(File.dirname(__FILE__))
@@ -9,7 +9,6 @@ path = File.join(File.dirname(__FILE__))
9
9
  require path / "merb-gen" / "generator"
10
10
  require path / "merb-gen" / "named_generator"
11
11
  require path / "merb-gen" / "namespaced_generator"
12
- require path / "merb-gen" / "spec_helper"
13
12
  require path / "generators" / "merb"
14
13
  require path / "generators" / "merb" / "merb_full"
15
14
  require path / "generators" / "merb" / "merb_flat"
@@ -29,6 +29,13 @@ describe Merb::Generators::ResourceControllerGenerator do
29
29
  end
30
30
  end
31
31
 
32
+ describe "#resource_path" do
33
+ it "should snake case and slash separate the full controller name" do
34
+ @generator.name = "Monkey::BlahWorld::ProjectPictures"
35
+ @generator.singular_model == "monkey/blah_world/project_picture"
36
+ end
37
+ end
38
+
32
39
  it "should create a controller" do
33
40
  @generator.should create('/tmp/app/controllers/stuff.rb')
34
41
  end
data/spec/spec_helper.rb CHANGED
@@ -5,9 +5,10 @@ require 'rubygems'
5
5
  require 'spec'
6
6
  require 'merb-core'
7
7
  require 'merb-gen'
8
+ require 'templater/spec/helpers'
8
9
 
9
10
  Spec::Runner.configure do |config|
10
- config.include Merb::Test::GeneratorHelper
11
+ config.include Templater::Spec::Helpers
11
12
  end
12
13
 
13
14
  shared_examples_for "named generator" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: merb-gen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.4
4
+ version: 0.9.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonas Nicklas
@@ -9,7 +9,7 @@ autorequire: merb-gen
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-08-13 00:00:00 +03:00
12
+ date: 2008-08-26 00:00:00 +03:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -20,7 +20,7 @@ dependencies:
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 0.9.4
23
+ version: 0.9.5
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: templater
@@ -30,7 +30,7 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.1.4
33
+ version: 0.1.5
34
34
  version:
35
35
  description: Generators suite for Merb.
36
36
  email: jonas.nicklas@gmail.com
@@ -109,6 +109,8 @@ files:
109
109
  - lib/generators/templates/application/merb_flat/config/framework.rb
110
110
  - lib/generators/templates/application/merb_flat/config/init.rb
111
111
  - lib/generators/templates/application/merb_flat/README.txt
112
+ - lib/generators/templates/application/merb_flat/spec
113
+ - lib/generators/templates/application/merb_flat/spec/spec_helper.rb
112
114
  - lib/generators/templates/application/merb_flat/views
113
115
  - lib/generators/templates/application/merb_flat/views/foo.html.erb
114
116
  - lib/generators/templates/application/merb_plugin
@@ -128,6 +130,8 @@ files:
128
130
  - lib/generators/templates/application/merb_plugin/TODO
129
131
  - lib/generators/templates/application/merb_very_flat
130
132
  - lib/generators/templates/application/merb_very_flat/application.rbt
133
+ - lib/generators/templates/application/merb_very_flat/spec
134
+ - lib/generators/templates/application/merb_very_flat/spec/spec_helper.rb
131
135
  - lib/generators/templates/component
132
136
  - lib/generators/templates/component/controller
133
137
  - lib/generators/templates/component/controller/app
@@ -253,7 +257,6 @@ files:
253
257
  - lib/merb-gen/generator.rb
254
258
  - lib/merb-gen/named_generator.rb
255
259
  - lib/merb-gen/namespaced_generator.rb
256
- - lib/merb-gen/spec_helper.rb
257
260
  - lib/merb-gen.rb
258
261
  - bin/merb-gen
259
262
  - spec/controller_spec.rb
@@ -1,65 +0,0 @@
1
- module Merb
2
- module Test
3
- module GeneratorHelper
4
- class InvokeMatcher
5
- def initialize(expected)
6
- @expected = expected
7
- end
8
-
9
- def matches?(actual)
10
- @actual = actual
11
- # Satisfy expectation here. Return false or raise an error if it's not met.
12
- found = nil
13
- @actual.invocations.each { |i| found = i if i.class == @expected }
14
-
15
- if @with
16
- return found && (@with == found.arguments)
17
- else
18
- return found
19
- end
20
- end
21
-
22
- def with(*arguments)
23
- @with = arguments
24
- return self
25
- end
26
-
27
- def failure_message
28
- "expected #{@actual.inspect} to invoke #{@expected.inspect} with #{@with}, but it didn't"
29
- end
30
-
31
- def negative_failure_message
32
- "expected #{@actual.inspect} not to invoke #{@expected.inspect} with #{@with}, but it did"
33
- end
34
- end
35
-
36
- def invoke(expected)
37
- InvokeMatcher.new(expected)
38
- end
39
-
40
- class CreateMatcher
41
- def initialize(expected)
42
- @expected = expected
43
- end
44
-
45
- def matches?(actual)
46
- @actual = actual
47
- # Satisfy expectation here. Return false or raise an error if it's not met.
48
- @actual.actions.map{|t| t.destination }.include?(@expected)
49
- end
50
-
51
- def failure_message
52
- "expected #{@actual.inspect} to create #{@expected.inspect}, but it didn't"
53
- end
54
-
55
- def negative_failure_message
56
- "expected #{@actual.inspect} not to create #{@expected.inspect}, but it did"
57
- end
58
- end
59
-
60
- def create(expected)
61
- CreateMatcher.new(expected)
62
- end
63
- end
64
- end
65
- end