namelessjon-dm-gen 0.0.2 → 0.0.3
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/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:
|