grn 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,7 +9,6 @@ Gem::Specification.new do |gem|
9
9
  gem.summary = "Implementa classes de apoio para a linguagem de padrões GRN e cria geradores para cada padrão."
10
10
  gem.homepage = "https://github.com/marcelotheodoro/grn"
11
11
 
12
- gem.add_dependency 'rails'
13
12
  gem.add_dependency 'mdd'
14
13
 
15
14
  gem.files = `git ls-files`.split($\)
@@ -0,0 +1,16 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'rails/generators'
3
+
4
+ module Grn
5
+ module Generators
6
+ class InstallGenerator < Rails::Generators::Base
7
+
8
+ source_root File.expand_path("../templates", __FILE__)
9
+
10
+ def inflections
11
+ template 'inflections.rb', 'config/initializers/grn_inflections.rb'
12
+ end
13
+
14
+ end # class
15
+ end # generators
16
+ end # grn
@@ -0,0 +1,5 @@
1
+ # -*- encoding : utf-8 -*-
2
+ ActiveSupport::Inflector.inflections do |inflect|
3
+ inflect.irregular 'tipo_recurso', 'tipos_recurso'
4
+ inflect.irregular 'TipoRecurso', 'TiposRecurso'
5
+ end
File without changes
@@ -0,0 +1,35 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'rails/generators'
3
+
4
+ require 'mdwa/dsl'
5
+
6
+ module Grn
7
+ module Generators
8
+ class P1Generator < Rails::Generators::Base
9
+
10
+ source_root File.expand_path("../templates", __FILE__)
11
+
12
+ attr_accessor :recurso_nome, :tipo_recurso_nome
13
+
14
+ class_option :nomes_padroes, :type => :boolean, :default => false, :desc => 'Usar nomes padrões. "Recurso" para recurso e "TipoRecurso" para tipo de recurso.'
15
+
16
+ def initialize(*args, &block)
17
+ super
18
+
19
+ unless options.nomes_padroes
20
+ @recurso_nome = ask('Nome do recurso:')
21
+ @tipo_recurso_nome = ask('Nome do tipo do recurso:')
22
+ end
23
+ @recurso_nome = 'Recurso' if @recurso_nome.blank?
24
+ @tipo_recurso_nome = 'TipoRecurso' if @tipo_recurso_nome.blank?
25
+
26
+ end
27
+
28
+ def gerar_arquivos
29
+ template 'recurso.rb', "#{MDWA::DSL::STRUCTURAL_PATH}#{MDWA::DSL::Entity.new(@recurso_nome).file_name}.rb"
30
+ template 'tipo_recurso.rb', "#{MDWA::DSL::STRUCTURAL_PATH}#{MDWA::DSL::Entity.new(@tipo_recurso_nome).file_name}.rb"
31
+ end
32
+
33
+ end # class
34
+ end # generators
35
+ end # grn
@@ -0,0 +1,43 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'mdwa/dsl'
3
+ MDWA::DSL.entities.register "<%= @recurso_nome %>" do |e|
4
+
5
+ e.resource = true # should it be stored like a resource?
6
+ e.ajax = true # scaffold with ajax?
7
+ e.scaffold_name = 'a/<%= @recurso_nome.underscore %>' # mdwa sandbox specific code?
8
+ e.model_name = 'a/<%= @recurso_nome.underscore %>' # use specific model name? or different namespace?
9
+
10
+ ##
11
+ ## Define entity attributes
12
+ ##
13
+ e.attribute do |attr|
14
+ attr.name = 'descricao'
15
+ attr.type = 'string'
16
+ end
17
+
18
+ e.attribute do |attr|
19
+ attr.name = 'preco'
20
+ attr.type = 'decimal'
21
+ end
22
+
23
+ ##
24
+ ## Define entity associations
25
+ ##
26
+ e.association do |a|
27
+ a.type = 'many_to_one'
28
+ a.destination = '<%= @tipo_recurso_nome %>'
29
+ end
30
+
31
+ ##
32
+ ## Entity specifications.
33
+ ## Define restrictions and rules so this entity will work properly.
34
+ ##
35
+ e.specify "campos devem ser validos" do |s|
36
+ s.such_as "nome não pode ser nulo"
37
+ s.such_as "preço não pode ser nulo"
38
+ s.such_as "categoria não pode ser nula"
39
+ end
40
+ e.specify "valor deve ser maior que zero"
41
+
42
+
43
+ end
@@ -0,0 +1,32 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'mdwa/dsl'
3
+ MDWA::DSL.entities.register "<%= @tipo_recurso_nome %>" do |e|
4
+
5
+ e.resource = true # should it be stored like a resource?
6
+ e.ajax = true # scaffold with ajax?
7
+ e.scaffold_name = 'a/<%= @tipo_recurso_nome.underscore %>' # mdwa sandbox specific code?
8
+ e.model_name = 'a/<%= @tipo_recurso_nome.underscore %>' # use specific model name? or different namespace?
9
+
10
+ ##
11
+ ## Define entity attributes
12
+ ##
13
+ e.attribute do |attr|
14
+ attr.name = 'name'
15
+ attr.type = 'string'
16
+ end
17
+
18
+ ##
19
+ ## Define entity associations
20
+ ##
21
+ e.association do |a|
22
+ a.type = 'one_to_many'
23
+ a.destination = '<%= @recurso_nome %>' # entity name
24
+ end
25
+
26
+ ##
27
+ ## Entity specifications.
28
+ ## Define restrictions and rules so this entity will work properly.
29
+ ##
30
+ e.specify "nome não pode ser nulo"
31
+
32
+ end
data/lib/grn.rb CHANGED
@@ -2,7 +2,4 @@ require "grn/version"
2
2
 
3
3
  module Grn
4
4
 
5
- autoload :Resource, 'grn/resource'
6
- autoload :ResourceType, 'grn/resource_type'
7
-
8
- end
5
+ end
@@ -1,3 +1,3 @@
1
1
  module Grn
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,24 +9,8 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-03 00:00:00.000000000 Z
12
+ date: 2012-07-25 00:00:00.000000000 Z
13
13
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: rails
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
14
  - !ruby/object:Gem::Dependency
31
15
  name: mdd
32
16
  requirement: !ruby/object:Gem::Requirement
@@ -56,11 +40,13 @@ files:
56
40
  - README.md
57
41
  - Rakefile
58
42
  - grn.gemspec
59
- - lib/generators/grn/USAGE
60
- - lib/generators/grn/p1_generator.rb
43
+ - lib/generators/grn/install/install_generator.rb
44
+ - lib/generators/grn/install/templates/inflections.rb
45
+ - lib/generators/grn/p1/USAGE
46
+ - lib/generators/grn/p1/p1_generator.rb
47
+ - lib/generators/grn/p1/templates/recurso.rb
48
+ - lib/generators/grn/p1/templates/tipo_recurso.rb
61
49
  - lib/grn.rb
62
- - lib/grn/resource.rb
63
- - lib/grn/resource_type.rb
64
50
  - lib/grn/version.rb
65
51
  homepage: https://github.com/marcelotheodoro/grn
66
52
  licenses: []
@@ -1,78 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
-
3
- require 'rails/generators'
4
-
5
- require 'mdd/generators/model'
6
- require 'mdd/generators/model_attribute'
7
-
8
- module Grn
9
- module Generators
10
- class P1Generator < Rails::Generators::Base
11
-
12
- attr_accessor :resource_type_name, :resource_type_attributes, :resource_name, :resource_attributes, :resource, :resource_type
13
-
14
- class_option :type_name, :desc => 'Resource type name', :type => :string
15
- class_option :type_attributes, :desc => 'Resource type attributes', :type => :string
16
-
17
- class_option :resource_name, :desc => 'Resource name', :type => :string
18
- class_option :resource_attributes, :desc => 'Resource attributes', :type => :string
19
-
20
- def initialize(*args, &block)
21
-
22
- super
23
-
24
- # resource type
25
- @resource_type_name = options.type_name || ask("\nChoose the resource type name.\nExample: Category, ProductCategory, etc.\nResource type name:")
26
- @resource_type = Mdd::Generators::Model.new( @resource_type_name )
27
- print_usage unless @resource_type.valid?
28
-
29
- #resource type attributes
30
- @resource_type_attributes = options.type_attributes || ask("\n=============================\nChoose the resource type attributes.\nSyntax: similar to MDD gem. Description is already included.\nResource type attributes:")
31
- @resource_type_attributes.split(' ').each do |attribute|
32
- @resource_type.add_attribute Mdd::Generators::ModelAttribute.new( attribute )
33
- end
34
-
35
- # resource
36
- @resource_name = options.resource_name || ask("\n=============================\nChoose the resource name.\nExample: Product, Movie, Equipment, etc.\nResource name:")
37
- @resource = Mdd::Generators::Model.new( @resource_name )
38
- print_usage unless @resource.valid?
39
-
40
- # resource attributes
41
- @resource_attributes = options.resource_attributes || ask("\n=============================\nChoose the resource attributes.\nSyntax: similar to MDD gem. Description is already included.\nResource attributes:")
42
- @resource_attributes.split(' ').each do |attribute|
43
- @resource.add_attribute Mdd::Generators::ModelAttribute.new( attribute )
44
- end
45
-
46
- end
47
-
48
-
49
- def mdd_associations
50
-
51
- # resouce type
52
- # generate the scaffold with the attributes
53
- generate "mdd:scaffold #{@resource_type.raw} description:string #{@resource_type.attributes.map{ |attr| attr.raw }.join(' ')}"
54
-
55
- # resouce
56
- # generate the scaffold with the attributes and belongs_to resource type
57
- generate "mdd:scaffold #{@resource.raw} description:string #{@resource.attributes.map{ |attr| attr.raw }.join(' ')} #{@resource_type.singular_name}:#{@resource_type.raw}:description:belongs_to"
58
-
59
- end
60
-
61
-
62
- def insert_into_classes
63
-
64
- # resource type
65
- inject_into_class "app/models/#{@resource_type.space}/#{@resource_type.singular_name}.rb", @resource_type.klass.classify.constantize do
66
- "include Grn::ResourceType"
67
- end
68
-
69
- # resource
70
- inject_into_class "app/models/#{@resource.space}/#{@resource.singular_name}.rb", @resource.klass.classify.constantize do
71
- "include Grn::Resource"
72
- end
73
-
74
- end
75
-
76
- end # class
77
- end # generators
78
- end # grn
@@ -1,12 +0,0 @@
1
- module Grn
2
-
3
- module Resource
4
-
5
- # override
6
- # identify the resource type according to GRN first pattern
7
- def resource_type
8
- end
9
-
10
- end
11
-
12
- end
@@ -1,12 +0,0 @@
1
- module Grn
2
-
3
- module ResourceType
4
-
5
- # override
6
- # identify the resource according to GRN first pattern
7
- def resource
8
- end
9
-
10
- end
11
-
12
- end