maml 0.1.5 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -10,6 +10,7 @@ begin
10
10
  gemspec.email = "vanweerd@gmail.com"
11
11
  gemspec.homepage = "http://github.com/vanweerd/maml"
12
12
  gemspec.authors = ["Nick Van Weerdenburg"]
13
+ gemspec.files.include %w(lib/maml/maml.yml)
13
14
  end
14
15
  Jeweler::GemcutterTasks.new
15
16
  rescue LoadError
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.5
1
+ 0.2.0
data/bin/maml CHANGED
@@ -2,4 +2,4 @@
2
2
  $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + "/../lib"))
3
3
  require 'maml/maml'
4
4
  # exit ::Spec::Runner::CommandLine.run
5
- exit main # todo: move to module
5
+ exit ::Maml::main # todo: move to module
data/lib/maml/maml.rb CHANGED
@@ -9,6 +9,7 @@
9
9
  # todo:
10
10
  require "yaml"
11
11
  require "logger"
12
+ require "ftools"
12
13
 
13
14
  # mechanism to get current method name..don't really need for current implementation..was for writing handlers that could write their own name
14
15
  module CurrentMethodName
@@ -37,6 +38,12 @@ module Maml
37
38
  def test
38
39
  string_arg
39
40
  end
41
+
42
+ def create_sample
43
+ pwd=Dir.pwd
44
+ sample= File.join File.dirname(__FILE__), "maml.yml"
45
+ File.copy sample, pwd, true
46
+ end
40
47
 
41
48
  def extract_arg maml_field
42
49
  maml_arg=nil
@@ -159,6 +166,7 @@ module Maml
159
166
  puts "use ---haml or similar for adding extra commands. -<anything> is passed to the command-line minus the -"
160
167
  puts "maml supports one file at time"
161
168
  puts "generated files are in <rails_root>/maml"
169
+ puts "Run 'maml.rb create_sample' to generate a sample maml.yml file for a starting point. Note: this will overwrite any existing maml.yml."
162
170
  puts "\nSpecify field type by symbol prefix as follows:"
163
171
  puts "no prefix=string ; no prefix and _id suffix = integer ; override _id by adding prefix"
164
172
  puts "examples: string, integer_id, .integer, ..float, %date, %%datetime, @time, @@timestamp, :string, ::text, =boolean, &binary"
@@ -173,6 +181,23 @@ module Maml
173
181
  file="maml.yml" unless file
174
182
  generate_command="model" unless generate_command
175
183
  puts "generate_command=#{generate_command}, file=#{file}"
184
+
185
+ # allow copy_sample via file (e.g. maml.rb copy_sample) or via command (e.g. maml.rb -copy_sample)
186
+ case file
187
+ when "create_sample"
188
+ create_sample
189
+ exit
190
+ else
191
+ # continue on
192
+ end
193
+
194
+ case generate_command
195
+ when "create_sample"
196
+ create_sample
197
+ exit
198
+ else
199
+ # continue on
200
+ end
176
201
 
177
202
  maml=nil
178
203
  begin
@@ -234,14 +259,17 @@ module Maml
234
259
 
235
260
  puts "\n\nDONE! Look at maml.log for script results, and in app/models, db/migrations, test/fixtures and test/unit for generated code (if you ran maml.rb with a command line arg)"
236
261
  unless ARGV[0]
237
- puts "\n\nUse 'maml.rb maml.yml' (or other file arg) to actuallly run generators. Running with default maml.yml does test run only."
262
+ puts "\n\nUse 'maml.rb maml.yml' (or other file arg) to actuallly run generators. Running with default maml.yml does trial run only."
238
263
  end
264
+ ensure
265
+ puts "Thanks for being a Lazy MAML!"
266
+ return 0
239
267
  end
240
268
  end
241
269
 
242
270
  # only run main if run standalone (e.g. not via ruby require)
243
271
  if __FILE__ == $0
244
- # puts "***** #{File.basename($0)} ran from file *****"
272
+ puts "***** #{File.basename($0)} ran from file *****"
245
273
 
246
274
  Maml.main
247
275
  end
data/lib/maml/maml.yml ADDED
@@ -0,0 +1,80 @@
1
+ # maml- migration apathy markup lanaguage
2
+ # integer, float, date, datetime, timestamp, time, text, string, binary, boolean
3
+ #
4
+ # specify field type by symbol prefix as follows
5
+ # default type is string, except where field has _id suffice- then it's integer (override by adding prefix as shown below)
6
+ # .integer, ..float, %date, %%datetime, @time, @@timestamp, :string, ::text, =boolean, &binary
7
+ #
8
+ # level 1: module, level 2: class, level 3: field
9
+ # maml.yml is a sample file for a starting point. maml sample copies it to current directory.
10
+ innerplate:
11
+ Plate:
12
+ - day_id # any _id defaults to integer
13
+ - meal_id 50 true
14
+ - notes
15
+ - status
16
+ - completeness
17
+ - .calories
18
+ - title
19
+
20
+ Plate_Item:
21
+ - plate_id
22
+ - item_id
23
+ - uofm_id
24
+ - .units
25
+ - .calories
26
+ - notes
27
+
28
+ Conversion:
29
+ - item_id
30
+ - base_uofm_id
31
+ - uofm_id
32
+ - ratio
33
+
34
+ UnitOfMeasure:
35
+ - name
36
+ - system
37
+ - .related_measures
38
+ - ..ratio
39
+ - =is_base
40
+
41
+ Meal:
42
+ - name
43
+ - .proportion
44
+ - type %w[Meal Snack]
45
+
46
+ # loaded as my test case...
47
+ # Commitment:
48
+ # - %start_date
49
+ # - %end_date
50
+ # - ..goal_weight
51
+ # - ..start_weight
52
+ # - ..end_weight
53
+ # - ..current_weight
54
+ # - .stable_daily_calories
55
+ # - .goal_daily_calories
56
+ # - .calorie_margin
57
+
58
+ Item:
59
+ - =in_library
60
+ - =is_abstract
61
+ - .level
62
+ - name
63
+ - description
64
+ - category_id
65
+ - .calories
66
+ - uofm_id
67
+ - information_source
68
+ - accuracy %w[Draft Good Certain]
69
+ - category %w[Grains Protein Dairy Fruit Vegetables]
70
+
71
+ Day:
72
+ - %date
73
+ - plan
74
+ - .goal_calories
75
+ - .meals_expected
76
+ - .meals_completed
77
+ - .current_calories
78
+ - =is_complete
79
+ - summary
80
+
data/maml.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{maml}
8
- s.version = "0.1.5"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Nick Van Weerdenburg"]
@@ -30,8 +30,7 @@ Gem::Specification.new do |s|
30
30
  "init.rb",
31
31
  "lib/maml.rb",
32
32
  "lib/maml/maml.rb",
33
- "maml-0.1.1.gem",
34
- "maml-0.1.2.gem",
33
+ "lib/maml/maml.yml",
35
34
  "maml.gemspec",
36
35
  "maml.yml",
37
36
  "maml_spec.txt"
data/maml.yml CHANGED
@@ -6,7 +6,7 @@
6
6
  # .integer, ..float, %date, %%datetime, @time, @@timestamp, :string, ::text, =boolean, &binary
7
7
  #
8
8
  # level 1: module, level 2: class, level 3: field
9
-
9
+ # maml.yml is a sample file for a starting point. maml sample copies it to current directory.
10
10
  innerplate:
11
11
  Plate:
12
12
  - day_id # any _id defaults to integer
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: maml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Van Weerdenburg
@@ -34,8 +34,7 @@ files:
34
34
  - init.rb
35
35
  - lib/maml.rb
36
36
  - lib/maml/maml.rb
37
- - maml-0.1.1.gem
38
- - maml-0.1.2.gem
37
+ - lib/maml/maml.yml
39
38
  - maml.gemspec
40
39
  - maml.yml
41
40
  - maml_spec.txt
data/maml-0.1.1.gem DELETED
Binary file
data/maml-0.1.2.gem DELETED
Binary file