yaddl 0.0.6 → 0.0.7

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/README.md CHANGED
@@ -4,6 +4,8 @@ This project rocks and uses MIT-LICENSE.
4
4
 
5
5
  # Usage
6
6
 
7
+ `gem 'yaddl'`
8
+
7
9
  ```
8
10
  rake yaddl:models
9
11
  rake yaddl:migrations
@@ -67,3 +69,200 @@ Legend:
67
69
  - !!{ruby_code} - unique ruby_code will be added to model only once
68
70
  - if, unless, def, module, class - ruby code blocks (else and elsif are not currently supported at root)
69
71
  - include, require, has_many, serialize, etc. - single line ruby methods
72
+
73
+ ---
74
+
75
+ # Example Yaddl File
76
+
77
+ /db/photo_gallery.yaddl
78
+ ```ruby
79
+ Gallery(name:string)
80
+ @Describable
81
+ @Commentable
82
+
83
+ User
84
+
85
+ *Photo(name:string)
86
+ @Describable
87
+ @Commentable
88
+
89
+ User
90
+
91
+ photographer:User
92
+ *participant:User
93
+
94
+ taken_at:datetime
95
+
96
+ -image_src:text
97
+ -thumb_src:text
98
+
99
+ before_save :generate_thumbnail
100
+ def generate_thumbnail
101
+ # generate a thumbnail from image_drc for thumb_src
102
+ end
103
+
104
+ User(email:string)
105
+ !!{has_secure_password}
106
+ name:string
107
+ email:string
108
+ password_digest:string
109
+ attr_accessible :password
110
+ =to_s{email}
111
+
112
+ @Describable
113
+ description:text
114
+
115
+ @Commentable
116
+ *Comment
117
+ @Commentable
118
+ User
119
+ approved:boolean
120
+ def approve!
121
+ self.update_columns(approved: true)
122
+ end
123
+ ```
124
+
125
+ # Example Output
126
+
127
+ ### Migrations
128
+
129
+ /db/schema.rb
130
+ ```ruby
131
+ ActiveRecord::Schema.define(version: 20140318005217) do
132
+
133
+ create_table "comments", force: true do |t|
134
+ t.boolean "approved"
135
+ t.integer "gallery_id"
136
+ t.integer "photo_id"
137
+ t.integer "comment_id"
138
+ t.datetime "created_at"
139
+ t.datetime "updated_at"
140
+ end
141
+
142
+ add_index "comments", ["comment_id"], name: "index_comments_on_comment_id"
143
+ add_index "comments", ["gallery_id"], name: "index_comments_on_gallery_id"
144
+ add_index "comments", ["photo_id"], name: "index_comments_on_photo_id"
145
+
146
+ create_table "galleries", force: true do |t|
147
+ t.string "name"
148
+ t.text "description"
149
+ t.datetime "created_at"
150
+ t.datetime "updated_at"
151
+ end
152
+
153
+ create_table "photos", force: true do |t|
154
+ t.string "name"
155
+ t.datetime "taken_at"
156
+ t.text "image_src"
157
+ t.text "thumb_src"
158
+ t.text "description"
159
+ t.integer "gallery_id"
160
+ t.integer "photographer_id"
161
+ t.datetime "created_at"
162
+ t.datetime "updated_at"
163
+ end
164
+
165
+ add_index "photos", ["gallery_id"], name: "index_photos_on_gallery_id"
166
+ add_index "photos", ["photographer_id"], name: "index_photos_on_photographer_id"
167
+
168
+ create_table "users", force: true do |t|
169
+ t.string "email"
170
+ t.string "name"
171
+ t.string "password_digest"
172
+ t.integer "gallery_id"
173
+ t.integer "photo_id"
174
+ t.integer "participants_id"
175
+ t.integer "comment_id"
176
+ t.datetime "created_at"
177
+ t.datetime "updated_at"
178
+ end
179
+
180
+ add_index "users", ["comment_id"], name: "index_users_on_comment_id"
181
+ add_index "users", ["gallery_id"], name: "index_users_on_gallery_id"
182
+ add_index "users", ["participants_id"], name: "index_users_on_participants_id"
183
+ add_index "users", ["photo_id"], name: "index_users_on_photo_id"
184
+
185
+ end
186
+ ```
187
+
188
+ /app/models/photo.rb
189
+ ```ruby
190
+ class Photo < ActiveRecord::Base
191
+ belongs_to :gallery
192
+ belongs_to :photographer, class_name: "User", dependent: :destroy
193
+ has_one :user, dependent: :destroy
194
+ has_many :participants, class_name: "User", dependent: :destroy, foreign_key: :participant_id
195
+ has_many :comments, dependent: :destroy
196
+
197
+ attr_accessible :gallery_id, :photographer_id
198
+ attr_accessible :name, :taken_at, :image_src, :thumb_src, :description
199
+
200
+ accepts_nested_attributes_for :user
201
+ accepts_nested_attributes_for :participants, :comments
202
+
203
+ before_save :generate_thumbnail
204
+
205
+ def generate_thumbnail
206
+ # generate a thumbnail from image_drc for thumb_src
207
+ end
208
+ end
209
+ ```
210
+
211
+ /app/models/gallery.rb
212
+ ```ruby
213
+ class Gallery < ActiveRecord::Base
214
+ has_one :user, dependent: :destroy
215
+ has_many :photos, dependent: :destroy
216
+ has_many :comments, dependent: :destroy
217
+
218
+ attr_accessible :name, :description
219
+
220
+ accepts_nested_attributes_for :user
221
+ accepts_nested_attributes_for :photos, :comments
222
+ end
223
+ ```
224
+
225
+ /app/models/comment.rb
226
+ ```ruby
227
+ class Comment < ActiveRecord::Base
228
+ belongs_to :gallery
229
+ belongs_to :photo
230
+ belongs_to :comment
231
+ has_one :user, dependent: :destroy
232
+ has_many :comments, dependent: :destroy
233
+
234
+ attr_accessible :gallery_id, :photo_id, :comment_id
235
+ attr_accessible :approved
236
+
237
+ accepts_nested_attributes_for :user
238
+ accepts_nested_attributes_for :comments
239
+
240
+ def approve!
241
+ self.update_columns(approved: true)
242
+ end
243
+ end
244
+ ```
245
+
246
+ /app/models/user.rb
247
+ ```ruby
248
+ class User < ActiveRecord::Base
249
+ belongs_to :gallery
250
+ belongs_to :photo
251
+ belongs_to :participants, class_name: "Photo"
252
+ belongs_to :comment
253
+ has_many :photographer_photos, class_name: "Photo", foreign_key: :photographer_id, dependent: :destroy
254
+
255
+ attr_accessible :gallery_id, :photo_id, :participants_id, :comment_id
256
+ attr_accessible :email, :name, :password_digest
257
+
258
+ accepts_nested_attributes_for :photographer_photos
259
+
260
+ has_secure_password
261
+ attr_accessible :password
262
+
263
+ # returns: string
264
+ def to_s
265
+ email
266
+ end
267
+ end
268
+ ```
@@ -109,7 +109,7 @@ class Generator
109
109
  model['code']['after'] ||= []
110
110
  model['code']['controller'] ||= []
111
111
  sc = "rails g model #{name} " + model['attributes'].map{ |k,v| k + ':' + v['type'].sub(/yaml|hash|object|cache/i,"text") }.join(' ') + " " + model['belongs_to'].map{ |k,v| k + ':references' + (v['polymorphic'] ? "{polymorphic}" : "") }.join(' ')
112
- puts("migration: cd #{Rails::root} && #{sc} --skip")# unless @quiet
112
+ puts("migration: cd #{Rails::root} && #{sc} --skip --no-test-framework") unless @quiet
113
113
  `cd #{Rails::root} && #{sc} --skip --no-test-framework`
114
114
  end if options.include?("--migrations-only")
115
115
 
@@ -532,7 +532,7 @@ end.join } <td><%= link_to 'Show', #{name.underscore} %></td>
532
532
  @multiline_buffer = line[@multiline_spaces..line.length]
533
533
  return
534
534
  elsif line.strip =~ /^[a-z_]+ |^acts_as_.*/
535
- if line.strip =~ /"^include |^require |^extend |^acts_as_[a-z_]+/
535
+ if line.strip =~ /^include |^require |^extend |^acts_as_[a-z_]+/
536
536
  line = "!top{#{line.strip}}"
537
537
  else
538
538
  line = "!!{#{line.strip}}"
@@ -1,3 +1,3 @@
1
1
  module Yaddl
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -416,5 +416,35 @@ YaddlTest: test_create_test_model
416
416
   (0.1ms) begin transaction
417
417
  -----------------------
418
418
  YaddlTest: test_defined
419
+ -----------------------
420
+  (0.1ms) rollback transaction
421
+  (0.3ms) begin transaction
422
+ ---------------------------------
423
+ YaddlTest: test_create_test_model
424
+ ---------------------------------
425
+  (0.2ms) rollback transaction
426
+  (0.1ms) begin transaction
427
+ -----------------------
428
+ YaddlTest: test_defined
429
+ -----------------------
430
+  (0.1ms) rollback transaction
431
+  (0.3ms) begin transaction
432
+ ---------------------------------
433
+ YaddlTest: test_create_test_model
434
+ ---------------------------------
435
+  (0.2ms) rollback transaction
436
+  (0.1ms) begin transaction
437
+ -----------------------
438
+ YaddlTest: test_defined
439
+ -----------------------
440
+  (0.1ms) rollback transaction
441
+  (0.3ms) begin transaction
442
+ ---------------------------------
443
+ YaddlTest: test_create_test_model
444
+ ---------------------------------
445
+  (0.2ms) rollback transaction
446
+  (0.1ms) begin transaction
447
+ -----------------------
448
+ YaddlTest: test_defined
419
449
  -----------------------
420
450
   (0.1ms) rollback transaction
@@ -9,15 +9,21 @@ class YaddlTest < ActiveSupport::TestCase
9
9
  y = Yaddl::Generator.new
10
10
  y.markup = "TestModel(name:string)
11
11
  =to_s{name}
12
- *RelatedModel"
12
+ *ChildModel
13
+ +RelatedModel
14
+ ReferencedModel"
13
15
  y.generate("--no-scaffolds --quiet")
14
16
  y.generate("--migrations-only --quiet")
15
17
  assert_file "app/models/test_model.rb", "class TestModel < ActiveRecord::Base
16
- has_many :related_models, dependent: :destroy
18
+ belongs_to :related_model
19
+ has_one :referenced_model, dependent: :destroy
20
+ has_many :child_models, dependent: :destroy
17
21
 
22
+ attr_accessible :related_model_id
18
23
  attr_accessible :name
19
24
 
20
- accepts_nested_attributes_for :related_models
25
+ accepts_nested_attributes_for :referenced_model
26
+ accepts_nested_attributes_for :child_models
21
27
 
22
28
  # returns: string
23
29
  def to_s
@@ -27,9 +33,8 @@ end
27
33
  "
28
34
 
29
35
  assert_file "app/models/related_model.rb", "class RelatedModel < ActiveRecord::Base
30
- belongs_to :test_model
36
+ has_many :test_models, dependent: :nullify
31
37
 
32
- attr_accessible :test_model_id
33
38
  end
34
39
  "
35
40
 
@@ -45,11 +50,31 @@ TestModel:
45
50
  returns: string
46
51
  getter: name
47
52
  has_many:
48
- related_models:
53
+ child_models:
49
54
  dependent: destroy
55
+ class_names:
56
+ - ChildModel
57
+ belongs_to:
58
+ related_model:
50
59
  class_names:
51
60
  - RelatedModel
61
+ has_one:
62
+ referenced_model:
63
+ dependent: destroy
64
+ class_names:
65
+ - ReferencedModel
66
+ ChildModel:
67
+ belongs_to:
68
+ test_model:
69
+ class_names:
70
+ - TestModel
52
71
  RelatedModel:
72
+ has_many:
73
+ test_models:
74
+ dependent: nullify
75
+ class_names:
76
+ - RelatedModel
77
+ ReferencedModel:
53
78
  belongs_to:
54
79
  test_model:
55
80
  class_names:
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yaddl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-03-17 00:00:00.000000000 Z
12
+ date: 2014-03-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -62,8 +62,6 @@ files:
62
62
  - test/dummy/app/assets/stylesheets/application.css
63
63
  - test/dummy/app/controllers/application_controller.rb
64
64
  - test/dummy/app/helpers/application_helper.rb
65
- - test/dummy/app/models/related_model.rb
66
- - test/dummy/app/models/test_model.rb
67
65
  - test/dummy/app/views/layouts/application.html.erb
68
66
  - test/dummy/bin/bundle
69
67
  - test/dummy/bin/rails
@@ -85,7 +83,6 @@ files:
85
83
  - test/dummy/config/locales/en.yml
86
84
  - test/dummy/config/routes.rb
87
85
  - test/dummy/config.ru
88
- - test/dummy/db/schema.yaml
89
86
  - test/dummy/db/test.sqlite3
90
87
  - test/dummy/log/development.log
91
88
  - test/dummy/log/test.log
@@ -126,8 +123,6 @@ test_files:
126
123
  - test/dummy/app/assets/stylesheets/application.css
127
124
  - test/dummy/app/controllers/application_controller.rb
128
125
  - test/dummy/app/helpers/application_helper.rb
129
- - test/dummy/app/models/related_model.rb
130
- - test/dummy/app/models/test_model.rb
131
126
  - test/dummy/app/views/layouts/application.html.erb
132
127
  - test/dummy/bin/bundle
133
128
  - test/dummy/bin/rails
@@ -149,7 +144,6 @@ test_files:
149
144
  - test/dummy/config/locales/en.yml
150
145
  - test/dummy/config/routes.rb
151
146
  - test/dummy/config.ru
152
- - test/dummy/db/schema.yaml
153
147
  - test/dummy/db/test.sqlite3
154
148
  - test/dummy/log/development.log
155
149
  - test/dummy/log/test.log
@@ -1,5 +0,0 @@
1
- class RelatedModel < ActiveRecord::Base
2
- belongs_to :test_model
3
-
4
- attr_accessible :test_model_id
5
- end
@@ -1,12 +0,0 @@
1
- class TestModel < ActiveRecord::Base
2
- has_many :related_models, dependent: :destroy
3
-
4
- attr_accessible :name
5
-
6
- accepts_nested_attributes_for :related_models
7
-
8
- # returns: string
9
- def to_s
10
- name
11
- end
12
- end
@@ -1,21 +0,0 @@
1
- ---
2
- TestModel:
3
- attributes:
4
- name:
5
- type: string
6
- primary_ref:
7
- -
8
- methods:
9
- to_s:
10
- returns: string
11
- getter: name
12
- has_many:
13
- related_models:
14
- dependent: destroy
15
- class_names:
16
- - RelatedModel
17
- RelatedModel:
18
- belongs_to:
19
- test_model:
20
- class_names:
21
- - TestModel