venus 0.4.1 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +24 -3
- data/lib/generators/venus/aws/aws_generator.rb +45 -0
- data/lib/generators/venus/aws/templates/aws.rb.erb +5 -0
- data/lib/generators/venus/aws/templates/config_application.rb.erb +5 -0
- data/lib/generators/venus/aws/templates/setting.yml.erb +2 -0
- data/lib/generators/venus/chosen/chosen_generator.rb +32 -0
- data/lib/generators/venus/chosen/templates/chosen.js +3 -0
- data/lib/generators/venus/deploy/templates/deploy.erb +1 -0
- data/lib/generators/venus/deploy/templates/stage.erb +2 -2
- data/lib/generators/venus/helpers.rb +35 -0
- data/lib/generators/venus/init/init_generator.rb +11 -14
- data/lib/generators/venus/jqueryui/jqueryui_generator.rb +40 -0
- data/lib/generators/venus/jqueryui/templates/datepicker.js +5 -0
- data/lib/generators/venus/omniauth/templates/omniauthable.rb +12 -15
- data/lib/generators/venus/simple_form/simple_form_generator.rb +49 -0
- data/lib/generators/venus/simple_form/templates/nested_form_event.js +7 -0
- data/lib/venus/version.rb +1 -1
- metadata +12 -2
data/README.md
CHANGED
@@ -10,7 +10,7 @@ Installation
|
|
10
10
|
```ruby
|
11
11
|
group :development do
|
12
12
|
...
|
13
|
-
gem 'venus', '~> 0.2
|
13
|
+
gem 'venus', '~> 0.5.2'
|
14
14
|
...
|
15
15
|
end
|
16
16
|
```
|
@@ -18,6 +18,24 @@ end
|
|
18
18
|
Usage
|
19
19
|
=====
|
20
20
|
|
21
|
+
* Setup jQuery UI (including datepicker and more jQuery-UI plugins)
|
22
|
+
|
23
|
+
```
|
24
|
+
rails generate venus:jqueryui
|
25
|
+
```
|
26
|
+
|
27
|
+
* Setup chosen for jQuery (see demo: http://harvesthq.github.com/chosen/)
|
28
|
+
|
29
|
+
```
|
30
|
+
rails generate venus:chosen
|
31
|
+
```
|
32
|
+
|
33
|
+
* Setup AWS api keys for official aws-sdk (including SES).
|
34
|
+
|
35
|
+
```
|
36
|
+
rails generate venus:aws
|
37
|
+
```
|
38
|
+
|
21
39
|
* Setup Omniauth for multiple omniauth (Facebook, Twitter, Github) in model `User`.
|
22
40
|
|
23
41
|
```
|
@@ -30,6 +48,11 @@ Usage
|
|
30
48
|
rails generate venus:deploy
|
31
49
|
```
|
32
50
|
|
51
|
+
* Setup gem 'simple_form' and its related gems (including 'nested_form')
|
52
|
+
|
53
|
+
```
|
54
|
+
rails generate venus:simple_form
|
55
|
+
```
|
33
56
|
|
34
57
|
* Essentail gems (simple_form, kminari...etc) and setup (removing public/index.html ...etc).
|
35
58
|
|
@@ -70,11 +93,9 @@ Usage
|
|
70
93
|
TODO
|
71
94
|
====
|
72
95
|
|
73
|
-
* Capistrano with multi-stages extendsion.
|
74
96
|
* MongoDB / Redis configuration.
|
75
97
|
* Twitter Bootstrap layout.
|
76
98
|
* Carrierwave with rmagick & fog.
|
77
|
-
* Aws SES for sending email.
|
78
99
|
* RailsAdmin or ActiveAdmin.
|
79
100
|
* Sidekiq for background job.
|
80
101
|
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Venus
|
2
|
+
module Generators
|
3
|
+
class AwsGenerator < Base
|
4
|
+
desc "Setup gem for 'aws-sdk'"
|
5
|
+
|
6
|
+
def name
|
7
|
+
"AWS"
|
8
|
+
end
|
9
|
+
|
10
|
+
def asks
|
11
|
+
say 'checking dependent gems "settinglogic"...'
|
12
|
+
generate 'venus:settingslogic' unless has_gem?('settingslogic')
|
13
|
+
|
14
|
+
@settinglogic_class = ask?("Your settinglogic class name?", 'Setting')
|
15
|
+
@settinglogic_yml = ask?("Your settinglogic yaml file in config/ ?", 'setting.yml')
|
16
|
+
|
17
|
+
@aws_access_key = ask?("Your AWS access key id?", '')
|
18
|
+
@aws_access_secret = ask?("Your AWS secret access key?", '')
|
19
|
+
|
20
|
+
@setup_email = ask?("Setup SES for mailer?", true)
|
21
|
+
end
|
22
|
+
|
23
|
+
def gemfile
|
24
|
+
add_gem('aws-sdk')
|
25
|
+
bundle_install
|
26
|
+
end
|
27
|
+
|
28
|
+
def configs
|
29
|
+
template 'aws.rb.erb', 'config/initializers/aws.rb'
|
30
|
+
["config/#{@settinglogic_yml}", "config/#{@settinglogic_yml}.example"].each do |to_file|
|
31
|
+
insert_template(to_file, "setting.yml.erb", :after => "&defaults\n")
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def config_application
|
36
|
+
insert_template(
|
37
|
+
"config/application.rb",
|
38
|
+
"config_application.rb.erb",
|
39
|
+
:before => " end\n"
|
40
|
+
)
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Venus
|
2
|
+
module Generators
|
3
|
+
class ChosenGenerator < Base
|
4
|
+
desc "Setup for jQuery chosen"
|
5
|
+
|
6
|
+
def name
|
7
|
+
"chosen"
|
8
|
+
end
|
9
|
+
|
10
|
+
def asks
|
11
|
+
@target_js = ask?('target content append for js file?', 'application.js')
|
12
|
+
@target_css = ask?('target content append for css file?', 'application.css')
|
13
|
+
end
|
14
|
+
|
15
|
+
def gem
|
16
|
+
add_gem('chosen-rails', '~> 0.9.11.2')
|
17
|
+
bundle_install
|
18
|
+
end
|
19
|
+
|
20
|
+
def assets
|
21
|
+
css_assets_require(@target_css, "chosen")
|
22
|
+
insert_js_template(@target_js, "chosen.js")
|
23
|
+
js_assets_require(@target_js, "chosen-jquery")
|
24
|
+
end
|
25
|
+
|
26
|
+
def more
|
27
|
+
puts "see more: https://github.com/tsechingho/chosen-rails"
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -16,6 +16,7 @@ set :default_stage, "<% if @staging %>staging<%else%>production<%end%>"
|
|
16
16
|
|
17
17
|
require 'bundler/capistrano'
|
18
18
|
<% if @whenever %>
|
19
|
+
set :whenever_command, "bundle exec whenever"
|
19
20
|
require 'whenever/capistrano'<% end %>
|
20
21
|
|
21
22
|
set :application, "<%= @app_name %>"
|
@@ -1,7 +1,7 @@
|
|
1
|
-
set :
|
1
|
+
set :branch, '<%= @stage[:branch] %>'
|
2
2
|
set :user, '<%= @stage[:user] %>'
|
3
3
|
set :domain, '<%= @stage[:server] %>'
|
4
|
-
set :
|
4
|
+
set :rails_env, "<%= @stage[:env] %>"
|
5
5
|
|
6
6
|
server "#{domain}", :web, :app, :db, :primary => true
|
7
7
|
set :deploy_to, "/home/#{user}/#{domain}"
|
@@ -102,6 +102,41 @@ module Venus
|
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
105
|
+
def js_assets_require(js_file, required_file)
|
106
|
+
to_file = "app/assets/javascripts/#{js_file}"
|
107
|
+
line = "//= require #{required_file}"
|
108
|
+
if file_has_content?(to_file, "//= require_self")
|
109
|
+
opts = { :before => "//= require_self" }
|
110
|
+
else
|
111
|
+
after = "//= require jquery_ujs"
|
112
|
+
after = "// GO AFTER THE REQUIRES BELOW." unless file_has_content?(to_file, after)
|
113
|
+
opts = { :after => after }
|
114
|
+
end
|
115
|
+
insert_line_into_file(to_file, line, opts)
|
116
|
+
end
|
117
|
+
|
118
|
+
def css_assets_require(css_file, required_file)
|
119
|
+
to_file = "app/assets/stylesheets/#{css_file}"
|
120
|
+
line = " *= require #{required_file}"
|
121
|
+
if file_has_content?(to_file, " *= require_self")
|
122
|
+
opts = { :before => " *= require_self" }
|
123
|
+
else
|
124
|
+
after = " * compiled file, but it's generally better to create a new file per style scope."
|
125
|
+
after = "/*" unless file_has_content?(to_file, after)
|
126
|
+
opts = { :after => after}
|
127
|
+
end
|
128
|
+
insert_line_into_file(to_file, line, opts)
|
129
|
+
end
|
130
|
+
|
131
|
+
def insert_js_template(js_file, template_file, options = {})
|
132
|
+
line = "//= require_self"
|
133
|
+
to_file = "app/assets/javascripts/#{js_file}"
|
134
|
+
after = "//= require jquery_ujs"
|
135
|
+
after = "//= require_tree .\n" if file_has_content?(to_file, "//= require_tree .\n")
|
136
|
+
opts = { :after => after }.merge(options)
|
137
|
+
insert_line_into_file(to_file, line, opts)
|
138
|
+
concat_template(to_file, template_file, options)
|
139
|
+
end
|
105
140
|
end
|
106
141
|
end
|
107
142
|
end
|
@@ -10,28 +10,25 @@ module Venus
|
|
10
10
|
def asks
|
11
11
|
@gems = {}
|
12
12
|
@paginate = ask?('install paginate gem "kaminari"?', true) unless has_gem?('kaminari')
|
13
|
+
generate 'venus:paginate' if @paginate
|
14
|
+
|
13
15
|
@whenever = ask?('install scheduling gem "whenever"?', true) unless has_gem?('whenever')
|
14
|
-
|
16
|
+
generate 'venus:cron' if @whenever
|
17
|
+
|
18
|
+
[:haml].each do |gemname|
|
15
19
|
@gems[gemname] = ask?("install gem '#{gemname}'?", true)
|
16
20
|
end
|
21
|
+
|
22
|
+
@simple_form = ask?('install gem "simple_form"?', true) unless has_gem?('simple_form')
|
23
|
+
if @simple_form
|
24
|
+
generate "venus:simple_form"
|
25
|
+
end
|
17
26
|
end
|
18
27
|
|
19
28
|
def remove_usless_file
|
20
29
|
remove_file 'public/index.html'
|
21
30
|
remove_file 'app/assets/images/rails.png'
|
22
31
|
end
|
23
|
-
|
24
|
-
def paginate
|
25
|
-
if @paginate
|
26
|
-
generate 'venus:paginate'
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def cron
|
31
|
-
if @whenever
|
32
|
-
generate 'venus:cron'
|
33
|
-
end
|
34
|
-
end
|
35
32
|
|
36
33
|
def enable_email_delivery_error
|
37
34
|
file = 'config/environments/development.rb'
|
@@ -54,7 +51,7 @@ module Venus
|
|
54
51
|
end
|
55
52
|
|
56
53
|
def run_magic_encoding
|
57
|
-
run 'magic_encoding'
|
54
|
+
run 'bundle exec magic_encoding'
|
58
55
|
end
|
59
56
|
|
60
57
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Venus
|
2
|
+
module Generators
|
3
|
+
class JqueryuiGenerator < Base
|
4
|
+
desc "Setup for jQuery UI"
|
5
|
+
|
6
|
+
def name
|
7
|
+
"jqueryui"
|
8
|
+
end
|
9
|
+
|
10
|
+
def asks
|
11
|
+
@target_js = ask?('target content append for js file?', 'application.js')
|
12
|
+
@target_css = ask?('target content append for css file?', 'application.css')
|
13
|
+
@datepicker = ask?('setup for datepicker?', true)
|
14
|
+
if @datepicker
|
15
|
+
puts "datepicker lang list: https://github.com/joliss/jquery-ui-rails/tree/master/vendor/assets/javascripts"
|
16
|
+
@datepicker_lang = ask?('datepicker language?', '')
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def gem
|
21
|
+
add_gem('jquery-ui-rails', '~> 4.0.1')
|
22
|
+
bundle_install
|
23
|
+
end
|
24
|
+
|
25
|
+
def datepicker
|
26
|
+
if @datepicker
|
27
|
+
css_assets_require(@target_css, "jquery.ui.datepicker")
|
28
|
+
insert_js_template(@target_js, "datepicker.js")
|
29
|
+
js_assets_require(@target_js, "jquery.ui.datepicker")
|
30
|
+
js_assets_require(@target_js, "jquery.ui.datepicker-#{@datepicker_lang}") if @datepicker_lang.present?
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def more
|
35
|
+
puts "see more: https://github.com/joliss/jquery-ui-rails"
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -36,24 +36,21 @@ module Omniauthable
|
|
36
36
|
|
37
37
|
end
|
38
38
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
authorization =
|
43
|
-
unless authorization
|
44
|
-
authorization = authorizations.create! :uid => authhash['uid'], :provider => authhash['provider'], :auth_data => authhash
|
45
|
-
end
|
46
|
-
authorization
|
47
|
-
end
|
48
|
-
|
49
|
-
def can_bind_to
|
50
|
-
Setting.providers - (authorizations.map {|auth| auth.provider})
|
39
|
+
def bind_service(authhash)
|
40
|
+
authorization = Authorization.find_by_provider_and_uid(authhash['provider'], authhash['uid'])
|
41
|
+
unless authorization
|
42
|
+
authorization = authorizations.create! :uid => authhash['uid'], :provider => authhash['provider'], :auth_data => authhash
|
51
43
|
end
|
44
|
+
authorization
|
45
|
+
end
|
52
46
|
|
53
|
-
|
54
|
-
|
55
|
-
|
47
|
+
def can_bind_to
|
48
|
+
Setting.providers - (authorizations.map {|auth| auth.provider})
|
49
|
+
end
|
56
50
|
|
51
|
+
def password_required?
|
52
|
+
false
|
57
53
|
end
|
58
54
|
|
55
|
+
|
59
56
|
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Venus
|
2
|
+
module Generators
|
3
|
+
class SimpleFormGenerator < Base
|
4
|
+
desc "Setup simpl_for related gems"
|
5
|
+
|
6
|
+
def name
|
7
|
+
"simple_form"
|
8
|
+
end
|
9
|
+
|
10
|
+
def asks
|
11
|
+
@gems = {}
|
12
|
+
@simple_form_config = ask?('generate simple_form config?', true)
|
13
|
+
@nested_form = ask?('install gem "nested_form"?', true) unless has_gem?('nested_form')
|
14
|
+
if @nested_form
|
15
|
+
@js_callback_target = ask?('JS event callback template target?', 'application.js')
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def simple_form
|
20
|
+
add_gem('simple_form', '~> 2.0.4')
|
21
|
+
add_gem('nested_form') if @nested_form
|
22
|
+
bundle_install
|
23
|
+
end
|
24
|
+
|
25
|
+
def nested_form
|
26
|
+
if @nested_form
|
27
|
+
if @js_callback_target.present?
|
28
|
+
to_file = "app/assets/javascripts/#{@js_callback_target}"
|
29
|
+
line = "//= require jquery_nested_form"
|
30
|
+
insert_line_into_file(to_file, line, :after => "//= require jquery_ujs")
|
31
|
+
line = "//= require_self"
|
32
|
+
insert_line_into_file(to_file, line, :after => "//= require jquery_nested_form")
|
33
|
+
concat_template(to_file, "nested_form_event.js")
|
34
|
+
else
|
35
|
+
puts "see https://github.com/ryanb/nested_form for configuration"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def simple_form_generate_theme
|
41
|
+
if @simple_form_config
|
42
|
+
generate 'simple_form:install --bootstrap'
|
43
|
+
# TODO best template views
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
$(document).on('nested:fieldAdded', function(event){
|
2
|
+
// this field was just inserted into your form
|
3
|
+
var field = event.field;
|
4
|
+
// it's a jQuery object already! Now you can find date input
|
5
|
+
// var dateField = field.find('.date');
|
6
|
+
// dateField.datepicker(); // and activate datepicker on it
|
7
|
+
})
|
data/lib/venus/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: venus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-02-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: railties
|
@@ -72,7 +72,13 @@ files:
|
|
72
72
|
- README.md
|
73
73
|
- Rakefile
|
74
74
|
- TODO.md
|
75
|
+
- lib/generators/venus/aws/aws_generator.rb
|
76
|
+
- lib/generators/venus/aws/templates/aws.rb.erb
|
77
|
+
- lib/generators/venus/aws/templates/config_application.rb.erb
|
78
|
+
- lib/generators/venus/aws/templates/setting.yml.erb
|
75
79
|
- lib/generators/venus/base.rb
|
80
|
+
- lib/generators/venus/chosen/chosen_generator.rb
|
81
|
+
- lib/generators/venus/chosen/templates/chosen.js
|
76
82
|
- lib/generators/venus/cron/cron_generator.rb
|
77
83
|
- lib/generators/venus/cron/templates/capistrano.erb
|
78
84
|
- lib/generators/venus/deploy/deploy_generator.rb
|
@@ -83,6 +89,8 @@ files:
|
|
83
89
|
- lib/generators/venus/helpers.rb
|
84
90
|
- lib/generators/venus/init/init_generator.rb
|
85
91
|
- lib/generators/venus/init/templates/gem_developments.erb
|
92
|
+
- lib/generators/venus/jqueryui/jqueryui_generator.rb
|
93
|
+
- lib/generators/venus/jqueryui/templates/datepicker.js
|
86
94
|
- lib/generators/venus/mysql/mysql_generator.rb
|
87
95
|
- lib/generators/venus/mysql/templates/database.yml.erb
|
88
96
|
- lib/generators/venus/omniauth/omniauth_generator.rb
|
@@ -102,6 +110,8 @@ files:
|
|
102
110
|
- lib/generators/venus/settingslogic/settingslogic_generator.rb
|
103
111
|
- lib/generators/venus/settingslogic/templates/setting.erb
|
104
112
|
- lib/generators/venus/settingslogic/templates/setting.yml
|
113
|
+
- lib/generators/venus/simple_form/simple_form_generator.rb
|
114
|
+
- lib/generators/venus/simple_form/templates/nested_form_event.js
|
105
115
|
- lib/venus.rb
|
106
116
|
- lib/venus/version.rb
|
107
117
|
- venus.gemspec
|