mdd 0.0.1

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/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/.project ADDED
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projectDescription>
3
+ <name>Gem MDD</name>
4
+ <comment></comment>
5
+ <projects>
6
+ </projects>
7
+ <buildSpec>
8
+ <buildCommand>
9
+ <name>com.aptana.ide.core.unifiedBuilder</name>
10
+ <arguments>
11
+ </arguments>
12
+ </buildCommand>
13
+ </buildSpec>
14
+ <natures>
15
+ <nature>com.aptana.ruby.core.rubynature</nature>
16
+ <nature>com.aptana.projects.webnature</nature>
17
+ </natures>
18
+ </projectDescription>
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in mdd.gemspec
4
+ gemspec
data/README ADDED
File without changes
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,12 @@
1
+ module PaginationHelper
2
+
3
+ def pagination_footer var
4
+ html = []
5
+ html.push '<div class="footer"><div id="paginacao">'
6
+ html.push will_paginate var
7
+ html.push '</div></div>'
8
+
9
+ return html.join('').html_safe
10
+ end
11
+
12
+ end
@@ -0,0 +1,89 @@
1
+ class LayoutBase
2
+
3
+ attr_accessor :routes_table
4
+
5
+ # Define os mapeamentos do layout.
6
+ # Exemplo de utilização:
7
+ #
8
+ # map '/*', 'layout_padraozao'
9
+ # map '/administrator/*', 'layout_administrator'
10
+ # map '/a/administrator/*', 'layout_a_administrador'
11
+ # map 'controller#*', 'layout_controller'
12
+ # map '/administrator/controller#*', 'layout_administrator_controller'
13
+ #
14
+ # map '/administrator/controller#action', 'layout1'
15
+ # map 'controller#action', 'layout2'
16
+ def initialize
17
+ @routes_table = Hash.new
18
+ self.mapear
19
+ end
20
+
21
+ def layout_from_split_elements params
22
+ puts "/#{params[:namespace]}/#{params[:controller]}##{params[:action]}" if !params[:namespace].nil? and !params[:controller].nil?
23
+ puts "#{params[:controller]}##{params[:action]}" if params[:namespace].nil? and !params[:action].nil?
24
+ end
25
+
26
+ # Retorna o layout da rota específica
27
+ def layout route
28
+
29
+ layout = @routes_table[route]
30
+ if !layout.nil?
31
+ return layout
32
+ end
33
+
34
+ return default_for route
35
+
36
+ end
37
+
38
+ # Faz o mapeamento entre uma rota e um layout
39
+ private
40
+ def map(route, layout)
41
+ @routes_table[route] = layout
42
+ end
43
+
44
+ def default_for route
45
+
46
+ # salva o layout padrão como sendo o 'application'
47
+ if route == '/*'
48
+ @routes_table['/*'] = 'application' if @routes_table['/*'].nil?
49
+ return @routes_table['/*']
50
+ end
51
+
52
+ # caminho completo passado 'a/b#c'
53
+ if route.rindex('*').nil?
54
+ # substitui tudo depois do '#'
55
+ route_split = route.split('#')
56
+ if route_split.count > 1
57
+ # busca 'a/b#*'
58
+ route = route_split.first(route_split.count - 1).join('') + '#*'
59
+ return layout(route)
60
+ else
61
+ return layout( '/*' )
62
+ end
63
+ else
64
+ # caminho padrão com *
65
+
66
+ # busca 'a/b/c#*' e transforma em 'a/b/c/*'
67
+ route_split = route.split('#')
68
+ if route_split.count > 1
69
+ route = route_split.first(route_split.count - 1).join('')
70
+ route_split = route.split('/').slice(0..-2)
71
+ route = route_split.join('/') + '/*'
72
+ return layout(route)
73
+ else
74
+ # busca 'a/b/*'
75
+ route_split = route.split('/')
76
+ if route_split.count > 1
77
+ route = route_split.first(route_split.count - 1).join('')
78
+ route_split = route.split('/').slice(0..-2)
79
+ route = route_split.join('/') + '/*'
80
+ return layout(route)
81
+ else
82
+ return layout( '/*' )
83
+ end
84
+ end
85
+
86
+ end
87
+
88
+ end
89
+ end
@@ -0,0 +1,3 @@
1
+ # -*- encoding : utf-8 -*-
2
+ class Settings < RailsSettings::Settings
3
+ end
data/lib/mdd.rb ADDED
@@ -0,0 +1,8 @@
1
+ require "mdd/version"
2
+ require "inflections"
3
+
4
+ module Mdd
5
+ class Mdd < Rails::Engine
6
+ config.autoload_paths << File.expand_path("../app", __FILE__)
7
+ end
8
+ end
@@ -0,0 +1,3 @@
1
+ module Mdd
2
+ VERSION = "0.0.1"
3
+ end
data/mdd.gemspec ADDED
@@ -0,0 +1,29 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "mdd/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "mdd"
7
+ s.version = Mdd::VERSION
8
+ s.authors = ["Marcelo Theodoro"]
9
+ s.email = ["marcelo.theodorojr@gmail.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{Gem para geração de código usando MDD}
12
+ s.description = %q{Tese de mestrado: Uma abordagem orientada a modelos para desenvolvimento de aplicações Web}
13
+
14
+ s.rubyforge_project = "mdd"
15
+
16
+ s.add_dependency 'rails'
17
+ s.add_dependency 'devise'
18
+ s.add_dependency 'cancan'
19
+ s.add_dependency 'jquery-rails'
20
+ s.add_dependency 'will_paginate'
21
+ s.add_dependency 'paperclip'
22
+ s.add_dependency 'brazilian-rails'
23
+
24
+ s.files = `git ls-files`.split("\n")
25
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
26
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
27
+ s.require_paths = ["lib"]
28
+
29
+ end
metadata ADDED
@@ -0,0 +1,134 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mdd
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Marcelo Theodoro
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-12-05 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: &2161314920 !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: *2161314920
25
+ - !ruby/object:Gem::Dependency
26
+ name: devise
27
+ requirement: &2161314060 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *2161314060
36
+ - !ruby/object:Gem::Dependency
37
+ name: cancan
38
+ requirement: &2161313120 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *2161313120
47
+ - !ruby/object:Gem::Dependency
48
+ name: jquery-rails
49
+ requirement: &2161311860 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *2161311860
58
+ - !ruby/object:Gem::Dependency
59
+ name: will_paginate
60
+ requirement: &2161311120 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: *2161311120
69
+ - !ruby/object:Gem::Dependency
70
+ name: paperclip
71
+ requirement: &2161310560 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: *2161310560
80
+ - !ruby/object:Gem::Dependency
81
+ name: brazilian-rails
82
+ requirement: &2161309920 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: *2161309920
91
+ description: ! 'Tese de mestrado: Uma abordagem orientada a modelos para desenvolvimento
92
+ de aplicações Web'
93
+ email:
94
+ - marcelo.theodorojr@gmail.com
95
+ executables: []
96
+ extensions: []
97
+ extra_rdoc_files: []
98
+ files:
99
+ - .gitignore
100
+ - .project
101
+ - Gemfile
102
+ - README
103
+ - Rakefile
104
+ - app/helpers/pagination_helper.rb
105
+ - app/models/layout_base.rb
106
+ - app/models/settings.rb
107
+ - lib/mdd.rb
108
+ - lib/mdd/version.rb
109
+ - mdd.gemspec
110
+ homepage: ''
111
+ licenses: []
112
+ post_install_message:
113
+ rdoc_options: []
114
+ require_paths:
115
+ - lib
116
+ required_ruby_version: !ruby/object:Gem::Requirement
117
+ none: false
118
+ requirements:
119
+ - - ! '>='
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ required_rubygems_version: !ruby/object:Gem::Requirement
123
+ none: false
124
+ requirements:
125
+ - - ! '>='
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
128
+ requirements: []
129
+ rubyforge_project: mdd
130
+ rubygems_version: 1.8.10
131
+ signing_key:
132
+ specification_version: 3
133
+ summary: Gem para geração de código usando MDD
134
+ test_files: []