inversion 1.3.1 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/Examples.md +134 -0
  4. data/GettingStarted.md +50 -0
  5. data/Guide.md +14 -0
  6. data/{History.rdoc → History.md} +52 -43
  7. data/{README.rdoc → README.md} +43 -34
  8. data/Tags.md +555 -0
  9. data/bin/inversion +4 -8
  10. data/lib/inversion/cli/api.rb +75 -0
  11. data/lib/inversion/cli/tagtokens.rb +34 -0
  12. data/lib/inversion/cli/tree.rb +70 -0
  13. data/lib/inversion/cli.rb +406 -0
  14. data/lib/inversion/exceptions.rb +0 -1
  15. data/lib/inversion/mixins.rb +10 -11
  16. data/lib/inversion/parser.rb +5 -6
  17. data/lib/inversion/refinements.rb +18 -0
  18. data/lib/inversion/renderstate.rb +24 -25
  19. data/lib/inversion/sinatra.rb +0 -1
  20. data/lib/inversion/template/attrtag.rb +7 -5
  21. data/lib/inversion/template/begintag.rb +0 -1
  22. data/lib/inversion/template/calltag.rb +0 -1
  23. data/lib/inversion/template/codetag.rb +37 -28
  24. data/lib/inversion/template/commenttag.rb +0 -1
  25. data/lib/inversion/template/configtag.rb +3 -4
  26. data/lib/inversion/template/containertag.rb +1 -2
  27. data/lib/inversion/template/defaulttag.rb +1 -2
  28. data/lib/inversion/template/elsetag.rb +0 -1
  29. data/lib/inversion/template/elsiftag.rb +0 -1
  30. data/lib/inversion/template/endtag.rb +2 -3
  31. data/lib/inversion/template/escapetag.rb +1 -2
  32. data/lib/inversion/template/fortag.rb +2 -3
  33. data/lib/inversion/template/fragmenttag.rb +1 -2
  34. data/lib/inversion/template/iftag.rb +3 -1
  35. data/lib/inversion/template/importtag.rb +2 -3
  36. data/lib/inversion/template/includetag.rb +1 -2
  37. data/lib/inversion/template/node.rb +4 -5
  38. data/lib/inversion/template/pptag.rb +1 -2
  39. data/lib/inversion/template/publishtag.rb +2 -3
  40. data/lib/inversion/template/rescuetag.rb +1 -2
  41. data/lib/inversion/template/subscribetag.rb +3 -4
  42. data/lib/inversion/template/tag.rb +3 -4
  43. data/lib/inversion/template/textnode.rb +1 -2
  44. data/lib/inversion/template/timedeltatag.rb +1 -2
  45. data/lib/inversion/template/unlesstag.rb +0 -1
  46. data/lib/inversion/template/uriencodetag.rb +1 -2
  47. data/lib/inversion/template/yieldtag.rb +0 -1
  48. data/lib/inversion/template.rb +18 -22
  49. data/lib/inversion/tilt.rb +1 -2
  50. data/lib/inversion.rb +2 -3
  51. data/spec/helpers.rb +19 -13
  52. data/spec/inversion/mixins_spec.rb +1 -1
  53. data/spec/inversion/monkeypatches_spec.rb +1 -1
  54. data/spec/inversion/parser_spec.rb +1 -1
  55. data/spec/inversion/renderstate_spec.rb +1 -1
  56. data/spec/inversion/sinatra_spec.rb +1 -1
  57. data/spec/inversion/template/attrtag_spec.rb +1 -1
  58. data/spec/inversion/template/begintag_spec.rb +1 -1
  59. data/spec/inversion/template/calltag_spec.rb +1 -1
  60. data/spec/inversion/template/codetag_spec.rb +24 -1
  61. data/spec/inversion/template/commenttag_spec.rb +1 -1
  62. data/spec/inversion/template/configtag_spec.rb +1 -1
  63. data/spec/inversion/template/containertag_spec.rb +1 -1
  64. data/spec/inversion/template/defaulttag_spec.rb +1 -1
  65. data/spec/inversion/template/elsetag_spec.rb +1 -1
  66. data/spec/inversion/template/elsiftag_spec.rb +1 -1
  67. data/spec/inversion/template/endtag_spec.rb +1 -1
  68. data/spec/inversion/template/escapetag_spec.rb +1 -1
  69. data/spec/inversion/template/fortag_spec.rb +1 -1
  70. data/spec/inversion/template/fragmenttag_spec.rb +1 -1
  71. data/spec/inversion/template/iftag_spec.rb +1 -1
  72. data/spec/inversion/template/importtag_spec.rb +1 -1
  73. data/spec/inversion/template/includetag_spec.rb +1 -1
  74. data/spec/inversion/template/node_spec.rb +1 -1
  75. data/spec/inversion/template/pptag_spec.rb +1 -1
  76. data/spec/inversion/template/publishtag_spec.rb +1 -1
  77. data/spec/inversion/template/rescuetag_spec.rb +1 -1
  78. data/spec/inversion/template/subscribetag_spec.rb +1 -1
  79. data/spec/inversion/template/tag_spec.rb +1 -1
  80. data/spec/inversion/template/textnode_spec.rb +1 -1
  81. data/spec/inversion/template/timedeltatag_spec.rb +1 -1
  82. data/spec/inversion/template/unlesstag_spec.rb +1 -1
  83. data/spec/inversion/template/uriencodetag_spec.rb +1 -1
  84. data/spec/inversion/template/yieldtag_spec.rb +1 -1
  85. data/spec/inversion/template_spec.rb +1 -1
  86. data/spec/inversion/tilt_spec.rb +1 -1
  87. data/spec/inversion_spec.rb +1 -1
  88. data.tar.gz.sig +0 -0
  89. metadata +59 -45
  90. metadata.gz.sig +0 -0
  91. data/Examples.rdoc +0 -134
  92. data/GettingStarted.rdoc +0 -44
  93. data/Guide.rdoc +0 -47
  94. data/Manifest.txt +0 -86
  95. data/Rakefile +0 -7
  96. data/Tags.rdoc +0 -560
  97. data/lib/inversion/command.rb +0 -278
  98. data/lib/inversion/monkeypatches.rb +0 -21
@@ -5,7 +5,7 @@ require_relative '../../helpers'
5
5
 
6
6
  require 'inversion/template/node'
7
7
 
8
- describe Inversion::Template::Node do
8
+ RSpec.describe Inversion::Template::Node do
9
9
 
10
10
  let( :concrete_subclass ) { Class.new(Inversion::Template::Node) }
11
11
 
@@ -5,7 +5,7 @@ require_relative '../../helpers'
5
5
 
6
6
  require 'inversion/template/pptag'
7
7
 
8
- describe Inversion::Template::PpTag do
8
+ RSpec.describe Inversion::Template::PpTag do
9
9
 
10
10
  before( :each ) do
11
11
  @attribute_object = double( "template attribute" )
@@ -5,7 +5,7 @@ require_relative '../../helpers'
5
5
 
6
6
  require 'inversion/template/publishtag'
7
7
 
8
- describe Inversion::Template::PublishTag do
8
+ RSpec.describe Inversion::Template::PublishTag do
9
9
 
10
10
  class TestSubscriber
11
11
  def initialize
@@ -9,7 +9,7 @@ require 'inversion/template/commenttag'
9
9
  require 'inversion/template/fortag'
10
10
  require 'inversion/renderstate'
11
11
 
12
- describe Inversion::Template::RescueTag do
12
+ RSpec.describe Inversion::Template::RescueTag do
13
13
 
14
14
  it "handles a non-existant body" do
15
15
  tag = Inversion::Template::RescueTag.new( nil )
@@ -7,7 +7,7 @@ require 'inversion/template'
7
7
  require 'inversion/template/textnode'
8
8
  require 'inversion/template/subscribetag'
9
9
 
10
- describe Inversion::Template::SubscribeTag do
10
+ RSpec.describe Inversion::Template::SubscribeTag do
11
11
 
12
12
 
13
13
  it "raises a parse error if the key isn't a simple attribute" do
@@ -5,7 +5,7 @@ require_relative '../../helpers'
5
5
 
6
6
  require 'inversion/template/tag'
7
7
 
8
- describe Inversion::Template::Tag do
8
+ RSpec.describe Inversion::Template::Tag do
9
9
 
10
10
  before( :all ) do
11
11
  @real_derivatives = Inversion::Template::Tag.derivatives.dup
@@ -5,7 +5,7 @@ require_relative '../../helpers'
5
5
 
6
6
  require 'inversion/template/textnode'
7
7
 
8
- describe Inversion::Template::TextNode do
8
+ RSpec.describe Inversion::Template::TextNode do
9
9
 
10
10
  before( :each ) do
11
11
  @state = Inversion::RenderState.new
@@ -5,7 +5,7 @@ require_relative '../../helpers'
5
5
 
6
6
  require 'inversion/template/timedeltatag'
7
7
 
8
- describe Inversion::Template::TimeDeltaTag do
8
+ RSpec.describe Inversion::Template::TimeDeltaTag do
9
9
 
10
10
  MINUTES = 60
11
11
  HOURS = 60 * MINUTES
@@ -7,7 +7,7 @@ require 'inversion/template/unlesstag'
7
7
  require 'inversion/template/textnode'
8
8
  require 'inversion/renderstate'
9
9
 
10
- describe Inversion::Template::UnlessTag do
10
+ RSpec.describe Inversion::Template::UnlessTag do
11
11
 
12
12
 
13
13
  it "renders its contents if its attribute is false" do
@@ -5,7 +5,7 @@ require_relative '../../helpers'
5
5
 
6
6
  require 'inversion/template/uriencodetag'
7
7
 
8
- describe Inversion::Template::UriencodeTag do
8
+ RSpec.describe Inversion::Template::UriencodeTag do
9
9
 
10
10
  before( :each ) do
11
11
  @attribute_object = double( "template attribute" )
@@ -5,7 +5,7 @@ require_relative '../../helpers'
5
5
 
6
6
  require 'inversion/template/yieldtag'
7
7
 
8
- describe Inversion::Template::YieldTag do
8
+ RSpec.describe Inversion::Template::YieldTag do
9
9
 
10
10
 
11
11
  it "calls the renderstate's block before rendering, and renders as its return value" do
@@ -7,7 +7,7 @@ require 'stringio'
7
7
 
8
8
  require 'inversion/template'
9
9
 
10
- describe Inversion::Template do
10
+ RSpec.describe Inversion::Template do
11
11
 
12
12
  before( :all ) do
13
13
  @default_template_path = Inversion::Template.template_paths
@@ -12,7 +12,7 @@ rescue LoadError => err
12
12
  $tilt_support = false
13
13
  end
14
14
 
15
- describe "Tilt support", :if => $tilt_support do
15
+ RSpec.describe "Tilt support", :if => $tilt_support do
16
16
 
17
17
  before( :all ) do
18
18
  setup_logging( :fatal )
@@ -5,7 +5,7 @@ require_relative 'helpers'
5
5
 
6
6
  require 'inversion'
7
7
 
8
- describe Inversion do
8
+ RSpec.describe Inversion do
9
9
 
10
10
  it "defines a version" do
11
11
  expect( described_class::VERSION ).to match( /^\d+(\.\d+)*$/ )
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inversion
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Granger
@@ -11,9 +11,9 @@ bindir: bin
11
11
  cert_chain:
12
12
  - |
13
13
  -----BEGIN CERTIFICATE-----
14
- MIIENDCCApygAwIBAgIBATANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDDBdnZWQv
15
- REM9RmFlcmllTVVEL0RDPW9yZzAeFw0xOTEwMDkwMDM2NTdaFw0yMDEwMDgwMDM2
16
- NTdaMCIxIDAeBgNVBAMMF2dlZC9EQz1GYWVyaWVNVUQvREM9b3JnMIIBojANBgkq
14
+ MIID+DCCAmCgAwIBAgIBBDANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDDBdnZWQv
15
+ REM9RmFlcmllTVVEL0RDPW9yZzAeFw0yMjAxMDcyMzU4MTRaFw0yMzAxMDcyMzU4
16
+ MTRaMCIxIDAeBgNVBAMMF2dlZC9EQz1GYWVyaWVNVUQvREM9b3JnMIIBojANBgkq
17
17
  hkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAvyVhkRzvlEs0fe7145BYLfN6njX9ih5H
18
18
  L60U0p0euIurpv84op9CNKF9tx+1WKwyQvQP7qFGuZxkSUuWcP/sFhDXL1lWUuIl
19
19
  M4uHbGCRmOshDrF4dgnBeOvkHr1fIhPlJm5FO+Vew8tSQmlDsosxLUx+VB7DrVFO
@@ -22,77 +22,90 @@ cert_chain:
22
22
  vQ66lts4alKC69TE5cuKasWBm+16A4aEe3XdZBRNmtOu/g81gvwA7fkJHKllJuaI
23
23
  dXzdHqq+zbGZVSQ7pRYHYomD0IiDe1DbIouFnPWmagaBnGHwXkDT2bKKP+s2v21m
24
24
  ozilJg4aar2okb/RA6VS87o+d7g6LpDDMMQjH4G9OPnJENLdhu8KnPw/ivSVvQw7
25
- N2I4L/ZOIe2DIVuYH7aLHfjZDQv/mNgpAgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYD
26
- VR0PBAQDAgSwMB0GA1UdDgQWBBRyjf55EbrHagiRLqt5YAd3yb8k4DAcBgNVHREE
27
- FTATgRFnZWRARmFlcmllTVVELm9yZzAcBgNVHRIEFTATgRFnZWRARmFlcmllTVVE
28
- Lm9yZzANBgkqhkiG9w0BAQsFAAOCAYEAFqsr6o0SvQRgjQVmhbQvExRnCMCoW1yb
29
- FJiN7A5RA2Iy2E61OG1Ul5nGmaDmx/PNB/6JIbIV3B9Uq8aTZx4uOjK7r8vMl1/t
30
- ZfY7r6HejJfXlcO2m6JDMbpdyEVv916LncBkzZRz6vnnNCx+31f15FKddxujpAFd
31
- qpn3JRQY+oj7ZkoccL/IUiDpxQWeS3oOoz9qr2kVTp8R50InZimt79FqCl/1m66W
32
- kdOuf+wM3DDx7Rt4IVNHrhGlyfMr7xjKW1Q3gll+pMN1DT6Ajx/t3JDSEg7BnnEW
33
- r7AciSO6J4ApUdqyG+coLFlGdtgFTgRHv7ihbQtDI7Z/LV7A4Spn1j2PK3j0Omri
34
- kSl1hPVigRytfgdVGiLXzvkkrkgj9EknCaj5UHbac7XvVBrljXj9hsnnqTANaKsg
35
- jBZSA+N+xUTgUWpXjjwsLZjzJkhWATJWq+krNXcqpwXo6HsjmdUxoFMt63RBb+sI
36
- XrxOxp8o0uOkU7FdLSGsyqJ2LzsR4obN
25
+ N2I4L/ZOIe2DIVuYH7aLHfjZDQv/mNgpAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYD
26
+ VR0PBAQDAgSwMB0GA1UdDgQWBBRyjf55EbrHagiRLqt5YAd3yb8k4DANBgkqhkiG
27
+ 9w0BAQsFAAOCAYEASrm1AbEoxACZ9WXJH3R5axV3U0CA4xaETlL2YT+2nOfVBMQ9
28
+ 0ZlkPx6j4ghKJgAIi1TMfDM2JyPJsppQh8tiNccDjWc62UZRY/dq26cMqf/lcI+a
29
+ 6YBuEYvzZfearwVs8tHnXtwYV3WSCoCOQaB+nq2lA1O+nkKNl41WOsVbNama5jx3
30
+ 8cQtVSEEmZy6jIDJ8c5TmBJ7BQUDEUEWA/A3V42Xyctoj7DvUXWE0lP+X6ypAVSr
31
+ lFh3TS64D7NTvxkmg7natUoCvobl6kGl4yMaqE4YRTlfuzhpf91TSOntClqrAOsS
32
+ K1s56WndQj3IoBocdY9mQhDZLtLHofSkymoP8btBlj5SsN24TiF0VMSZlctSCYZg
33
+ GKyHim/MMlIfGOWsgfioq5jzwmql7W4CDubbb8Lkg70v+hN2E/MnNVAcNE3gyaGc
34
+ P5YP5BAbNW+gvd3QHRiWTTuhgHrdDnGdXg93N2M5KHn1ug8BtPLQwlcFwEpKnlLn
35
+ btEP+7EplFuoiMfd
37
36
  -----END CERTIFICATE-----
38
- date: 2020-09-29 00:00:00.000000000 Z
37
+ date: 2022-12-21 00:00:00.000000000 Z
39
38
  dependencies:
40
39
  - !ruby/object:Gem::Dependency
41
- name: highline
40
+ name: loggability
42
41
  requirement: !ruby/object:Gem::Requirement
43
42
  requirements:
44
43
  - - "~>"
45
44
  - !ruby/object:Gem::Version
46
- version: '2.0'
45
+ version: '0.17'
47
46
  type: :runtime
48
47
  prerelease: false
49
48
  version_requirements: !ruby/object:Gem::Requirement
50
49
  requirements:
51
50
  - - "~>"
52
51
  - !ruby/object:Gem::Version
53
- version: '2.0'
52
+ version: '0.17'
54
53
  - !ruby/object:Gem::Dependency
55
- name: loggability
54
+ name: sysexits
56
55
  requirement: !ruby/object:Gem::Requirement
57
56
  requirements:
58
57
  - - "~>"
59
58
  - !ruby/object:Gem::Version
60
- version: '0.17'
59
+ version: '1.2'
61
60
  type: :runtime
62
61
  prerelease: false
63
62
  version_requirements: !ruby/object:Gem::Requirement
64
63
  requirements:
65
64
  - - "~>"
66
65
  - !ruby/object:Gem::Version
67
- version: '0.17'
66
+ version: '1.2'
68
67
  - !ruby/object:Gem::Dependency
69
- name: sysexits
68
+ name: gli
70
69
  requirement: !ruby/object:Gem::Requirement
71
70
  requirements:
72
71
  - - "~>"
73
72
  - !ruby/object:Gem::Version
74
- version: '1.2'
73
+ version: '2.21'
75
74
  type: :runtime
76
75
  prerelease: false
77
76
  version_requirements: !ruby/object:Gem::Requirement
78
77
  requirements:
79
78
  - - "~>"
80
79
  - !ruby/object:Gem::Version
81
- version: '1.2'
80
+ version: '2.21'
81
+ - !ruby/object:Gem::Dependency
82
+ name: tty-prompt
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '0.23'
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '0.23'
82
95
  - !ruby/object:Gem::Dependency
83
- name: trollop
96
+ name: pastel
84
97
  requirement: !ruby/object:Gem::Requirement
85
98
  requirements:
86
99
  - - "~>"
87
100
  - !ruby/object:Gem::Version
88
- version: '2.9'
101
+ version: '0.8'
89
102
  type: :runtime
90
103
  prerelease: false
91
104
  version_requirements: !ruby/object:Gem::Requirement
92
105
  requirements:
93
106
  - - "~>"
94
107
  - !ruby/object:Gem::Version
95
- version: '2.9'
108
+ version: '0.8'
96
109
  - !ruby/object:Gem::Dependency
97
110
  name: rack-test
98
111
  requirement: !ruby/object:Gem::Requirement
@@ -113,14 +126,14 @@ dependencies:
113
126
  requirements:
114
127
  - - "~>"
115
128
  - !ruby/object:Gem::Version
116
- version: '0.14'
129
+ version: '0.21'
117
130
  type: :development
118
131
  prerelease: false
119
132
  version_requirements: !ruby/object:Gem::Requirement
120
133
  requirements:
121
134
  - - "~>"
122
135
  - !ruby/object:Gem::Version
123
- version: '0.14'
136
+ version: '0.21'
124
137
  - !ruby/object:Gem::Dependency
125
138
  name: rdoc
126
139
  requirement: !ruby/object:Gem::Requirement
@@ -136,19 +149,19 @@ dependencies:
136
149
  - !ruby/object:Gem::Version
137
150
  version: '6.2'
138
151
  - !ruby/object:Gem::Dependency
139
- name: rdoc-generator-fivefish
152
+ name: rdoc-generator-sixfish
140
153
  requirement: !ruby/object:Gem::Requirement
141
154
  requirements:
142
155
  - - "~>"
143
156
  - !ruby/object:Gem::Version
144
- version: '0.4'
157
+ version: '0.1'
145
158
  type: :development
146
159
  prerelease: false
147
160
  version_requirements: !ruby/object:Gem::Requirement
148
161
  requirements:
149
162
  - - "~>"
150
163
  - !ruby/object:Gem::Version
151
- version: '0.4'
164
+ version: '0.1'
152
165
  - !ruby/object:Gem::Dependency
153
166
  name: rspec-wait
154
167
  requirement: !ruby/object:Gem::Requirement
@@ -231,21 +244,22 @@ executables:
231
244
  extensions: []
232
245
  extra_rdoc_files: []
233
246
  files:
234
- - Examples.rdoc
235
- - GettingStarted.rdoc
236
- - Guide.rdoc
237
- - History.rdoc
238
- - Manifest.txt
239
- - README.rdoc
240
- - Rakefile
241
- - Tags.rdoc
247
+ - Examples.md
248
+ - GettingStarted.md
249
+ - Guide.md
250
+ - History.md
251
+ - README.md
252
+ - Tags.md
242
253
  - bin/inversion
243
254
  - lib/inversion.rb
244
- - lib/inversion/command.rb
255
+ - lib/inversion/cli.rb
256
+ - lib/inversion/cli/api.rb
257
+ - lib/inversion/cli/tagtokens.rb
258
+ - lib/inversion/cli/tree.rb
245
259
  - lib/inversion/exceptions.rb
246
260
  - lib/inversion/mixins.rb
247
- - lib/inversion/monkeypatches.rb
248
261
  - lib/inversion/parser.rb
262
+ - lib/inversion/refinements.rb
249
263
  - lib/inversion/renderstate.rb
250
264
  - lib/inversion/sinatra.rb
251
265
  - lib/inversion/template.rb
@@ -340,7 +354,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
340
354
  - !ruby/object:Gem::Version
341
355
  version: '0'
342
356
  requirements: []
343
- rubygems_version: 3.1.2
357
+ rubygems_version: 3.3.7
344
358
  signing_key:
345
359
  specification_version: 4
346
360
  summary: Inversion is a templating system for Ruby.
metadata.gz.sig CHANGED
Binary file
data/Examples.rdoc DELETED
@@ -1,134 +0,0 @@
1
- = Annotated Examples
2
-
3
- This is a list of template examples with annotations explaining what each group of lines is doing.
4
-
5
- == Simple Examples
6
-
7
- ...
8
-
9
-
10
- == Advanced Examples
11
-
12
- Here's a somewhat more complex example. At our company Spime-Thorpe from above, say we're creating a system that will handle mass layoffs without the need for management to handle all those messy personal interactions. We'll need a mass-mailer for the employees that will be afforded the chance to explore their career opportunities, right? So we create a template called +overboard-mail.tmpl+:
13
-
14
- <?config debugging_comments: true ?>
15
- <?default grace_period to "7 days" ?>
16
-
17
- <?begin?>
18
- <p>Dear <?call employee.fullname ?>,</p>
19
- <?rescue DatabaseError ?>
20
- <p>Dear Valued Ex-Employee,</p>
21
- <?end begin?>
22
-
23
- <p>Congratulations! You have been selected by <?call failed_company.name ?>'s
24
- elite management team as one of the many lucky individuals that will
25
- enjoy the exciting challenge of pursuing other rewarding employment
26
- opportunities!</p>
27
-
28
- <p><em>Kudos!</em></p>
29
-
30
- <p>You will find your accounts have been disabled, your desk has been helpfully
31
- cleared out for you, and all of your personal effects packaged up and
32
- delivered to your address of record approximately
33
- <?timedelta tracking_info.delivery_date ?>:</p>
34
-
35
- <?for line in employee.address ?>
36
- <?attr line ?><br />
37
- <?end for ?>
38
-
39
- <p>Please visit your <a href="[?call config.overboard_url ?]/[?uriencode
40
- failed_company.id ?]/[?uriencode employee.id ?]">customized Man OverBoard
41
- transition site</a> immediately:</p>
42
-
43
- <p>This will acknowledge that you have received this message, and automatically
44
- disable your email account. Be sure and save this message!</p>
45
-
46
- <?if employee.severance_amount.nonzero? ?>
47
- <p>Failure to acknowledge this message within <?attr grace_period ?> could result
48
- in delay of your final severance pay, in the amount of
49
- <?call "$%0.2f" % employee.severance_amount ?>.</p>
50
- <?else?>
51
- <p>Failure to acknowledge this message within <?attr grace_period ?> will
52
- result in automatic forfeiture of your numerous Man Overboard package benefits.</p>
53
- <?end if?>
54
-
55
- <?comment Disabled at client request ?>
56
- If you have any questions or concerns, please don't hesitate to contact your
57
- friendly Spime-Thorpe <a href="mailto:salesteam2@spime-thorpe.com">representative</a>.
58
- <?end comment ?>
59
-
60
- <p>Good Luck,<br />
61
- Your friends at Spime-Thorpe, Inc!<br />
62
- <a href="http://www.spime-thorpe.com/">http://www.spime-thorpe.com/</a></p>
63
-
64
- When wrapped with a layout template, here's what this renders as:
65
-
66
- <?example { language: xml, caption: "The rendered output for one lucky individual" } ?>
67
- <!DOCTYPE html>
68
- <!--
69
-
70
- Spime-Thorpe!
71
- $Id$
72
-
73
- -->
74
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
75
- <head>
76
- <title>Spime-Thorpe: Untitled</title>
77
-
78
- <link rel="stylesheet" src="/css/base.css" type="text/css" />
79
-
80
- <script type="text/javascript" src="/js/jquery-latest.min.js"></script>
81
-
82
- </head>
83
- <body>
84
-
85
- <header>
86
- <hgroup>
87
- <h1>Spime-Thorpe</h1>
88
- <h2></h2>
89
- </hgroup>
90
- </header>
91
-
92
- <section id="content">
93
- <p>Dear James Random,</p>
94
-
95
- <p>Congratulations! You have been selected by Widgets R Us's
96
- elite management team as one of the many lucky individuals that will
97
- enjoy the exciting challenge of pursuing other rewarding employment
98
- opportunities!</p>
99
-
100
- <p><em>Kudos!</em></p>
101
-
102
- <p>You will find your accounts have been disabled, your desk has been helpfully
103
- cleared out for you, and all of your personal effects packaged up and
104
- delivered to your address of record approximately
105
- 3 days ago:</p>
106
-
107
- 1213 NE. Winding Road<br />
108
- Syracuse, NY 100213<br />
109
-
110
- <p>Please visit your <a href="http://failedcompany.spime-thorpe.com/overboard/a18661/1881">
111
- customized Man OverBoard transition site</a> immediately:</p>
112
-
113
- <p>This will acknowledge that you have received this message, and automatically
114
- disable your email account. Be sure and save this message!</p>
115
-
116
- <p>Failure to acknowledge this message within 11 days could result
117
- in delay of your final severance pay, in the amount of
118
- $12.81.</p>
119
-
120
-
121
- <p>Good Luck,<br />
122
- Your friends at Spime-Thorpe, Inc!<br />
123
- <a href="http://www.spime-thorpe.com/">http://www.spime-thorpe.com/</a></p>
124
- </section>
125
-
126
- <footer>
127
- <section id="copyright">Copyright 2011, Spime-Thorpe</section>
128
- </footer>
129
-
130
- </body>
131
- </html>
132
-
133
- This example can be found in the Inversion repository, in the +experiments+ directory.
134
-
data/GettingStarted.rdoc DELETED
@@ -1,44 +0,0 @@
1
- = Getting Started
2
-
3
- == Requirements
4
-
5
- - Ruby 1.9.2 or later
6
-
7
- == Installation
8
-
9
- $ gem install inversion
10
-
11
- == Basic Usage
12
-
13
- Inversion, like most other templating systems, works by giving you a way of defining the static
14
- parts of your output, and then letting you combine that at a later point with the dynamic parts:
15
-
16
- Create the template and use it to render an exciting message:
17
-
18
- tmpl = Inversion::Template.new( "Hello, <?attr name ?>!" )
19
- tmpl.name = "World"
20
- puts tmpl.render
21
-
22
- The +<?attr name ?>+ tag defines the _name_ accessor on the template[rdoc-ref:Templates]
23
- object, the value of which is substituted for any occurrences of +name+ in the template:
24
-
25
- Hello, World!
26
-
27
- This by itself isn't fantastically useful, but it does illustrate one of the ways in which Inversion
28
- is different: the program and the template share data through an API, instead of through a complex
29
- data structure, which establishes a clear delineation between what responsibility is the program's
30
- and which is the template's. The program doesn't have to know how the view uses the data it's given,
31
- and tests of the controller can substitute a Mock Object for the template to test the interaction
32
- between the two instead of having to match patterns in the eventual output like an integration test.
33
-
34
- You can also interact with the values set in the template:
35
-
36
- Name: <?attr employee.full_name ?>
37
-
38
- This will call the #full_name method on whatever is set as the +employee+ attribute when
39
- rendered, and the result will take the place of the tag.
40
-
41
- Inversion also comes with a collection of {other tags}[rdoc-ref:Tags] that
42
- provide flow control, exception-handling, etc.
43
-
44
-
data/Guide.rdoc DELETED
@@ -1,47 +0,0 @@
1
- = Inversion User's Guide
2
-
3
- Inversion is a templating system for Ruby. It uses the Inversion of Control principle to decouple
4
- the contents and structure of the template from the code that uses it, making it easier to use,
5
- test-friendly, and clean.
6
-
7
- {Getting Started}[rdoc-ref:GettingStarted] goes over the requirements, installation, and basic usage of the library.
8
-
9
- The rdoc-ref:Templates topic has more details about how to load templates and control their behavior with options.
10
-
11
- When you're ready to start making your own templates, there's a quick-reference for the list of built-in rdoc-ref:Tags, too.
12
-
13
- Finally, there are a number of {Annotated Examples}[rdoc-ref:Examples] that illustrate how to solve common problems while templating.
14
-
15
-
16
- == Authors
17
-
18
- * Michael Granger
19
- * Mahlon E. Smith
20
-
21
-
22
- == License
23
-
24
- Copyright © 2011-2015, Michael Granger, Mahlon E. Smith
25
- All rights reserved.
26
-
27
- Redistribution and use in source and binary forms, with or without modification, are
28
- permitted provided that the following conditions are met:
29
-
30
- * Redistributions of source code must retain the above copyright notice, this list of
31
- conditions and the following disclaimer.
32
- * Redistributions in binary form must reproduce the above copyright notice, this list of
33
- conditions and the following disclaimer in the documentation and/or other materials
34
- provided with the distribution.
35
- * Neither the name of the authors nor contributors may be used to endorse or promote products
36
- derived from this software without specific prior written permission.
37
-
38
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
39
- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
40
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
41
- COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
42
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
43
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
44
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
45
- TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
46
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
47
-