venus 0.4.1 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|