mugen 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. data/.gitignore +2 -0
  2. data/.travis.yml +5 -0
  3. data/CHANGELOG.md +3 -0
  4. data/Gemfile +5 -0
  5. data/LICENSE +20 -0
  6. data/README.md +65 -0
  7. data/Rakefile +31 -0
  8. data/autotest/discover.rb +1 -0
  9. data/generators/README +3 -0
  10. data/generators/USAGE +34 -0
  11. data/generators/mugen_generator.rb +63 -0
  12. data/generators/templates/app/controllers/mygengo/account_controller.rb +10 -0
  13. data/generators/templates/app/controllers/mygengo/comments_controller.rb +6 -0
  14. data/generators/templates/app/controllers/mygengo/jobs_controller.rb +153 -0
  15. data/generators/templates/app/helpers/mugen_helper.rb +11 -0
  16. data/generators/templates/app/views/layouts/mygengo.html.erb +52 -0
  17. data/generators/templates/app/views/mygengo/account/_balance.haml +5 -0
  18. data/generators/templates/app/views/mygengo/account/_stats.haml +9 -0
  19. data/generators/templates/app/views/mygengo/account/index.haml +3 -0
  20. data/generators/templates/app/views/mygengo/comments/_comment.haml +7 -0
  21. data/generators/templates/app/views/mygengo/comments/_form.haml +10 -0
  22. data/generators/templates/app/views/mygengo/jobs/_comments.haml +8 -0
  23. data/generators/templates/app/views/mygengo/jobs/_feedback.haml +8 -0
  24. data/generators/templates/app/views/mygengo/jobs/_job.haml +36 -0
  25. data/generators/templates/app/views/mygengo/jobs/_revision.haml +2 -0
  26. data/generators/templates/app/views/mygengo/jobs/index.haml +8 -0
  27. data/generators/templates/app/views/mygengo/jobs/new.haml +53 -0
  28. data/generators/templates/app/views/mygengo/jobs/reject_form.haml +36 -0
  29. data/generators/templates/app/views/mygengo/jobs/review_form.haml +54 -0
  30. data/generators/templates/app/views/mygengo/jobs/revise_form.haml +7 -0
  31. data/generators/templates/app/views/mygengo/jobs/revision.haml +8 -0
  32. data/generators/templates/app/views/mygengo/jobs/show.haml +38 -0
  33. data/generators/templates/config/initializers/mugen.rb +2 -0
  34. data/generators/templates/config/routes.rb +16 -0
  35. data/generators/templates/public/stylesheets/mygengo/base.css +397 -0
  36. data/generators/templates/public/stylesheets/mygengo/mugen.css +117 -0
  37. data/generators/templates/public/stylesheets/mygengo/override.css +1 -0
  38. data/generators/templates/public/stylesheets/mygengo/scaffold.css +56 -0
  39. data/generators/templates/public/stylesheets/mygengo/style.css +373 -0
  40. data/lib/generators/mugen/README +3 -0
  41. data/lib/generators/mugen/USAGE +35 -0
  42. data/lib/generators/mugen/mugen_generator.rb +50 -0
  43. data/lib/generators/mugen/templates/app/controllers/mygengo/account_controller.rb +10 -0
  44. data/lib/generators/mugen/templates/app/controllers/mygengo/comments_controller.rb +6 -0
  45. data/lib/generators/mugen/templates/app/controllers/mygengo/jobs_controller.rb +153 -0
  46. data/lib/generators/mugen/templates/app/controllers/mygengo/mygengo_controller.rb +18 -0
  47. data/lib/generators/mugen/templates/app/helpers/mugen_helper.rb +11 -0
  48. data/lib/generators/mugen/templates/app/views/layouts/mygengo.html.erb +52 -0
  49. data/lib/generators/mugen/templates/app/views/mygengo/account/_balance.haml +5 -0
  50. data/lib/generators/mugen/templates/app/views/mygengo/account/_stats.haml +9 -0
  51. data/lib/generators/mugen/templates/app/views/mygengo/account/index.haml +3 -0
  52. data/lib/generators/mugen/templates/app/views/mygengo/comments/_comment.haml +7 -0
  53. data/lib/generators/mugen/templates/app/views/mygengo/comments/_form.haml +10 -0
  54. data/lib/generators/mugen/templates/app/views/mygengo/jobs/_comments.haml +8 -0
  55. data/lib/generators/mugen/templates/app/views/mygengo/jobs/_feedback.haml +8 -0
  56. data/lib/generators/mugen/templates/app/views/mygengo/jobs/_job.haml +36 -0
  57. data/lib/generators/mugen/templates/app/views/mygengo/jobs/_revision.haml +2 -0
  58. data/lib/generators/mugen/templates/app/views/mygengo/jobs/index.haml +8 -0
  59. data/lib/generators/mugen/templates/app/views/mygengo/jobs/new.haml +53 -0
  60. data/lib/generators/mugen/templates/app/views/mygengo/jobs/reject_form.haml +36 -0
  61. data/lib/generators/mugen/templates/app/views/mygengo/jobs/review_form.haml +54 -0
  62. data/lib/generators/mugen/templates/app/views/mygengo/jobs/revise_form.haml +7 -0
  63. data/lib/generators/mugen/templates/app/views/mygengo/jobs/revision.haml +8 -0
  64. data/lib/generators/mugen/templates/app/views/mygengo/jobs/show.haml +38 -0
  65. data/lib/generators/mugen/templates/config/initializers/mugen.rb +2 -0
  66. data/lib/generators/mugen/templates/config/routes2.rb +16 -0
  67. data/lib/generators/mugen/templates/config/routes3.rb +17 -0
  68. data/lib/generators/mugen/templates/public/images/mygengo/blank +0 -0
  69. data/lib/generators/mugen/templates/public/stylesheets/mygengo/base.css +397 -0
  70. data/lib/generators/mugen/templates/public/stylesheets/mygengo/mugen.css +117 -0
  71. data/lib/generators/mugen/templates/public/stylesheets/mygengo/override.css +1 -0
  72. data/lib/generators/mugen/templates/public/stylesheets/mygengo/scaffold.css +56 -0
  73. data/lib/generators/mugen/templates/public/stylesheets/mygengo/style.css +373 -0
  74. data/lib/mugen.rb +73 -0
  75. data/lib/mugen/account.rb +27 -0
  76. data/lib/mugen/client.rb +33 -0
  77. data/lib/mugen/core_extensions.rb +32 -0
  78. data/lib/mugen/httparty_extensions.rb +26 -0
  79. data/lib/mugen/job.rb +169 -0
  80. data/lib/mugen/jobs.rb +42 -0
  81. data/lib/mugen/service.rb +30 -0
  82. data/lib/mugen/version.rb +3 -0
  83. data/lib/tasks/mugen.rake +5 -0
  84. data/mugen.gemspec +33 -0
  85. data/rails/init.rb +1 -0
  86. data/spec/account_spec.rb +22 -0
  87. data/spec/job_spec.rb +40 -0
  88. data/spec/jobs_spec.rb +33 -0
  89. data/spec/mugen_spec.rb +33 -0
  90. data/spec/service_spec.rb +21 -0
  91. data/spec/spec_helper.rb +4 -0
  92. metadata +191 -0
@@ -0,0 +1,2 @@
1
+ pkg
2
+ *.lock
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - "1.9.2"
4
+ script:
5
+ - bundle exec rspec spec/
@@ -0,0 +1,3 @@
1
+ ## 0.0.1 (January 2, 2011)
2
+
3
+ Features:
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
4
+
5
+ gem 'rake'
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 Vladimir Penkin
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,65 @@
1
+ [![Build Status](https://secure.travis-ci.org/shell/mugen.png)](https://secure.travis-ci.org/shell/mugen.png)
2
+ ## Introduction
3
+ Mugen is API wrapper for MyGengo(<http://mygengo.com/>) and scaffold generator for existing rails app
4
+
5
+ ## Installation
6
+ Working best with Rails3 and jQuery
7
+
8
+ ## Rails 3.x
9
+
10
+ Add gems to your Gemfile and bundle install it:
11
+ gem 'haml'
12
+ gem 'mugen'
13
+
14
+ Generate scaffold:
15
+ $ rails generate mugen
16
+
17
+ Install rails3_before_render plugin
18
+ $ rails plugin install git://github.com/shell/rails3_before_render.git
19
+
20
+ Configure API keys in config/initializers/mugen.rb:
21
+ Mugen.api_key = ''
22
+ Mugen.private_key = ''
23
+
24
+ Start server and enjoy
25
+
26
+ ## Rails 2.x
27
+ Add gems to config/environment.rb
28
+ config.gem 'haml'
29
+ config.gem 'mugen'
30
+
31
+ Next install gems via
32
+ gem install mugen
33
+ or
34
+ rake gems:install
35
+
36
+ Next generate scaffold
37
+
38
+ $ script/generate mugen
39
+
40
+ Install rails3_before_render plugin
41
+ $ rails plugin install git://github.com/shell/rails3_before_render.git
42
+
43
+ Configure API keys in config/initializers/mugen.rb
44
+ Start server and enjoy
45
+
46
+ ## Usage
47
+ See routes.rb for url mappings.
48
+ Default page is here (<http://localhost:3000/mygengo/account>)
49
+
50
+ ## Debugging
51
+
52
+ To debug http-requests, uncomment following line in lib/mugen/client.rb:
53
+
54
+ debug_output $stderr
55
+
56
+ ## TODO
57
+ - remove csrf_tag in layout file for rails2
58
+ - I18n
59
+ - made js agnostic
60
+ - cover everything with tests
61
+ - Something really bad happening with css
62
+
63
+
64
+ ## Author
65
+ Copyright (c) 2011 Vladimir Penkin
@@ -0,0 +1,31 @@
1
+ begin
2
+ require "bundler"
3
+ Bundler.setup
4
+ rescue LoadError
5
+ $stderr.puts "You need to have Bundler installed to be able build this gem."
6
+ end
7
+
8
+ gemspec = eval(File.read(Dir["*.gemspec"].first))
9
+
10
+
11
+ desc "Validate the gemspec"
12
+ task :gemspec do
13
+ gemspec.validate
14
+ end
15
+
16
+ desc "Build gem locally"
17
+ task :build => :gemspec do
18
+ system "gem build #{gemspec.name}.gemspec"
19
+ FileUtils.mkdir_p "pkg"
20
+ FileUtils.mv "#{gemspec.name}-#{gemspec.version}.gem", "pkg"
21
+ end
22
+
23
+ desc "Install gem locally"
24
+ task :install => :build do
25
+ system "gem install pkg/#{gemspec.name}-#{gemspec.version}"
26
+ end
27
+
28
+ desc "Clean automatically generated files"
29
+ task :clean do
30
+ FileUtils.rm_rf "pkg"
31
+ end
@@ -0,0 +1 @@
1
+ Autotest.add_discovery { "rspec2" }
@@ -0,0 +1,3 @@
1
+ This directory is for the Rails 2.x generator.
2
+
3
+ The (Thor-based) Rails 3 generator is in lib/generators.
@@ -0,0 +1,34 @@
1
+ Description:
2
+ Generates MyGengo scaffold for your app
3
+
4
+ Example:
5
+ script/generate mugen
6
+
7
+ This will update routes.rb
8
+ This will create:
9
+ config/initializers/mugen.rb
10
+ app/controllers/mygengo
11
+ app/controllers/mygengo/account_controller.rb
12
+ app/controllers/mygengo/comments_controller.rb
13
+ app/controllers/mygengo/jobs_controller.rb
14
+ app/helpers/mugen_helper.rb
15
+ app/views/layouts/mygengo.html.erb
16
+ app/views/mygengo/account
17
+ app/views/mygengo/comments
18
+ app/views/mygengo/jobs
19
+ app/views/mygengo/account/index.haml
20
+ app/views/mygengo/account/_balance.haml
21
+ app/views/mygengo/account/_stats.haml
22
+ app/views/mygengo/comments/_comment.haml
23
+ app/views/mygengo/comments/_form.haml
24
+ app/views/mygengo/jobs/_comments.haml
25
+ app/views/mygengo/jobs/_feedback.haml
26
+ app/views/mygengo/jobs/_revision.haml
27
+ app/views/mygengo/jobs/index.haml
28
+ app/views/mygengo/jobs/new.haml
29
+ app/views/mygengo/jobs/reject_form.haml
30
+ app/views/mygengo/jobs/review_form.haml
31
+ app/views/mygengo/jobs/revise_form.haml
32
+ app/views/mygengo/jobs/revision.haml
33
+ app/views/mygengo/jobs/show.haml
34
+ README
@@ -0,0 +1,63 @@
1
+ class MugenGenerator < Rails::Generator::Base
2
+ attr_reader :model_name
3
+
4
+ def initialize(runtime_args, runtime_options = {})
5
+ runtime_args << "user" if runtime_args.empty?
6
+ super
7
+ end
8
+
9
+ def manifest
10
+ record do |m|
11
+
12
+ # Initializer
13
+ m.file 'config/initializers/mugen.rb', 'config/initializers/mugen.rb'
14
+
15
+ # Controller
16
+ m.directory 'app/controllers/mygengo'
17
+ m.file "app/controllers/mygengo/account_controller.rb", "app/controllers/mygengo/account_controller.rb"
18
+ m.file "app/controllers/mygengo/comments_controller.rb", "app/controllers/mygengo/comments_controller.rb"
19
+ m.file "app/controllers/mygengo/jobs_controller.rb", "app/controllers/mygengo/jobs_controller.rb"
20
+
21
+ # Helpers
22
+ m.file "app/helpers/mugen_helper.rb", "app/helpers/mugen_helper.rb"
23
+
24
+ # Views
25
+ m.file 'app/views/layouts/mygengo.html.erb', 'app/views/layouts/mygengo.html.erb'
26
+ m.directory 'app/views/mygengo/account'
27
+ m.directory 'app/views/mygengo/comments'
28
+ m.directory 'app/views/mygengo/jobs'
29
+ m.directory 'public/stylesheets/mygengo'
30
+ m.directory 'public/images/mygengo'
31
+ m.file 'app/views/mygengo/account/index.haml', 'app/views/mygengo/account/index.haml'
32
+ m.file 'app/views/mygengo/account/_balance.haml', 'app/views/mygengo/account/_balance.haml'
33
+ m.file 'app/views/mygengo/account/_stats.haml', 'app/views/mygengo/account/_stats.haml'
34
+ m.file 'app/views/mygengo/comments/_comment.haml', 'app/views/mygengo/comments/_comment.haml'
35
+ m.file 'app/views/mygengo/comments/_form.haml', 'app/views/mygengo/comments/_form.haml'
36
+ m.file 'app/views/mygengo/jobs/_comments.haml', 'app/views/mygengo/jobs/_comments.haml'
37
+ m.file 'app/views/mygengo/jobs/_feedback.haml', 'app/views/mygengo/jobs/_feedback.haml'
38
+ m.file 'app/views/mygengo/jobs/_job.haml', 'app/views/mygengo/jobs/_job.haml'
39
+ m.file 'app/views/mygengo/jobs/_revision.haml', 'app/views/mygengo/jobs/_revision.haml'
40
+ m.file 'app/views/mygengo/jobs/index.haml', 'app/views/mygengo/jobs/index.haml'
41
+ m.file 'app/views/mygengo/jobs/new.haml', 'app/views/mygengo/jobs/new.haml'
42
+ m.file 'app/views/mygengo/jobs/reject_form.haml', 'app/views/mygengo/jobs/reject_form.haml'
43
+ m.file 'app/views/mygengo/jobs/review_form.haml', 'app/views/mygengo/jobs/review_form.haml'
44
+ m.file 'app/views/mygengo/jobs/revise_form.haml', 'app/views/mygengo/jobs/revise_form.haml'
45
+ m.file 'app/views/mygengo/jobs/revision.haml', 'app/views/mygengo/jobs/revision.haml'
46
+ m.file 'app/views/mygengo/jobs/show.haml', 'app/views/mygengo/jobs/show.haml'
47
+ m.file 'public/stylesheets/mygengo/base.css', 'public/stylesheets/mygengo/base.css'
48
+ m.file 'public/stylesheets/mygengo/mugen.css', 'public/stylesheets/mygengo/mugen.css'
49
+ m.file 'public/stylesheets/mygengo/override.css', 'public/stylesheets/mygengo/override.css'
50
+ m.file 'public/stylesheets/mygengo/scaffold.css', 'public/stylesheets/mygengo/scaffold.css'
51
+ m.file 'public/stylesheets/mygengo/style.css', 'public/stylesheets/mygengo/style.css'
52
+ # m.readme "USAGE"
53
+
54
+ # Routes
55
+ sentinel = 'ActionController::Routing::Routes.draw do |map|'
56
+ new_routes = IO.read(File.dirname(__FILE__) + '/templates/config/routes.rb')
57
+
58
+ m.gsub_file 'config/routes.rb', /(#{Regexp.escape(sentinel)})/mi do |match|
59
+ "#{match}\n #{new_routes}"
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,10 @@
1
+ class Mygengo::AccountController < Mygengo::MygengoController
2
+
3
+ def index
4
+ @account = Mugen::Account.balance || {}
5
+ @stats = Mugen::Account.stats
6
+
7
+ @account.merge! @stats if @stats
8
+ end
9
+
10
+ end
@@ -0,0 +1,6 @@
1
+ class Mygengo::CommentsController < Mygengo::MygengoController
2
+ def create
3
+ flag = Mugen::Job.create_comment(params[:id], params[:comment])
4
+ redirect_to mygengo_job_path(params[:id])
5
+ end
6
+ end
@@ -0,0 +1,153 @@
1
+ class Mygengo::JobsController < Mygengo::MygengoController
2
+ URL_REGEXP = /^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$/ix
3
+
4
+ # GET /jobs
5
+ # GET /jobs.xml
6
+ def index
7
+ @job_ids = Mugen::Jobs.all
8
+ if @job_ids
9
+ @jobs = @job_ids.collect {|j|
10
+ Mugen::Job.find(j['job_id']).merge('comments' => Mugen::Job.comments(j['job_id']))
11
+ }
12
+ respond_to do |format|
13
+ format.html # index.html.erb
14
+ format.xml { render :xml => @jobs }
15
+ end
16
+ else
17
+ redirect_to mygengo_account_index_path
18
+ end
19
+ end
20
+
21
+ # GET /jobs/1
22
+ # GET /jobs/1.xml
23
+ def show
24
+ @job = Mugen::Job.find(params[:id])
25
+ @preview = Mugen::Job.preview(@job['job_id'])
26
+ @comments = Mugen::Job.comments(@job['job_id'])
27
+ @job.merge!('comments' => @comments)
28
+ @feedback = Mugen::Job.feedback(@job['job_id'])
29
+ @revisions = Mugen::Job.revisions(@job['job_id'])
30
+ @revisions = [@revisions] if @revisions.is_a?(Hash)
31
+
32
+ respond_to do |format|
33
+ format.html # show.html.erb
34
+ format.xml { render :xml => @job }
35
+ end
36
+ end
37
+
38
+ def review_form
39
+ @job = Mugen::Job.find(params[:id])
40
+ @preview = Mugen::Job.preview(@job['job_id'])
41
+ @comments = Mugen::Job.comments(@job['job_id'])
42
+ @job.merge!('comments' => @comments)
43
+ @feedback = Mugen::Job.feedback(@job['job_id'])
44
+ end
45
+
46
+ def reject_form
47
+ @job = Mugen::Job.find(params[:id])
48
+ @preview = Mugen::Job.preview(@job['job_id'])
49
+ @comments = Mugen::Job.comments(@job['job_id'])
50
+ @job.merge!('comments' => @comments)
51
+ end
52
+
53
+ def revise_form
54
+ @job = Mugen::Job.find(params[:id])
55
+ @preview = Mugen::Job.preview(@job['job_id'])
56
+ @comments = Mugen::Job.comments(@job['job_id'])
57
+ @job.merge!('comments' => @comments)
58
+ end
59
+
60
+ # GET /jobs/1
61
+ # GET /jobs/1.xml
62
+ def revision
63
+ @job = Mugen::Job.find(params[:job_id])
64
+ @revision = Mugen::Job.revision(params[:job_id], params[:id])
65
+
66
+ respond_to do |format|
67
+ format.html {}
68
+ format.xml { render :xml => @job }
69
+ end
70
+ end
71
+
72
+ # GET /jobs/new
73
+ # GET /jobs/new.xml
74
+ def new
75
+ @job = Mugen::Job
76
+ @languages = Mugen::Service.languages
77
+ @language_pairs = Mugen::Service.language_pairs
78
+ @language_src = @languages.collect { |lp| [ lp["language"], lp['lc'] ] }.uniq.sort
79
+ @language_tgt = @languages.collect { |lp| [ lp["language"], lp['lc'] ] }.uniq.sort
80
+
81
+ respond_to do |format|
82
+ format.html # new.html.erb
83
+ format.xml { render :xml => @job }
84
+ end
85
+ end
86
+
87
+ # GET /jobs/1/edit
88
+ def edit
89
+ @job = Mugen::Job.find(params[:id])
90
+ end
91
+
92
+ # POST /jobs
93
+ # POST /jobs.xml
94
+ def create
95
+ params[:job]['body_src'] = sanitize(params[:job]['body_src'])
96
+ if params[:job]['callback_url'].empty? ||
97
+ !params[:job]['callback_url'].match(URL_REGEXP)
98
+ params[:job].delete('callback_url')
99
+ end
100
+ flag = Mugen::Job.create(params[:job])
101
+
102
+ redirect_to mygengo_jobs_path
103
+ end
104
+
105
+ # PUT /jobs/1
106
+ # PUT /jobs/1.xml
107
+ def update
108
+ @job = Mugen::Job.update(params[:id])
109
+
110
+ redirect_to mygengo_jobs_path
111
+ end
112
+
113
+ def purchase
114
+ @job = Mugen::Job.purchase(params[:id])
115
+
116
+ redirect_to mygengo_jobs_path
117
+ end
118
+
119
+ def approve
120
+ @job = Mugen::Job.approve(params[:id])
121
+
122
+ redirect_to mygengo_jobs_path
123
+ end
124
+
125
+ def revise
126
+ @job = Mugen::Job.revise(params[:id], params[:job])
127
+
128
+ redirect_to mygengo_jobs_path
129
+ end
130
+
131
+ def reject
132
+ @job = Mugen::Job.reject(params[:id], params[:job])
133
+
134
+ redirect_to mygengo_jobs_path
135
+ end
136
+
137
+ # DELETE /jobs/1
138
+ # DELETE /jobs/1.xml
139
+ def destroy
140
+ @job = Mugen::Job.delete(params[:id])
141
+
142
+ respond_to do |format|
143
+ format.html { redirect_to(mygengo_jobs_url) }
144
+ format.xml { head :ok }
145
+ end
146
+ end
147
+
148
+ private
149
+
150
+ def sanitize(text)
151
+ return text.gsub(/<\/?.*?>/, "")
152
+ end
153
+ end
@@ -0,0 +1,11 @@
1
+ module MugenHelper
2
+ def d(timestamp)
3
+ if timestamp
4
+ Time.at(timestamp).to_s(:short)
5
+ end
6
+ end
7
+
8
+ def eta(timestamp)
9
+ time_ago_in_words(Time.at(timestamp)) unless timestamp.empty?
10
+ end
11
+ end
@@ -0,0 +1,52 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>MyGengo</title>
5
+ <%= stylesheet_link_tag "mygengo/base", "mygengo/style", "mygengo/override", :cache => true %>
6
+ <%= stylesheet_link_tag 'mygengo/scaffold', 'mygengo/mugen', :cache => true %>
7
+ <%= javascript_include_tag 'jquery', 'rails', 'application' %>
8
+ <%= csrf_meta_tag %>
9
+ </head>
10
+ <body>
11
+ <div id="container">
12
+ <div id="header">
13
+ <h1><a href="/">Gengo</a></h1>
14
+ <div id="user-navigation">
15
+ <ul class="wat-cf">
16
+ <li><a href="/logout" class="logout"><%= t("web-app-theme.logout", :default => "Logout") %></a></li>
17
+ </ul>
18
+ </div>
19
+ <div id="main-navigation">
20
+ <ul class="wat-cf">
21
+ <li><%= link_to 'Jobs', '/mygengo/jobs' %></li>
22
+ <li><%= link_to 'Account', '/mygengo/account' %></li>
23
+ </ul>
24
+ </div>
25
+ </div>
26
+ <div id="wrapper" class="wat-cf">
27
+ <div class="flash">
28
+ <% flash.each do |type, message| -%>
29
+ <% unless message.empty? %>
30
+ <div class="message <%= type %>">
31
+ <p><%= message %></p>
32
+ </div>
33
+ <% end %>
34
+ <% end -%>
35
+ </div>
36
+ <div id="main">
37
+ <%= yield %>
38
+ <br />
39
+ <br />
40
+ <div id="footer">
41
+ <div class="block">
42
+ <p>Copyright &copy; <%= Time.now.year %> Vladimir Penkin</p>
43
+ </div>
44
+ </div>
45
+ </div>
46
+ <div id="sidebar">
47
+ <%= yield :sidebar %>
48
+ </div>
49
+ </div>
50
+ </div>
51
+ </body>
52
+ </html>