venus 0.5.2 → 0.6.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.
@@ -0,0 +1,62 @@
1
+ module Venus
2
+ module Generators
3
+ class CarrierwaveGenerator < Base
4
+ desc "Setup gem 'carrierwave'"
5
+
6
+ def name
7
+ "carrierwave"
8
+ end
9
+
10
+ def asks
11
+ @imagemagick = ask?("Use imagemagick to resize picture?", true)
12
+ @carrierwave_meta = ask?("Install gem 'carrierwave-meta'", true)
13
+ @sample_uploader = ask?("Generate sample uploader?", 'venus')
14
+ @fog = ask?("Use fog to upload file to AWS S3", true)
15
+ if @fog
16
+ @rails_version = ask?("your rails version?", '3.2')
17
+ @rails_version = @rails_version.index("3.2") == 0 ? '3.2' : '3.1'
18
+ say 'checking dependent gems "settinglogic"...'
19
+ generate 'venus:settingslogic' unless has_gem?('settingslogic')
20
+ @settinglogic_class = ask?("Your settinglogic class name?", 'Setting')
21
+ @settinglogic_yml = ask?("Your settinglogic yaml file in config/ ?", 'setting.yml')
22
+ say 'checking dependent gems "aws-sdk"...'
23
+ generate 'venus:aws' unless has_gem?('aws-sdk')
24
+ end
25
+ end
26
+
27
+ def gemfile
28
+ if @rails_version == '3.2'
29
+ add_gem("carrierwave", "~> 0.8.0")
30
+ else
31
+ add_gem("carrierwave", "0.7.1")
32
+ end
33
+ add_gem('rmagick') if @imagemagick
34
+ add_gem("carrierwave-meta", '~> 0.0.4') if @carrierwave_meta
35
+ add_gem('fog') if @fog
36
+ bundle_install
37
+ end
38
+
39
+ def configs
40
+ template "carrierwave_#{@rails_version}.erb", 'config/initializers/carrierwave.rb'
41
+ if @fog
42
+ ["config/#{@settinglogic_yml}", "config/#{@settinglogic_yml}.example"].each do |to_file|
43
+ insert_into_setting_yml(to_file, 'aws_access_key_id', :ask, :hide_in_example => true)
44
+ insert_into_setting_yml(to_file, 'aws_secret_access_key', :ask, :hide_in_example => true)
45
+ @aws_bucket_carrierwave = insert_into_setting_yml(to_file, 'aws_bucket_carrierwave', @aws_bucket_carrierwave || :ask)
46
+ @aws_region_carrierwave = insert_into_setting_yml(to_file, 'aws_region_carrierwave', @aws_region_carrierwave || :ask, :hint => "us-east-1")
47
+ @aws_host_carrierwave = insert_into_setting_yml(to_file, 'aws_host_carrierwave', @aws_host_carrierwave || :ask, :hint => "http://example.com")
48
+ end
49
+ end
50
+ end
51
+
52
+ def sample_uploader
53
+ template "uploader.erb", "app/uploaders/#{@sample_uploader}_uploader.rb"
54
+ end
55
+
56
+ def seemore
57
+ puts "see more configuration in https://github.com/jnicklas/carrierwave"
58
+ end
59
+
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,28 @@
1
+ <% if @fog %>
2
+ CarrierWave.configure do |config|
3
+ config.fog_credentials = {
4
+ :provider => 'AWS',
5
+ :aws_access_key_id => <%=@settinglogic_class%>.aws_access_key_id,
6
+ :aws_secret_access_key => <%=@settinglogic_class%>.aws_secret_access_key,
7
+ :region => <%=@settinglogic_class%>.aws_region_carrierwave
8
+ }
9
+ config.fog_directory = <%=@settinglogic_class%>.aws_bucket_carrierwave
10
+ config.fog_host = <%=@settinglogic_class%>.aws_host_carrierwave
11
+ config.fog_public = true # optional, defaults to true
12
+ end
13
+ <% end %>
14
+
15
+ <% if @carrierwave_meta && @fog %>
16
+ # Fix carrierwave-meta + fog
17
+ module CarrierWave
18
+ module Storage
19
+ class Fog
20
+ class File
21
+ def original_filename
22
+ ::File.basename(path)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ <% end %>
@@ -0,0 +1,28 @@
1
+ <% if @fog %>
2
+ CarrierWave.configure do |config|
3
+ config.fog_credentials = {
4
+ :provider => 'AWS',
5
+ :aws_access_key_id => <%=@settinglogic_class%>.aws_access_key_id,
6
+ :aws_secret_access_key => <%=@settinglogic_class%>.aws_secret_access_key,
7
+ :region => <%=@settinglogic_class%>.aws_region_carrierwave
8
+ }
9
+ config.fog_directory = <%=@settinglogic_class%>.aws_bucket_carrierwave
10
+ config.asset_host = <%=@settinglogic_class%>.aws_host_carrierwave
11
+ config.fog_public = true
12
+ end
13
+ <% end %>
14
+
15
+ <% if @carrierwave_meta && @fog %>
16
+ # Fix carrierwave-meta + fog
17
+ module CarrierWave
18
+ module Storage
19
+ class Fog
20
+ class File
21
+ def original_filename
22
+ ::File.basename(path)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ <% end %>
@@ -0,0 +1,76 @@
1
+ # -*- encoding : utf-8 -*-
2
+ class <%=@sample_uploader.to_s.camelize%>Uploader < CarrierWave::Uploader::Base
3
+ <%- if @imagemagick %>
4
+ include CarrierWave::RMagick<% end %>
5
+ <%- if @carrierwave_meta %>
6
+ include CarrierWave::Meta<% end %>
7
+
8
+ <%- if @fog %>
9
+ storage :fog
10
+ # storage :file
11
+ <%- else %>
12
+ # storage :fog
13
+ storage :file
14
+ <% end %>
15
+
16
+ <%- if @carrierwave_meta %>
17
+ process :store_meta<% end %>
18
+
19
+ <%- if @imagemagick %>
20
+ # Create different versions of your uploaded files:
21
+ version :thumb do
22
+ process :resize_to_fill => [50, 50]
23
+ process :store_meta
24
+ end
25
+
26
+ version :medinum do
27
+ process :resize_to_fit => [300, 300]
28
+ process :store_meta
29
+ end
30
+
31
+
32
+ version :large do
33
+ process :resize_to_limit => [600,600]
34
+ process :store_meta
35
+ end<% end %>
36
+
37
+ # Add a white list of extensions which are allowed to be uploaded.
38
+ # For images you might use something like this:
39
+ # def extension_white_list
40
+ # %w(jpg jpeg gif png)
41
+ # end
42
+
43
+ # Override the filename of the uploaded files:
44
+ # Avoid using model.id or version_name here, see uploader/store.rb for details.
45
+
46
+ def default_url
47
+ "http://placehold.it/330&text=pic"
48
+ end
49
+
50
+ def filename
51
+ "#{secure_token}.#{file.extension}" if original_filename.present?
52
+ end
53
+
54
+ def store_dir
55
+ "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{id_partition(model)}"
56
+ end
57
+
58
+ private
59
+
60
+ def secure_token
61
+ var = :"@#{mounted_as}_secure_token"
62
+ model.instance_variable_get(var) || model.instance_variable_set(var, SecureRandom.uuid)
63
+ end
64
+
65
+ def id_partition(attachment)
66
+ case id = attachment.id
67
+ when Integer
68
+ ("%09d" % id).scan(/\d{3}/).join("/")
69
+ when String
70
+ id.scan(/.{3}/).first(3).join("/")
71
+ else
72
+ nil
73
+ end
74
+ end
75
+
76
+ end
@@ -102,7 +102,7 @@ module Venus
102
102
  end
103
103
  end
104
104
 
105
- def js_assets_require(js_file, required_file)
105
+ def js_assets_require(js_file, required_file, options = {})
106
106
  to_file = "app/assets/javascripts/#{js_file}"
107
107
  line = "//= require #{required_file}"
108
108
  if file_has_content?(to_file, "//= require_self")
@@ -112,10 +112,10 @@ module Venus
112
112
  after = "// GO AFTER THE REQUIRES BELOW." unless file_has_content?(to_file, after)
113
113
  opts = { :after => after }
114
114
  end
115
- insert_line_into_file(to_file, line, opts)
115
+ insert_line_into_file(to_file, line, opts.merge(options))
116
116
  end
117
117
 
118
- def css_assets_require(css_file, required_file)
118
+ def css_assets_require(css_file, required_file, options = {})
119
119
  to_file = "app/assets/stylesheets/#{css_file}"
120
120
  line = " *= require #{required_file}"
121
121
  if file_has_content?(to_file, " *= require_self")
@@ -125,7 +125,7 @@ module Venus
125
125
  after = "/*" unless file_has_content?(to_file, after)
126
126
  opts = { :after => after}
127
127
  end
128
- insert_line_into_file(to_file, line, opts)
128
+ insert_line_into_file(to_file, line, opts.merge(options))
129
129
  end
130
130
 
131
131
  def insert_js_template(js_file, template_file, options = {})
@@ -137,6 +137,21 @@ module Venus
137
137
  insert_line_into_file(to_file, line, opts)
138
138
  concat_template(to_file, template_file, options)
139
139
  end
140
+
141
+ def insert_into_setting_yml(to_file, key, value, opts = {})
142
+ unless file_has_content?(to_file, " #{key}:")
143
+ value = '' if opts[:hide_in_example] && to_file.index('.example')
144
+ value = ask?("value of #{key} in #{to_file}#{opts[:hint] ? " (#{opts[:hint]})" : ""}", '') if value == :ask
145
+ value = "'#{value}'" if value
146
+ if file_has_content?(to_file, "defaults: &defaults\n")
147
+ insert_line_into_file(to_file, " #{key}: #{value}", :after => "defaults: &defaults")
148
+ else
149
+ insert_line_into_file(to_file, " #{key}: #{value}", :after => "development:")
150
+ insert_line_into_file(to_file, " #{key}: #{value}", :after => "test:")
151
+ end
152
+ return value
153
+ end
154
+ end
140
155
  end
141
156
  end
142
157
  end
@@ -0,0 +1,41 @@
1
+ module Venus
2
+ module Generators
3
+ class RedisGenerator < Base
4
+ desc "Setup for redis"
5
+
6
+ def name
7
+ "venus-redis-related"
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
+ @redis_object = ask?("Install gem 'redis-object'", true)
17
+ end
18
+
19
+ def gemfile
20
+ add_gem('redis', '~> 3.0.2')
21
+ add_gem('redis-objects', :require => 'redis/objects') if @redis_object
22
+ bundle_install
23
+ end
24
+
25
+ def configs
26
+ template 'redis.erb', 'config/initializers/redis.rb'
27
+ to_file = "config/#{@settinglogic_yml}"
28
+ [to_file, to_file+".example"].each do |file|
29
+ insert_into_setting_yml(file, "redis", nil)
30
+ insert_line_into_file(file, " host: localhost\n port: 6379\n db: 0", :after => " redis: \n")
31
+ end
32
+ puts "see more redis usage in: http://rdoc.info/github/redis/redis-rb/Redis"
33
+ end
34
+
35
+ def redis_objects
36
+ puts "see more redis-objects usage in: https://github.com/nateware/redis-objects" if @redis_object
37
+ end
38
+
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,11 @@
1
+ if <%= @settinglogic_class %>.redis.is_a?(String)
2
+ uri = URI.parse(<%= @settinglogic_class %>.redis)
3
+ Redis.current = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
4
+ else
5
+ Redis.current = Redis.new(<%= @settinglogic_class %>.redis)
6
+ end
7
+ begin
8
+ Redis.current.ping
9
+ rescue
10
+ puts "warring: No redis server! Please install and start redis, install on MacOSX: 'sudo brew install redis', start : 'redis-server /usr/local/etc/redis.conf'"
11
+ end
@@ -1,15 +1,9 @@
1
1
  defaults: &defaults
2
2
  app_name: ""
3
3
  host: "localhost"
4
- facebook_app_id:
5
- facebook_secret:
6
- facebook_perms: ''
7
4
  admin_emails:
8
5
  - ""
9
6
  google_analytics_key: ""
10
- default_logo_url: "/logo.png"
11
- email: ""
12
- aws: ""
13
7
 
14
8
  development:
15
9
  <<: *defaults
data/lib/venus/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Venus
2
- VERSION = "0.5.2"
2
+ VERSION = "0.6.2"
3
3
  end
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.5.2
4
+ version: 0.6.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-02-10 00:00:00.000000000 Z
12
+ date: 2013-02-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties
@@ -68,6 +68,7 @@ extra_rdoc_files: []
68
68
  files:
69
69
  - CHANGELOG.md
70
70
  - Gemfile
71
+ - Gemfile.lock
71
72
  - LICENSE.txt
72
73
  - README.md
73
74
  - Rakefile
@@ -77,6 +78,20 @@ files:
77
78
  - lib/generators/venus/aws/templates/config_application.rb.erb
78
79
  - lib/generators/venus/aws/templates/setting.yml.erb
79
80
  - lib/generators/venus/base.rb
81
+ - lib/generators/venus/bootstrap/bootstrap_generator.rb
82
+ - lib/generators/venus/bootstrap/templates/bootstrap.layout
83
+ - lib/generators/venus/bootstrap/templates/img/breadcrumb.png
84
+ - lib/generators/venus/bootstrap/templates/img/glyphicons-halflings-white.png
85
+ - lib/generators/venus/bootstrap/templates/img/glyphicons-halflings.png
86
+ - lib/generators/venus/bootstrap/templates/img/menu-active.png
87
+ - lib/generators/venus/bootstrap/templates/unicorn.grey.css
88
+ - lib/generators/venus/bootstrap/templates/unicorn.js
89
+ - lib/generators/venus/bootstrap/templates/unicorn.layout
90
+ - lib/generators/venus/bootstrap/templates/unicorn.main.css
91
+ - lib/generators/venus/carrierwave/carrierwave_generator.rb
92
+ - lib/generators/venus/carrierwave/templates/carrierwave_3.1.erb
93
+ - lib/generators/venus/carrierwave/templates/carrierwave_3.2.erb
94
+ - lib/generators/venus/carrierwave/templates/uploader.erb
80
95
  - lib/generators/venus/chosen/chosen_generator.rb
81
96
  - lib/generators/venus/chosen/templates/chosen.js
82
97
  - lib/generators/venus/cron/cron_generator.rb
@@ -103,6 +118,8 @@ files:
103
118
  - lib/generators/venus/omniauth/templates/setting.yml.erb
104
119
  - lib/generators/venus/omniauth/templates/user.erb
105
120
  - lib/generators/venus/paginate/paginate_generator.rb
121
+ - lib/generators/venus/redis/redis_generator.rb
122
+ - lib/generators/venus/redis/templates/redis.erb
106
123
  - lib/generators/venus/rspec/rspec_generator.rb
107
124
  - lib/generators/venus/rspec/templates/config_application.rb
108
125
  - lib/generators/venus/rspec/templates/gemfile.rb