jenson 0.0.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d95eaa21977a5b51073ed963cb9c9ae7e8d3e85c
4
+ data.tar.gz: 9d982ecb29d6ed0b0ecb4d528bdf839ae294cb3a
5
+ SHA512:
6
+ metadata.gz: 43ff97b221c02835ba56bbf25aed5835837760dcb4c9ca431130b39a916814be0384b51b5bd34bebc308559671e2e37b09bb191526185d7513449f74e378aafb
7
+ data.tar.gz: ff8f162f54d6bf2e6c5770a1469076c9db9c9ce1b58ae9e234842d996c45b16dde511b4855d670ac99f4710afc24bdf49f506fc4bc79c38ad385c263dc010f6b
data/bin/jenson ADDED
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env ruby
2
+ require 'jenson'
3
+ require 'optparse'
4
+ options = {}
5
+
6
+ opt_parser = OptionParser.new do |opt|
7
+ opt.banner = "Usage: jenson model User first_name:string -l ruby"
8
+ opt.separator ""
9
+ opt.separator "Commands"
10
+ opt.separator " name: the name the sherpa should use when addressing you"
11
+ opt.separator ""
12
+ opt.separator "Options"
13
+
14
+ opt.on("-h","--help","help") do
15
+ puts opt_parser
16
+ end
17
+ end
18
+
19
+ opt_parser.parse!
20
+
21
+ # Parse args
22
+ generator = ARGV.shift.downcase
23
+ class_name = ARGV.shift.capitalize
24
+ fields = []
25
+ ARGV.each {|arg| fields << arg }
26
+
27
+ case generator
28
+ when 'model'
29
+ puts "Generating #{generator} : #{class_name}"
30
+ Jenson.new(generator, class_name, fields)
31
+
32
+ when 'controller'
33
+ puts "Generating #{generator} : #{class_name}"
34
+ else
35
+ puts opt_parser
36
+ end
@@ -0,0 +1,40 @@
1
+ require 'erb'
2
+
3
+ class GeneratorFactory
4
+ def self.create_generator(generator)
5
+ if generator == 'model'
6
+ return ModelGenerator.new()
7
+ end
8
+ end
9
+ end
10
+
11
+ class Command
12
+ def execute(model)
13
+ end
14
+ def undo(model)
15
+ end
16
+ end
17
+
18
+ class ModelGenerator < Command
19
+ def initialize(gen_dir = 'gen/')
20
+ @gen_dir = gen_dir
21
+ f = File.expand_path(File.join(File.dirname(__FILE__), '../templates/model.rb.erb'))
22
+ @template = File.read(f)
23
+ end
24
+
25
+ def execute(model)
26
+ @model = model
27
+ model_file = File.new(self.output_path, 'w+')
28
+ model_file.write(ERB.new(@model_template).result)
29
+ end
30
+
31
+ def undo(model)
32
+
33
+ end
34
+
35
+ private
36
+
37
+ def output_path
38
+ gen_dir + @model.name + '.rb'
39
+ end
40
+ end
@@ -0,0 +1,20 @@
1
+ class ModelFactory
2
+ def self.create_model(generator, name, fields)
3
+ if generator == 'model'
4
+ return Model.new(name, fields)
5
+ end
6
+ end
7
+ end
8
+
9
+ class Model
10
+
11
+ attr_accessor :name
12
+ attr_accessor :fields
13
+
14
+ def initialize(name, fields)
15
+ if name.empty? || fields.empty?
16
+ return
17
+ end
18
+
19
+ end
20
+ end
data/lib/jenson.rb ADDED
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'jenson/generator.rb'
4
+ require 'jenson/model.rb'
5
+
6
+ class Jenson
7
+
8
+ attr_accessor :model
9
+ attr_accessor :generator
10
+
11
+ def initialize(generator, class_name, fields)
12
+ fields = fields.map { |f| {name: f.split(':')[0], type: f.split(':')[-1]} }
13
+ @model = ModelFactory.create_model(generator, class_name, fields)
14
+ @generator = GeneratorFactory.create_generator(generator)
15
+ end
16
+
17
+ def generate()
18
+ puts "Model -> #{@model.class}"
19
+ puts "Factory built -> #{@generator.class}"
20
+ end
21
+
22
+ end
@@ -0,0 +1,5 @@
1
+ class <%= model.name %>
2
+
3
+ def
4
+
5
+ end
metadata ADDED
@@ -0,0 +1,49 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jenson
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Jeff Potter
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2010-09-01 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: ''
14
+ email: jeff.potter6@gmail.com
15
+ executables:
16
+ - jenson
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - bin/jenson
21
+ - lib/jenson.rb
22
+ - lib/jenson/generator.rb
23
+ - lib/jenson/model.rb
24
+ - lib/templates/model.rb.erb
25
+ homepage: http://rubygems.org/gems/jenson
26
+ licenses:
27
+ - MIT
28
+ metadata: {}
29
+ post_install_message:
30
+ rdoc_options: []
31
+ require_paths:
32
+ - lib
33
+ required_ruby_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ required_rubygems_version: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ requirements: []
44
+ rubyforge_project:
45
+ rubygems_version: 2.4.5
46
+ signing_key:
47
+ specification_version: 4
48
+ summary: Code generator similar to rails
49
+ test_files: []