beta_tools 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. data/.gitignore +11 -0
  2. data/Capfile +2 -0
  3. data/Gemfile +4 -0
  4. data/README +7 -0
  5. data/Rakefile +7 -0
  6. data/beta_tools.gemspec +31 -0
  7. data/bin/deploy +9 -0
  8. data/bin/documentation_daemon +12 -0
  9. data/bin/loginToUrl +6 -0
  10. data/bin/onVpn +6 -0
  11. data/bin/pub +91 -0
  12. data/bin/query_solr +11 -0
  13. data/bin/solrWebApp +6 -0
  14. data/conf/schema.xml +220 -0
  15. data/config/deploy.rb +44 -0
  16. data/config.ru +2 -0
  17. data/docs/#next_design.mmd# +0 -0
  18. data/features/deploy.feature +9 -0
  19. data/features/git.feature +15 -0
  20. data/features/maven.feature +21 -0
  21. data/features/step_definitions/deploy_steps.rb +11 -0
  22. data/features/step_definitions/git_steps.rb +20 -0
  23. data/features/step_definitions/maven_steps.rb +35 -0
  24. data/features/support/env.rb +8 -0
  25. data/int/it_tools/suite_it_tools.rb +2 -0
  26. data/int/it_tools/test_integ1.rb +17 -0
  27. data/lib/beta_tools/version.rb +3 -0
  28. data/lib/beta_tools.rb +5 -0
  29. data/lib/it_tools/calc.rb +14 -0
  30. data/lib/it_tools/config.ru +2 -0
  31. data/lib/it_tools/environment.rb +86 -0
  32. data/lib/it_tools/git.rb +3 -0
  33. data/lib/it_tools/html_publish.rb +287 -0
  34. data/lib/it_tools/mail.rb +21 -0
  35. data/lib/it_tools/maven.rb +101 -0
  36. data/lib/it_tools/md5.rb +4 -0
  37. data/lib/it_tools/multipart.rb +78 -0
  38. data/lib/it_tools/network_tools.rb +72 -0
  39. data/lib/it_tools/options.rb +46 -0
  40. data/lib/it_tools/pub_driver.rb +188 -0
  41. data/lib/it_tools/publisher2.rb +232 -0
  42. data/lib/it_tools/sample.rb +9 -0
  43. data/lib/it_tools/shared.rb +22 -0
  44. data/lib/it_tools/solr.rb +157 -0
  45. data/lib/it_tools/views/search_results.erb +16 -0
  46. data/log/thin.log +177 -0
  47. data/spec/it_tools/deploy_spec.rb +20 -0
  48. data/spec/spec_helper.rb +0 -0
  49. data/test/bin/test_pub.rb +30 -0
  50. data/test/cleaner.rb +6 -0
  51. data/test/driver.rb +24 -0
  52. data/test/integration/tp.rb +107 -0
  53. data/test/it_tools/for_debugger.rb +4 -0
  54. data/test/it_tools/publisher2.rb +13 -0
  55. data/test/it_tools/suite_it_tools.rb +6 -0
  56. data/test/it_tools/suite_it_tools.rb~ +13 -0
  57. data/test/it_tools/test_deploy.rb +83 -0
  58. data/test/it_tools/test_html_publish.rb +54 -0
  59. data/test/it_tools/test_maven.rb +31 -0
  60. data/test/it_tools/test_multipart.rb +31 -0
  61. data/test/it_tools/test_network_tools.rb +14 -0
  62. data/test/it_tools/test_publisher2.rb +42 -0
  63. data/test/it_tools/test_publisher2_support.rb +16 -0
  64. data/test/it_tools/test_sample.rb +10 -0
  65. data/test/it_tools/test_shared.rb +36 -0
  66. data/test/it_tools/test_solr.rb +22 -0
  67. data/test/it_tools/test_solr2.rb +22 -0
  68. data/testdata/assembly_pom.xml +157 -0
  69. data/testdata/desir.txt +39 -0
  70. data/testdata/ear_pom.xml +82 -0
  71. data/testdata/java.html +524 -0
  72. data/testdata/pom.xml +174 -0
  73. data/testdata/publish/src_dir/#arch.mmd# +0 -0
  74. data/testdata/publish/src_dir/ajax-loader.gif +0 -0
  75. data/testdata/publish/src_dir/file1.mmd +5 -0
  76. data/testdata/publish/src_dir/file2.mmd +3 -0
  77. data/testdata/publish/src_dir/file3.abc +0 -0
  78. data/testdata/publish/src_dir/file4.mmd +3 -0
  79. data/testdata/publish/src_dir/help.png +0 -0
  80. data/testdata/publish/src_dir/images/linux.jpeg +0 -0
  81. data/testdata/publish/src_dir/inputStyles.css +0 -0
  82. data/testdata/publish/src_dir/search.html +0 -0
  83. data/testdata/publish/src_dir/search.js +0 -0
  84. data/testdata/publish/target_dir/.@arch.html +0 -0
  85. data/testdata/publish/target_dir/file1.html +7 -0
  86. data/testdata/publish/target_dir/file2.html +5 -0
  87. data/testdata/publish/target_dir/search.js +0 -0
  88. data/testdata/publish/target_dir_static/.@arch.html +1 -0
  89. data/testdata/publish/target_dir_static/file1.html +7 -0
  90. data/testdata/publish/target_dir_static/index.html +1 -0
  91. data/testdata/publish/target_dir_static/style.css +61 -0
  92. data/testdata/ruby.mmd +404 -0
  93. data/testdata/simple.mmd +3 -0
  94. data/testdata/simple.xml +3 -0
  95. data/testdata/small.txt +2 -0
  96. data/testdata/utf8_chars.txt +1 -0
  97. metadata +338 -0
data/testdata/ruby.mmd ADDED
@@ -0,0 +1,404 @@
1
+ # Install - Debian Flavors
2
+
3
+ Ubuntu, Mint
4
+
5
+ [Reference](http://ryanbigg.com/2010/12/ubuntu-ruby-rvm-rails-and-you/)
6
+
7
+ ```bash
8
+ $ sudo apt-get -y install build-essential git-core curl
9
+ $ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
10
+ echo 'source .rvm/scripts/rvm' >> ~/.bashrc; source ~/.bashrc
11
+ $ sudo apt-get install -y --force-yes build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion
12
+ $ rvm install 1.9.2; rvm use 1.9.2; rvm --default use 1.9.2
13
+ ```
14
+
15
+ ## Debugger on Emacs
16
+
17
+ [ref](http://pivotallabs.com/users/chad/blog/articles/366-ruby-debug-in-30-seconds-we-don-t-need-no-stinkin-gui-)
18
+
19
+ For ruby 1.9 do:
20
+
21
+ $ gem install ruby-debug19 ruby-debug-ide
22
+
23
+ get latest ruby-debug-extra from:
24
+
25
+ * http://rubyforge.org/projects/ruby-debug/ > files
26
+
27
+ this needs texlive do (it takes a looooong time to install), also get
28
+ the rdebug cheat sheet:
29
+
30
+ ```bash
31
+ $ sudo apt-get install texlive texinfo
32
+ $ cd Downloads; wget http://rubyforge.org/frs/download.php/73086/ruby-debug-extra-0.10.4.tar.gz; tar xvfz ruby-debug-extra-0.10.4.tar.gz; cd ruby-debug-extra-0.10.4/; ./configure; make; sudo make install
33
+ $ gem install cheat; cheat rdebug
34
+ ```
35
+
36
+ create a file ~/.rdebugrc with this content:
37
+
38
+ ```
39
+ set autolist
40
+ set autoeval
41
+ set autoreload
42
+ ```
43
+
44
+ * autolist - execute 'list' command on every breakpoint
45
+ * autoeval - evaluate every unrecognized command
46
+ * autoreload - enables automatic source code reloading
47
+
48
+ **IMPORTANT**: open emacs from shell to inherit all environment from shell!!!
49
+
50
+ Open your ruby file and type: `M-x rdebug`
51
+
52
+ Key | Effect
53
+ -------------------------------------- | ---------------------
54
+ r | Reload
55
+ n | Next Line (Step Over)
56
+ s | Step Into
57
+ c | Continue
58
+ c[ont][ nnn] | run until program ends or hits breakpoint or reaches line nnn
59
+ where | Display Frame / Call Stack
60
+ b my.rb:10 | set breakpoint at my.rb line 10
61
+ b[reak] file:line [if expr] | breakpoints
62
+ b[reak] class(.|#)method [if expr] | breakpoints
63
+ h | help
64
+ @myvar = 'foo' | Modify a variable
65
+ myvar.class | Evaluate any var/expression
66
+ disp[lay] <expression> | add expression into display expression list
67
+ down [count] | move to lower frame
68
+ e[val] | expression evaluate expression and print its value, alias for p
69
+ q[uit], exit |
70
+ fin[ish] | return to outer frame
71
+ m[ethod] i[nstance] <obj> | show methods of object
72
+ m[ethod] <class|module> | show instance methods of class or module
73
+ n[ext][+][ nnn] | step over once or nnn times, '+' forces to move to another line
74
+ up[count] | move to higher frame
75
+ restart | restart the debugger (say if in (rdb:ctrl) state.
76
+
77
+ # Language Reference
78
+
79
+ ## Define a method
80
+
81
+ ```ruby
82
+ irb(main):019:0> def h(name = "World")
83
+ irb(main):020:1> puts "Hello #{name.capitalize}!"
84
+ irb(main):021:1> end
85
+ => nil
86
+ irb(main):022:0> h "chris"
87
+ Hello Chris!
88
+ => nil
89
+ irb(main):023:0> h
90
+ Hello World!
91
+ => nil
92
+ ```
93
+
94
+ Highlights:
95
+
96
+ * default parameter value: "World", if method called without a param.
97
+
98
+ * `#{}` is string interpolation
99
+
100
+ ## Modules
101
+
102
+ define a module file: `fenton.rb`
103
+
104
+ ```ruby
105
+ module MyModule
106
+ def func1
107
+ puts "Hello"
108
+ end
109
+ end
110
+ ```
111
+
112
+ ### Mixin
113
+
114
+ Modules cannot be instantiated, only included into a class. This is
115
+ called a `mixin`. In file `travers.rb`. Modules can include other
116
+ modules.
117
+
118
+ ```ruby
119
+ require 'fenton'
120
+ class ClassOne
121
+ include MyModule
122
+ def func2
123
+ func1
124
+ end
125
+ end
126
+ ```
127
+
128
+ ### Sharing Code
129
+
130
+ required statement should be following by path and filenames
131
+
132
+ I may define the following in file: `lib/myTools/fenton.rb`
133
+
134
+ ```ruby
135
+ module ItTools
136
+ class VpnTools
137
+ def on_vpn
138
+ puts "hello."
139
+ end
140
+ end
141
+ end
142
+ ```
143
+
144
+ Assuming lib is one of the number of pre-defined directories on your
145
+ system. These paths are defined in a variable called `$LOAD_PATH`
146
+
147
+ To use this in another file I'd do:
148
+
149
+ ```ruby
150
+ require 'myTools/fenton'
151
+ foo = ItTools::VpnTools.new
152
+ foo.on_vpn
153
+ ```
154
+
155
+ ## Exception Handling
156
+
157
+ ```ruby
158
+ begin
159
+ 1/0
160
+ p 'I should never get executed'
161
+ rescue
162
+ p 'I am rescuing an exception and can do what I want!'
163
+ end
164
+ ```
165
+
166
+ ## Inheritance
167
+
168
+ [ref](http://rubylearning.com/satishtalim/ruby_inheritance.html)
169
+
170
+ * A class can only inherit from a *SINGLE* other class.
171
+
172
+
173
+ ```ruby
174
+ class Mammal
175
+ def breathe
176
+ puts "inhale and exhale"
177
+ end
178
+ end
179
+ class Cat < Mammal
180
+ def speak
181
+ puts "Meow"
182
+ end
183
+ end
184
+ rani = Cat.new
185
+ rani.breathe
186
+ rani.speak
187
+ ```
188
+
189
+ ## Command Line Arguments
190
+
191
+ are stored in the array `ARGV`
192
+
193
+ ```ruby
194
+ #!/usr/bin/env ruby
195
+ ARGV.each do|a|
196
+ puts "Argument: #{a}"
197
+ end
198
+ ```
199
+
200
+ # Cook Book
201
+
202
+ ## Creating Gems
203
+
204
+ [Ref](http://blog.thepete.net/2010/11/creating-and-publishing-your-first-ruby.html)
205
+
206
+ In this example we create a gem called: `fentonGem1`
207
+
208
+ ```bash
209
+ $ rvm gemset create fentonGem1
210
+ $ rvm gemset use fentonGem1
211
+ $ gem install bundler
212
+ $ bundle gem fentonGem1
213
+ ```
214
+
215
+ Look at `fentonGem1.gemspec` update summary/description lines:
216
+
217
+ ```ruby
218
+ s.summary = %q{Gem basically does nothing}
219
+ s.description = %q{Gem really doesnt do anything}
220
+ ```
221
+
222
+ ### Create our library function
223
+
224
+ in file: `lib/fentonGem1/do_little.rb
225
+
226
+ ```ruby
227
+ module FentonGem1
228
+ class DoLittle
229
+ def simpleFunc
230
+ time = Time.now
231
+ minute = time.min
232
+ hour = time.hour % 12
233
+ meridian_indicator = time.hour < 12 ? 'AM' : 'PM'
234
+ "#{minute} minutes past #{hour} o'clock, #{meridian_indicator}"
235
+ end
236
+ end
237
+ end
238
+ ```
239
+
240
+ ### Make it scriptable
241
+
242
+ in file: `bin/getTimeNow`
243
+
244
+ ```ruby
245
+ #!/usr/bin/env ruby
246
+ require 'fentonGem1/do_little'
247
+ do_little = FentonGem1::DoLittle.new
248
+ puts do_little.simpleFunc
249
+ ```
250
+
251
+ ### Build Gem and Test
252
+
253
+ Add items into git repository
254
+
255
+ ```bash
256
+ $ git add bin/ lib/*; git commit -am'.'
257
+ ```
258
+
259
+ ```bash
260
+ ~/tmp/fentonGem1$ rake install
261
+ ~/tmp/fentonGem1$ getTimeNow
262
+ ```
263
+
264
+ ### Publish
265
+
266
+ Signup at rubygems.org:
267
+
268
+ [Instructions at rubygems.org](https://rubygems.org/pages/gem_docs)
269
+
270
+ publish with:
271
+
272
+ ```bash
273
+ $ gem push pkg/fentonGem1-0.0.1.gem
274
+ ```
275
+
276
+ # Install - RedHat variants
277
+
278
+ As root
279
+
280
+ ```bash
281
+ # yum install -y curl openssl-devel zlib-devel gcc gcc-c++ make autoconf readline-devel curl-devel expat-devel gettext-devel
282
+ ```
283
+
284
+ As the user who will be using ruby:
285
+
286
+ ```bash
287
+ $ wget https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer
288
+ $ chmod a+x rvm-installer
289
+ $ echo insecure >> ~/.curlrc
290
+ $ ./rvm-installer
291
+ $ source /home/fenton/.bash_profile
292
+ $ rvm install 1.9.3
293
+ $ echo -e "\nrvm use 1.9.3" >> ~/.bash_profile
294
+ ```
295
+
296
+ Log out completely (so .bash_profile gets executed) and log back in.
297
+
298
+ ```bash
299
+ $ ruby --version
300
+ ruby 1.9.3p0 (2011-10-30 revision 33570) [i686-linux]
301
+ ```
302
+
303
+ # Unit Testing
304
+
305
+ [ref](http://www.moseshohman.com/blog/2004/10/13/building-testunit-testsuites-in-ruby/)
306
+
307
+ ## Test Case
308
+
309
+ Folder layout:
310
+
311
+ ```
312
+ it_tools/
313
+ ├── Gemfile
314
+ ├── it_tools.gemspec
315
+ ├── lib
316
+ │ └── it_tools
317
+ │ ├── deploy.rb
318
+ │ ├── it_tools.rb
319
+ │ ├── mail.rb
320
+ │ └── version.rb
321
+ ├── Rakefile
322
+ └── test
323
+ └── it_tools
324
+ └── test_deploy.rb
325
+ ```
326
+
327
+
328
+ Sample test: `test/it_tools/test_deploy.rb`
329
+
330
+ ```ruby
331
+ require "test/unit"
332
+ require 'pathname'
333
+ libpath = Pathname.new(
334
+ File.join(File.dirname(__FILE__), [".."]*2, "lib")
335
+ ).cleanpath.to_s
336
+ $:.unshift(libpath) unless $:.include?(libpath)
337
+
338
+ require "it_tools/deploy"
339
+
340
+ class TestEnvironment < Test::Unit::TestCase
341
+ def test_get_deploy_dir
342
+ env = Deployment::Environment.new
343
+ assert_equal('/scratch/ngsp/hrmsToCrmod', env.get_deploy_dir('dev'))
344
+ end
345
+ end
346
+ ```
347
+
348
+ This stuff:
349
+
350
+ ```ruby
351
+ require 'pathname'
352
+ libpath = Pathname.new(
353
+ File.join(File.dirname(__FILE__), [".."]*2, "lib")
354
+ ).cleanpath.to_s
355
+ $:.unshift(libpath) unless $:.include?(libpath)
356
+ ```
357
+
358
+ ensures that `lib` is on your load path, so you can test now with:
359
+
360
+ ```bash
361
+ ~/projects/it_tools $ ruby test/it_tools/test_deploy.rb
362
+ ```
363
+
364
+ ## Test Suite
365
+
366
+ Layout:
367
+
368
+ ```
369
+ it_tools/
370
+ ├── Gemfile
371
+ ├── it_tools.gemspec
372
+ ├── lib
373
+ │ └── it_tools
374
+ │ ├── deploy.rb
375
+ │ ├── it_tools.rb
376
+ │ ├── mail.rb
377
+ │ └── version.rb
378
+ ├── Rakefile
379
+ └── test
380
+ └── it_tools
381
+ ├── suite_it_tools.rb
382
+ └── test_deploy.rb
383
+ ```
384
+
385
+ file: `test/it_tools/suite_it_tools.rb
386
+
387
+ ```ruby
388
+ require 'pathname'
389
+ testpath = Pathname.new(
390
+ File.join(File.dirname(__FILE__), ".."*1)
391
+ ).cleanpath.to_s
392
+ $:.unshift(testpath) unless $:.include?(testpath)
393
+
394
+ require 'it_tools/test_deploy'
395
+
396
+ te = TestDeployment::TestEnvironment.new("TestEnvironment")
397
+ te.test_get_deploy_dir
398
+ ```
399
+
400
+ test with:
401
+
402
+ ```bash
403
+ ~/projects/it_tools $ ruby test/it_tools/suite_it_tools.rb
404
+ ```
@@ -0,0 +1,3 @@
1
+ # Hello
2
+
3
+ Body
@@ -0,0 +1,3 @@
1
+ <fenton>
2
+ <name>Travers</name>
3
+ </fenton>
@@ -0,0 +1,2 @@
1
+ This is a small file.
2
+ Fenton Oliver Travers.
@@ -0,0 +1 @@
1
+ Oracle® Data