namelessjon-dm-gen 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/lib/dm_gen.rb ADDED
@@ -0,0 +1,22 @@
1
+ begin
2
+ require 'minigems'
3
+ rescue LoadError
4
+ require 'rubygems'
5
+ end
6
+
7
+ gem('templater', '~> 0.5.0')
8
+ require 'templater'
9
+
10
+ # setup manifold
11
+ module DMGen
12
+ extend Templater::Manifold
13
+
14
+ desc <<-eos
15
+ Generates files for the DataMapper ORM.
16
+ eos
17
+ end
18
+
19
+ # require generators
20
+ dir = File.join(File.dirname(__FILE__), 'generators')
21
+
22
+ require File.join(dir, 'one_file')
@@ -0,0 +1,28 @@
1
+ module DMGen
2
+ class OneFileGenerator < Templater::Generator
3
+ first_argument :name, :required => true
4
+ second_argument :model
5
+ third_argument :attributes, :as => :hash, :default => {}
6
+
7
+ desc <<-eos
8
+ Generates a 'one file test' for DataMapper, including debug logging and sqlite3 memory DB
9
+ Use like 'dm-gen one_file filename [model] [model,attributes,here]'
10
+ eos
11
+
12
+ def self.source_root
13
+ File.join(File.dirname(__FILE__), '..', 'templates')
14
+ end
15
+
16
+ template :one_file do |t|
17
+ t.source = 'one_file.rb'
18
+ t.destination = "#{self.name}.rb"
19
+ end
20
+
21
+ def model_name
22
+ (model) ? model.camel_case : "TestModel"
23
+ end
24
+
25
+ end
26
+
27
+ add :one_file, OneFileGenerator
28
+ end
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # A one file test to show ...
4
+ require 'rubygems'
5
+
6
+ gem('dm-core', '~> 0.9.7')
7
+ require 'dm-core'
8
+
9
+
10
+ # setup the logger
11
+ DataMapper::Logger.new(STDOUT, :debug)
12
+
13
+ # connect to the DB
14
+ DataMapper.setup(:default, 'sqlite3::memory:')
15
+
16
+ class <%= model_name %>
17
+ include DataMapper::Resource
18
+
19
+ # properties
20
+ property :id, Serial
21
+ <% attributes.each do |name, type| -%>
22
+ property :<%= name.snake_case %>, <%= type.camel_case %>
23
+ <% end %>
24
+ end
25
+
26
+ DataMapper.auto_migrate!
@@ -0,0 +1,7 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe "DmGen" do
4
+ it "fails" do
5
+ should.flunk "hey buddy, you should probably rename this file and start specing for real"
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ require 'rubygems'
2
+ require 'bacon'
3
+
4
+ # get a summary of errors raised and such
5
+ Bacon.summary_on_exit
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: namelessjon-dm-gen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Stott
@@ -31,6 +31,13 @@ extra_rdoc_files: []
31
31
 
32
32
  files:
33
33
  - bin/dm-gen
34
+ - lib/templates
35
+ - lib/templates/one_file.rb
36
+ - lib/generators
37
+ - lib/generators/one_file.rb
38
+ - lib/dm_gen.rb
39
+ - spec/spec_helper.rb
40
+ - spec/dm_gen_spec.rb
34
41
  has_rdoc: false
35
42
  homepage: http://github.com/namelessjon/dm-gen
36
43
  post_install_message: