mdd 3.1.0 → 3.1.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.
Files changed (88) hide show
  1. checksums.yaml +7 -0
  2. data/app/controllers/mdwa/mdwa_controller.rb +2 -1
  3. data/app/controllers/mdwa/requirements_controller.rb +2 -1
  4. data/app/helpers/mdwa_helper.rb +19 -5
  5. data/app/views/template/mdwa/_autocomplete_multiple_tag.html.erb +2 -2
  6. data/app/views/template/mdwa/_autocomplete_remote_multiple_tag.html.erb +49 -0
  7. data/app/views/template/mdwa/_autocomplete_remote_tag.html.erb +24 -0
  8. data/app/views/template/mdwa/_autocomplete_tag.html.erb +1 -1
  9. data/app/views/template/mdwa/_crud_error.html.erb +1 -1
  10. data/app/views/template/mdwa/_login_text.html.erb +4 -3
  11. data/app/views/template/mdwa/_notice.html.erb +3 -3
  12. data/lib/extensions/string.rb +2 -2
  13. data/lib/generators/mdwa/entity/entity_generator.rb +1 -1
  14. data/lib/generators/mdwa/entity/templates/entity.rb +1 -1
  15. data/lib/generators/mdwa/from_requirements/from_requirements_generator.rb +2 -2
  16. data/lib/generators/mdwa/requirement/templates/requirement.rb +2 -3
  17. data/lib/generators/mdwa/sandbox/sandbox_generator.rb +2 -1
  18. data/lib/generators/mdwa/sandbox/templates/app/assets/images/mdwa/blank.gif +0 -0
  19. data/lib/generators/mdwa/sandbox/templates/app/assets/images/mdwa/fancybox_loading.gif +0 -0
  20. data/lib/generators/mdwa/sandbox/templates/app/assets/images/mdwa/fancybox_overlay.png +0 -0
  21. data/lib/generators/mdwa/sandbox/templates/app/assets/images/mdwa/fancybox_sprite.png +0 -0
  22. data/lib/generators/mdwa/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  23. data/lib/generators/mdwa/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  24. data/lib/generators/mdwa/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-bg_flat_10_000000_40x100.png +0 -0
  25. data/lib/generators/mdwa/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  26. data/lib/generators/mdwa/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  27. data/lib/generators/mdwa/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
  28. data/lib/generators/mdwa/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  29. data/lib/generators/mdwa/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  30. data/lib/generators/mdwa/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  31. data/lib/generators/mdwa/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-icons_222222_256x240.png +0 -0
  32. data/lib/generators/mdwa/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-icons_228ef1_256x240.png +0 -0
  33. data/lib/generators/mdwa/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-icons_ef8c08_256x240.png +0 -0
  34. data/lib/generators/mdwa/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-icons_ffd27a_256x240.png +0 -0
  35. data/lib/generators/mdwa/sandbox/templates/app/assets/images/mdwa/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
  36. data/lib/generators/mdwa/sandbox/templates/app/assets/javascripts/jquery/jquery.fancybox.js +45 -31
  37. data/lib/generators/mdwa/sandbox/templates/app/assets/javascripts/jquery/jquery.mousewheel.js +12 -12
  38. data/lib/generators/mdwa/sandbox/templates/app/assets/javascripts/mdwa/login_manifest.js +1 -0
  39. data/lib/generators/mdwa/sandbox/templates/app/assets/javascripts/mdwa/template/all_pages.js +6 -3
  40. data/lib/generators/mdwa/sandbox/templates/app/assets/javascripts/mdwa/template/pagination.js +6 -2
  41. data/lib/generators/mdwa/sandbox/templates/app/assets/stylesheets/jquery/jquery-ui-1.10.0.custom.css +1174 -0
  42. data/lib/generators/mdwa/sandbox/templates/app/assets/stylesheets/jquery/{jquery.fancybox.css → jquery.fancybox.css.erb} +94 -71
  43. data/lib/generators/mdwa/sandbox/templates/app/assets/stylesheets/mdwa/login/login.css +67 -60
  44. data/lib/generators/mdwa/sandbox/templates/app/assets/stylesheets/mdwa/system_manifest.css +1 -7
  45. data/lib/generators/mdwa/sandbox/templates/app/assets/stylesheets/mdwa/template/backend.css.erb +35 -66
  46. data/lib/generators/mdwa/sandbox/templates/app/assets/stylesheets/mdwa/template/template.css.erb +372 -34
  47. data/lib/generators/mdwa/sandbox/templates/config/locales/mdwa.en.yml +4 -0
  48. data/lib/generators/mdwa/scaffold/templates/controllers/ajax_controller.rb +1 -1
  49. data/lib/generators/mdwa/scaffold/templates/controllers/controller.rb +1 -1
  50. data/lib/generators/mdwa/scaffold/templates/specs/routing.rb +1 -1
  51. data/lib/generators/mdwa/templates/templates/general/routes.rb +2 -1
  52. data/lib/generators/mdwa/templates/templates/scaffold/controller.erb +51 -37
  53. data/lib/generators/mdwa/templates/templates/scaffold/views/_form_fields.html.erb +2 -2
  54. data/lib/generators/mdwa/templates/templates/scaffold/views/_list.html.erb +10 -9
  55. data/lib/generators/mdwa/templates/templates/scaffold/views/create.js.erb +1 -1
  56. data/lib/generators/mdwa/templates/templates/scaffold/views/destroy.js.erb +1 -1
  57. data/lib/generators/mdwa/templates/templates/scaffold/views/index.html.erb +46 -1
  58. data/lib/generators/mdwa/templates/templates/scaffold/views/index.js.erb +1 -1
  59. data/lib/generators/mdwa/templates/templates/scaffold/views/update.js.erb +1 -1
  60. data/lib/generators/mdwa/templates/templates_generator.rb +1 -1
  61. data/lib/generators/mdwa/transform/transform_generator.rb +81 -73
  62. data/lib/generators/mdwa/user/templates/user.rb +1 -1
  63. data/lib/generators/mdwa/user_scaffold/templates/migrate.erb +12 -4
  64. data/lib/generators/mdwa/user_scaffold/user_scaffold_generator.rb +9 -2
  65. data/lib/mdwa/dsl/entity.rb +11 -10
  66. data/lib/mdwa/dsl/entity_association.rb +11 -3
  67. data/lib/mdwa/dsl/entity_attribute.rb +8 -1
  68. data/lib/mdwa/dsl/process.rb +2 -0
  69. data/lib/mdwa/dsl/process_detail.rb +2 -0
  70. data/lib/mdwa/dsl/process_detail_next_action.rb +3 -1
  71. data/lib/mdwa/dsl/requirement.rb +6 -3
  72. data/lib/mdwa/dsl/requirements.rb +1 -1
  73. data/lib/mdwa/dsl/workflow.rb +1 -1
  74. data/lib/mdwa/generators/model.rb +8 -0
  75. data/lib/mdwa/generators/model_association.rb +9 -0
  76. data/lib/mdwa/generators/model_attribute.rb +46 -24
  77. data/lib/mdwa/version.rb +1 -1
  78. data/mdd.gemspec +1 -1
  79. data/test/entity_attributes_options_test.rb +43 -0
  80. data/test/entity_test.rb +6 -6
  81. data/test/process_test.rb +31 -31
  82. data/test/requirements_test.rb +3 -5
  83. metadata +36 -57
  84. data/lib/generators/mdwa/sandbox/templates/app/assets/images/mdwa/button_submit.gif +0 -0
  85. data/lib/generators/mdwa/sandbox/templates/app/assets/javascripts/jquery/jquery.bgiframe.js +0 -10
  86. data/lib/generators/mdwa/sandbox/templates/app/assets/stylesheets/jquery/jquery-ui-theme1.css +0 -573
  87. data/lib/generators/mdwa/sandbox/templates/app/assets/stylesheets/mdwa/template/leftbar.css.erb +0 -0
  88. data/lib/generators/mdwa/sandbox/templates/app/assets/stylesheets/mdwa/template/visualization.css +0 -3
@@ -13,4 +13,4 @@ end
13
13
 
14
14
  <%- unless options.requirement.blank? -%>
15
15
  MDWA::DSL.user('<%= @user %>').in_requirements << '<%= options.requirement %>'
16
- <%- end -%>
16
+ <%- end -%>
@@ -2,9 +2,13 @@
2
2
  class Add<%= @model.attributes.collect{|a| a.name.camelize}.join('') %>ToUsers < ActiveRecord::Migration
3
3
 
4
4
  def self.up
5
- <%- @model.simple_attributes.each do |attr| -%>
6
- <%- if !attr.type.to_sym == :file -%>
5
+ <%- @model.attributes.each do |attr| -%>
6
+ <%- if attr.type.to_sym != :file -%>
7
+ <%- if attr.belongs_to? or attr.nested_one? -%>
8
+ add_column :users, :<%= attr.name %>, :integer
9
+ <%- elsif !attr.references? -%>
7
10
  add_column :users, :<%= attr.name %>, :<%= attr.migration_field %>
11
+ <%- end -%>
8
12
  <%- else -%>
9
13
  add_column :users, :<%= attr.name %>_file_name, :string
10
14
  add_column :users, :<%= attr.name %>_content_type, :string
@@ -15,9 +19,13 @@ class Add<%= @model.attributes.collect{|a| a.name.camelize}.join('') %>ToUsers <
15
19
  end
16
20
 
17
21
  def self.down
18
- <%- @model.simple_attributes.each do |attr| -%>
19
- <%- if !attr.type.to_sym == :file -%>
22
+ <%- @model.attributes.each do |attr| -%>
23
+ <%- if attr.type.to_sym != :file -%>
24
+ <%- if attr.belongs_to? or attr.nested_one? -%>
20
25
  remove_column :users, :<%= attr.name %>
26
+ <%- elsif !attr.references? -%>
27
+ remove_column :users, :<%= attr.name %>
28
+ <%- end -%>
21
29
  <%- else -%>
22
30
  remove_column :users, :<%= attr.name %>_file_name
23
31
  remove_column :users, :<%= attr.name %>_content_type
@@ -52,7 +52,10 @@ module Mdwa
52
52
 
53
53
  # sets the model attributes
54
54
  attributes.each do |attribute|
55
- @model.add_attribute MDWA::Generators::ModelAttribute.new( attribute ) unless User.accessible_attributes.to_a.include?( attribute.split(':').first )
55
+ attr_name = attribute.split(':').first
56
+ if !User.accessible_attributes.to_a.include?( attr_name )
57
+ @model.add_attribute MDWA::Generators::ModelAttribute.new( attribute )
58
+ end
56
59
  end
57
60
 
58
61
  unless options.only_diff_migration
@@ -72,7 +75,11 @@ module Mdwa
72
75
  # add to model attributes
73
76
  # if it's not predefined in devise
74
77
  # if it's a belongs_to or nested_one association
75
- if (!attr.references? and !@predefined_fields.include?( attribute.split(':').first )) or attr.belongs_to? or attr.nested_one?
78
+ if (!attr.references? and !@predefined_fields.include?(attribute.split(':').first)) or
79
+ (
80
+ (attr.belongs_to? or attr.nested_one?) and
81
+ User.column_names.to_a.select {|user_attr| user_attr == attr.name.foreign_key}.count.zero?
82
+ )
76
83
  @model.add_attribute attr
77
84
  end
78
85
  end
@@ -33,7 +33,7 @@ module MDWA
33
33
  end
34
34
 
35
35
  def scaffold_name
36
- return (@scaffold_name.blank? ? name : @scaffold_name)
36
+ return (@scaffold_name.blank? ? name.underscore : @scaffold_name)
37
37
  end
38
38
 
39
39
  def model_name
@@ -72,15 +72,16 @@ module MDWA
72
72
  #
73
73
  def after_declaration
74
74
 
75
+ # include rails default attributes
76
+ self.attribute('id', 'integer') if self.attributes['id'].blank?
77
+ self.attribute('created_at', 'datetime') if self.attributes['created_at'].blank?
78
+ self.attribute('updated_at', 'datetime') if self.attributes['updated_at'].blank?
75
79
  # if it's a user and have no attributes, include "name" to prevent errors
76
- self.attribute('id', 'integer')
77
- self.attribute('created_at', 'datetime')
78
- self.attribute('updated_at', 'datetime')
79
80
  if user?
80
- self.attribute('name', 'string')
81
- self.attribute('email', 'string')
82
- self.attribute('password', 'password')
83
- self.attribute('password_confirmation', 'password')
81
+ self.attribute('name', 'string') if self.attributes['name'].blank?
82
+ self.attribute('email', 'string') if self.attributes['email'].blank?
83
+ self.attribute('password', 'password') if self.attributes['password'].blank?
84
+ self.attribute('password_confirmation', 'password') if self.attributes['password_confirmation'].blank?
84
85
  end
85
86
 
86
87
  end
@@ -91,8 +92,8 @@ module MDWA
91
92
  attr = EntityAttribute.new(self)
92
93
  attr.name = name
93
94
  attr.type = type
94
- attr.default = options[:default] unless options[:default].blank?
95
- attr.style = options[:style] unless options[:style].blank?
95
+ attr.default = true if options.include?(:default) and options[:default]
96
+ attr.options = options
96
97
  attr.raise_errors_if_invalid!
97
98
  self.attributes[attr.name] = attr
98
99
  end
@@ -5,7 +5,7 @@ module MDWA
5
5
  class EntityAssociation
6
6
 
7
7
  attr_accessor :source, :destination, :destination_view
8
- attr_accessor :name, :type, :composition, :description, :skip_views, :style
8
+ attr_accessor :name, :type, :composition, :description, :skip_views, :options
9
9
 
10
10
  ACCEPTED_TYPES = [:one_to_many, :many_to_one, :one_to_one, :one_to_one_not_navigable, :many_to_many]
11
11
 
@@ -13,6 +13,7 @@ module MDWA
13
13
  self.source = source
14
14
  self.composition = false
15
15
  self.skip_views = false
16
+ self.options = {}
16
17
  end
17
18
 
18
19
  #
@@ -20,7 +21,7 @@ module MDWA
20
21
  # Sets the name if not set yet.
21
22
  #
22
23
  def destination=(value)
23
- self.name = value.downcase if self.name.blank?
24
+ self.name = value.underscore if self.name.blank?
24
25
  @destination = value
25
26
  end
26
27
 
@@ -31,7 +32,14 @@ module MDWA
31
32
  def skip_views!
32
33
  self.skip_views = true
33
34
  end
34
-
35
+
36
+ #
37
+ # Return the model association generator.
38
+ #
39
+ def to_model_association
40
+ self.source.generator_model.associations.select{ |m_assoc| m_assoc.model2.name.underscore == self.name.underscore }.first
41
+ end
42
+
35
43
  #
36
44
  # Return the mapped type for the code generation.
37
45
  #
@@ -6,7 +6,7 @@ module MDWA
6
6
 
7
7
  class EntityAttribute
8
8
 
9
- attr_accessor :entity, :name, :type, :default, :style
9
+ attr_accessor :entity, :name, :type, :default, :options
10
10
 
11
11
  ACCEPTED_TYPES = MDWA::Generators::ModelAttribute::STATIC_TYPES
12
12
 
@@ -40,6 +40,13 @@ module MDWA
40
40
  "#{name}:#{type}"
41
41
  end
42
42
 
43
+ #
44
+ # Return the model attribute generator.
45
+ #
46
+ def to_model_attribute
47
+ self.entity.generator_model.attributes.select{ |m_attr| m_attr.name == self.name }.first
48
+ end
49
+
43
50
  end
44
51
 
45
52
  end
@@ -1,4 +1,6 @@
1
1
  # -*- encoding : utf-8 -*-
2
+ require 'extensions/string'
3
+
2
4
  module MDWA
3
5
  module DSL
4
6
 
@@ -1,5 +1,7 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  require 'ostruct'
3
+ require 'extensions/string'
4
+
3
5
  module MDWA
4
6
  module DSL
5
7
 
@@ -1,4 +1,6 @@
1
1
  # -*- encoding : utf-8 -*-
2
+ require 'extensions/string'
3
+
2
4
  module MDWA
3
5
  module DSL
4
6
 
@@ -7,7 +9,7 @@ module MDWA
7
9
  attr_accessor :alias, :method, :request, :redirect, :render, :when
8
10
 
9
11
  def initialize(next_action_alias)
10
- self.alias = next_action_alias
12
+ self.alias = next_action_alias.to_alias
11
13
  end
12
14
 
13
15
  end
@@ -1,4 +1,6 @@
1
1
  # -*- encoding : utf-8 -*-
2
+ require 'extensions/string'
3
+
2
4
  module MDWA
3
5
  module DSL
4
6
 
@@ -12,9 +14,10 @@ module MDWA
12
14
  self.users = []
13
15
  self.entities = []
14
16
  end
15
-
16
- def alias
17
- @alias ||= self.summary.to_alias
17
+
18
+ def summary=(summary)
19
+ @summary = summary
20
+ @alias = summary.to_alias unless summary.nil?
18
21
  end
19
22
 
20
23
  def non_functional?
@@ -53,7 +53,7 @@ module MDWA
53
53
  end
54
54
 
55
55
  def self.requirement(name)
56
- self.requirements.element(name)
56
+ self.requirements.element(name.to_sym)
57
57
  end
58
58
 
59
59
 
@@ -49,7 +49,7 @@ module MDWA
49
49
  end
50
50
 
51
51
  def self.process(name)
52
- self.workflow.element(name)
52
+ self.workflow.element(name.to_sym)
53
53
  end
54
54
 
55
55
 
@@ -107,10 +107,18 @@ module MDWA
107
107
  model_attribute.model = self
108
108
  end
109
109
 
110
+ def add_association(model_association)
111
+ self.associations << model_association
112
+ end
113
+
110
114
  def simple_attributes
111
115
  attributes.select{ |a| !a.references? }
112
116
  end
113
117
 
118
+ def to_sym
119
+ self.name.to_sym
120
+ end
121
+
114
122
  private
115
123
  def namespace_scope
116
124
  return "#{namespace}::" if namespace?
@@ -84,6 +84,15 @@ module MDWA
84
84
  def has_and_belongs_to_many?
85
85
  return (relation == 'has_and_belongs_to_many')
86
86
  end
87
+
88
+
89
+ def filter_input(destination_field)
90
+ input = []
91
+ input << "render '/template/mdwa/autocomplete_tag', :dom_element => '##{self.model2.name.underscore}', :dom_element_id => '##{self.model2.name.underscore}_id', :data => #{model2.klass}.all, :field_name => '#{destination_field}'"
92
+ input << "text_field_tag :#{self.model2.name.underscore}"
93
+ input << "hidden_field_tag :#{self.model2.name.underscore}_id"
94
+ return input
95
+ end
87
96
 
88
97
  end
89
98
 
@@ -52,33 +52,55 @@ module MDWA
52
52
 
53
53
  def migration_field
54
54
  @migration_field ||= case self.type.to_s.to_sym
55
- when :string, :file, :password then 'string'
56
- when :boolean then 'boolean'
57
- when :date then 'date'
58
- when :datetime then 'datetime'
59
- when :decimal, :float then 'decimal'
60
- when :text then 'text'
61
- when :time then 'time'
62
- when :timestamp then 'timestamp'
63
- else
64
- 'integer'
65
- end
55
+ when :string, :password then 'string'
56
+ when :boolean then 'boolean'
57
+ when :date then 'date'
58
+ when :datetime then 'datetime'
59
+ when :decimal, :float then 'decimal'
60
+ when :text then 'text'
61
+ when :time then 'time'
62
+ when :timestamp then 'timestamp'
63
+ when :file then 'attachment'
64
+ else
65
+ 'integer'
66
+ end
66
67
  end
67
68
 
68
69
  def form_field
69
- @form_field ||= case self.type.to_s.to_sym
70
- when :integer then 'number_field'
71
- when :float, :decimal then 'text_field'
72
- when :file then 'file_field'
73
- when :time then 'time_select'
74
- when :datetime, :timestamp then 'datetime_select'
75
- when :date then 'date_select'
76
- when :text then 'text_area'
77
- when :boolean then 'check_box'
78
- when :password then 'password_field'
79
- else
80
- 'text_field'
81
- end
70
+ @form_field ||= case self.type.to_s.to_sym
71
+ when :integer then 'number_field'
72
+ when :float, :decimal then 'text_field'
73
+ when :file then 'file_field'
74
+ when :time then 'time_select'
75
+ when :datetime, :timestamp then 'datetime_select'
76
+ when :date then 'date_select'
77
+ when :text then 'text_area'
78
+ when :boolean then 'check_box'
79
+ when :password then 'password_field'
80
+ else
81
+ 'text_field'
82
+ end
83
+ end
84
+
85
+ def filter_input
86
+ input = []
87
+ case self.type.to_s.to_sym
88
+ when :text, :string then
89
+ input << "text_field_tag :#{self.name}"
90
+ when :integer, :float, :decimal then
91
+ input << "text_field_tag :#{self.name}, '', :onkeypress => \"mascara(this, checaNumero)\", :maxlength => 10"
92
+ when :file, :password then
93
+ input << 'No possible filter for file or password.'
94
+ when :time then
95
+ input << 'time_select'
96
+ when :datetime, :timestamp, :date then
97
+ input << "text_field_tag :#{self.name}_0, '', :class => :datepicker, :onkeypress => \"mascara(this, checaData)\", :maxlength => 10"
98
+ input << "text_field_tag :#{self.name}_1, '', :class => :datepicker, :onkeypress => \"mascara(this, checaData)\", :maxlength => 10"
99
+ when :boolean then
100
+ input << "select_tag :#{self.name}, options_for_select([[t('system.yes'), 1], [t('system.no'), 0]]), :prompt => t('system.both')"
101
+ else
102
+ input << "text_field_tag :#{self.name}"
103
+ end
82
104
  end
83
105
 
84
106
  def belongs_to?
@@ -1,4 +1,4 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module MDWA
3
- VERSION = "3.1.0"
3
+ VERSION = "3.1.1"
4
4
  end
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
13
13
 
14
14
  s.rubyforge_project = "mdd"
15
15
 
16
- s.add_dependency 'rails', '>= 3.2.11'
16
+ s.add_dependency 'rails', '>= 3.2.8'
17
17
  s.add_dependency 'jquery-rails', '>= 2.2.0'
18
18
  s.add_dependency 'devise', '>= 2.1'
19
19
  s.add_dependency 'cancan', '>= 1.6'
@@ -0,0 +1,43 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'mdwa/dsl'
3
+
4
+ require 'minitest/spec'
5
+ require 'minitest/autorun'
6
+
7
+ describe MDWA::DSL::EntityAttribute do
8
+
9
+ before do
10
+ # create product entity
11
+ MDWA::DSL.entities.register "Pessoa" do |e|
12
+ e.resource = true
13
+ e.ajax = true
14
+
15
+ e.attribute 'nome', 'string', default: true, filtered: true
16
+ e.attribute 'documento', 'string', filtered: true
17
+ e.attribute 'endereco', 'string'
18
+ e.attribute 'campo', 'string', filtered: false
19
+ end
20
+ end
21
+
22
+ it "should store attributes correctly" do
23
+ entidade = MDWA::DSL.entity('Pessoa')
24
+
25
+ entidade.attributes.count.must_equal 7
26
+ entidade.attributes['nome'].options.count.must_equal 2
27
+ entidade.attributes['nome'].default.must_equal true
28
+ entidade.attributes['nome'].options[:filtered].must_equal true
29
+ entidade.attributes['nome'].options[:outro].must_equal nil
30
+
31
+ entidade.attributes['documento'].options.count.must_equal 1
32
+ entidade.attributes['documento'].default.must_equal false
33
+ entidade.attributes['documento'].options[:filtered].must_equal true
34
+ entidade.attributes['documento'].options[:outro].must_equal nil
35
+
36
+ entidade.attributes['endereco'].options.count.must_equal 0
37
+ entidade.attributes['endereco'].default.must_equal false
38
+ entidade.attributes['endereco'].options[:filtered].must_equal nil
39
+
40
+ entidade.attributes.values.select{|attr| attr.options[:filtered]}.count.must_equal 2
41
+ end
42
+
43
+ end
@@ -90,7 +90,7 @@ describe MDWA::DSL::Entities do
90
90
  product.ajax.must_equal true
91
91
  product.associations.must_be_instance_of Hash
92
92
  product.attributes.must_be_instance_of Hash
93
- product.model_name.must_equal( "Product" )
93
+ product.model_name.must_equal( "product" )
94
94
 
95
95
  category = MDWA::DSL.entity("Category")
96
96
  category.must_be_instance_of MDWA::DSL::Entity
@@ -109,7 +109,7 @@ describe MDWA::DSL::Entities do
109
109
  it "must store attributes" do
110
110
  product = MDWA::DSL.entity("Product")
111
111
 
112
- product.attributes.count.must_equal 4
112
+ product.attributes.count.must_equal 7
113
113
  product.attributes['name'].type.must_equal 'string'
114
114
  product.attributes['name'].name.must_equal 'name'
115
115
  product.attributes['category'].type.must_equal 'integer'
@@ -122,7 +122,7 @@ describe MDWA::DSL::Entities do
122
122
  product.default_attribute.name.must_equal 'name'
123
123
 
124
124
  category = MDWA::DSL.entity("Category")
125
- category.attributes.count.must_equal 1
125
+ category.attributes.count.must_equal 4
126
126
  category.default_attribute.name.must_equal 'name'
127
127
  end
128
128
 
@@ -182,8 +182,8 @@ describe MDWA::DSL::Entities do
182
182
  project.scaffold_name.must_equal 'a/project'
183
183
  project.model_name.must_equal 'a/project'
184
184
 
185
- project.generate.must_equal "mdwa:scaffold a/project nome:string ativo:boolean situacao_atual:text group:a/group:nome:belongs_to --ajax"
186
- group.generate.must_equal "mdwa:scaffold a/group nome:string ativo:boolean --ajax --force"
185
+ project.generate.must_equal "mdwa:scaffold a/project nome:string ativo:boolean situacao_atual:text id:integer created_at:datetime updated_at:datetime group:a/group:nome:belongs_to --ajax"
186
+ group.generate.must_equal "mdwa:scaffold a/group nome:string ativo:boolean id:integer created_at:datetime updated_at:datetime --ajax --force"
187
187
  end
188
188
 
189
189
  it "should not generate non-resource entities" do
@@ -209,7 +209,7 @@ describe MDWA::DSL::Entities do
209
209
  end
210
210
 
211
211
  team_member = MDWA::DSL.entity('TeamMember')
212
- team_member.attributes.count.must_equal 1
212
+ team_member.attributes.count.must_equal 7
213
213
  team_member.attributes['name'].name.must_equal 'name'
214
214
  team_member.attributes['name'].type.must_equal 'string'
215
215
  end