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 +22 -0
- data/lib/generators/one_file.rb +28 -0
- data/lib/templates/one_file.rb +26 -0
- data/spec/dm_gen_spec.rb +7 -0
- data/spec/spec_helper.rb +5 -0
- metadata +8 -1
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!
|
data/spec/dm_gen_spec.rb
ADDED
data/spec/spec_helper.rb
ADDED
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.
|
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:
|