iab-Oil 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
data/lib/Element.rb CHANGED
@@ -9,4 +9,26 @@ class Element
9
9
  @fields = []
10
10
  @type = type
11
11
  end
12
+
13
+ def info
14
+ puts "@coverage=#{@coverage},@name=#{@name},@type=#{@type},PARENT=#{parent},CHILDREN=#{offspring}"
15
+ end
16
+
17
+ def succinct_info
18
+ "@name=#{@name}"
19
+ end
20
+
21
+ def parent
22
+ return @parent.info if @parent
23
+ end
24
+
25
+ def offspring
26
+ childrenStr=""
27
+ if (@children and @children.length > 0)
28
+ @children.each do |c|
29
+ childrenStr += "<#{c.succinct_info}>"
30
+ end
31
+ end
32
+ childrenStr
33
+ end
12
34
  end
@@ -160,7 +160,21 @@ class LayoutInterpreter < DslContext
160
160
  dsl << "hideFields \"#{args[1][:hide]}\"\n" if args[1][:hide]
161
161
  dsl << "columns \"#{args[1][:columns]}\"\n" if args[1][:columns]
162
162
  end
163
- dsl << @contents.to_s
163
+ #if a use statement accompanies the entity clause in a layout then take this
164
+ #in preference to using the product level view for the entity
165
+ if (args[1] and args[1][:use])
166
+ dsl << "entity :#{args[0]}\nuse #{interpretUse(args[1][:use])}\nendentity"
167
+ else
168
+ dsl << @contents.to_s
169
+ end
164
170
  @erb << CoverageInterpreter.execute(dsl, args[1])
165
171
  end
172
+
173
+ def interpretUse(use)
174
+ result = ''
175
+ use.each do |e|
176
+ result << "#{(e == use.first ? '':',')}:#{e}"
177
+ end
178
+ result
179
+ end
166
180
  end
@@ -0,0 +1,62 @@
1
+ require File.join(File.dirname(__FILE__),'DSLContext')
2
+
3
+ #create class that fills in for the RAILS class when rails is not around, e.g. when testing
4
+ #when RAILS is around this will have no effect
5
+ class HashWithIndifferentAccess < Hash
6
+ end
7
+
8
+ class ProductInterpreter < DslContext
9
+
10
+ bubble :than, :is, :list, :the, :to, :at, :it, :end
11
+
12
+ def getResult
13
+ @classDef+@requires
14
+ end
15
+
16
+ def product(*args)
17
+ @requires = ""
18
+ @classDef = "class Marshaller::#{args[0]} < ActiveRecord::Base\n"
19
+ @classDef << "@@nodeName = \"#{args[0]}\"\n"
20
+ end
21
+
22
+ def endproduct
23
+ @classDef << "def self.nodeName\n"
24
+ @classDef << "@@nodeName\n"
25
+ @classDef << "end\n"
26
+ @classDef << "end\n"
27
+ end
28
+
29
+ def entities(*args)
30
+ @libtype = "entities"
31
+ end
32
+
33
+ def endentities
34
+
35
+ end
36
+
37
+ def coverages(*args)
38
+ @libtype = "coverages"
39
+ end
40
+
41
+ def endcoverages
42
+
43
+ end
44
+
45
+ def has_one(*args)
46
+ @requires << "require '#{LIBRARY_ROOT}/#{@libtype}/#{args[0]}EntityModel.rb'\n"
47
+ @requires << "require '#{LIBRARY_ROOT}/#{@libtype}/#{args[0]}NodeName.rb'\n"
48
+ @classDef << "has_one :#{args[0]}\n"
49
+ end
50
+
51
+ def has_many(*args)
52
+ @requires << "require '#{LIBRARY_ROOT}/#{@libtype}/#{args[0]}EntityModel.rb'\n"
53
+ @requires << "require '#{LIBRARY_ROOT}/#{@libtype}/#{args[0]}NodeName.rb'\n"
54
+ @classDef << "has_many :#{args[0]}\n"
55
+ end
56
+
57
+ def has_between(*args)
58
+ @requires << "require '#{LIBRARY_ROOT}/#{@libtype}/#{args[2]}EntityModel.rb'\n"
59
+ @requires << "require '#{LIBRARY_ROOT}/#{@libtype}/#{args[2]}NodeName.rb'\n"
60
+ @classDef << "has_many :#{args[2]}\n"
61
+ end
62
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iab-Oil
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gary Mawdsley
@@ -55,6 +55,7 @@ files:
55
55
  - lib/VPMSProductSchemaInterpreter.rb
56
56
  - lib/LayoutInterpreter.rb
57
57
  - lib/VPMSSchemaInterpreter.rb
58
+ - lib/ProductInterpreter.rb
58
59
  - lib/ProductInterpreter2.rb
59
60
  - lib/xslt/VPMSPackageSchemaInterpreter.xsl
60
61
  - lib/xslt/VPMSSchemaInterpreter.xsl