berlin 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,20 @@
1
+ == berlin.commerce
2
+
3
+ berlin.base
4
+ -----------
5
+
6
+ The basic extension, which is necessary for all further berlin extensions.
7
+ Out of the box, this extension gives you following new features:
8
+
9
+ - Blogsystem
10
+ - Filemanager
11
+ - Tagging for Products / Files / BlogPosts etc.
12
+ - multi Language-Support, editable via Admin-Interface
13
+
14
+ - extjs-Support for the Admin-Interface (via netzke)
15
+ - great Admin-Layout
16
+
17
+ to be continued ..
18
+
19
+
20
+ Copyright (c) 2010 fcn.interactive
@@ -0,0 +1,118 @@
1
+ require 'spree_core'
2
+ require 'berlin_hooks'
3
+ require 'globalize3'
4
+
5
+ module Berlin
6
+ class Engine < Rails::Engine
7
+
8
+ config.autoload_paths += %W(#{config.root}/lib)
9
+
10
+ def self.activate
11
+
12
+ # require language helper
13
+ #require 'berlin_helper'
14
+
15
+ Dir.glob(File.join(File.dirname(__FILE__), "../app/**/*_decorator*.rb")) do |c|
16
+ Rails.env.production? ? require(c) : load(c)
17
+ end
18
+
19
+ # add config value for disabling shopping functions
20
+ AppConfiguration::preference :disable_shop, :boolean, :default => false
21
+
22
+ # for Admin
23
+ Admin::BaseController.class_eval do
24
+ helper BerlinHelper, LanguageHelper
25
+ end
26
+
27
+ # for Frontend
28
+ Spree::BaseController.class_eval do
29
+ helper BerlinHelper, LanguageHelper, ProductsHelper
30
+ before_filter :set_language
31
+
32
+ def set_language
33
+ if params['locale']
34
+ I18n.locale = params[:locale]
35
+ elsif session[:locale_current]
36
+ # when function is called, session.locale is already set,
37
+ # so had to use an alterative var (locale_current)
38
+ I18n.locale = session[:locale_current]
39
+ end
40
+ @locale = I18n.locale
41
+ session[:locale_current] = I18n.locale.to_s
42
+ end
43
+ end
44
+
45
+ ActiveRecord::Base.class_eval do
46
+
47
+ # set active user
48
+ before_create :set_created_by
49
+ before_save :set_updated_by
50
+
51
+ def created_by_user
52
+ if !self.nil? && self.respond_to?(:created_by) && !self.created_by.nil?
53
+ return User.find(self.created_by)
54
+ end
55
+ return false
56
+ end
57
+
58
+ def updated_by_user
59
+ if !self.nil? && self.respond_to?(:updated_by) && !self.updated_by.nil?
60
+ return User.find(self.updated_by)
61
+ end
62
+ return false
63
+ end
64
+
65
+ private
66
+ def set_created_by
67
+ self[:created_by] = UserSession.find.user.id if !self.nil? && self.respond_to?(:created_by)
68
+ end
69
+
70
+ def set_updated_by
71
+ self[:updated_by] = UserSession.find.user.id if !self.nil? && self.respond_to?(:updated_by)
72
+ end
73
+
74
+ end
75
+
76
+ # only extend, when tables exists
77
+ # otherwise, error (only on migrating)
78
+ if ActiveRecord::Base.connection.tables.include?('products')
79
+
80
+ # add content translations using Globalize 3's helpers
81
+ Product.class_eval do
82
+ translates :name, :description, :meta_description, :meta_keywords
83
+ end
84
+
85
+ Property.class_eval do
86
+ translates :presentation
87
+ end
88
+
89
+ Prototype.class_eval do
90
+ translates :name
91
+ end
92
+
93
+ Taxonomy.class_eval do
94
+ translates :name
95
+ end
96
+
97
+ Taxon.class_eval do
98
+ translates :name
99
+ end
100
+
101
+ OptionType.class_eval do
102
+ translates :presentation
103
+ end
104
+
105
+ OptionValue.class_eval do
106
+ translates :presentation
107
+ end
108
+
109
+ end
110
+
111
+ # Enable I18n fallbacks
112
+ require "i18n/backend/fallbacks"
113
+
114
+ end
115
+
116
+ config.to_prepare &method(:activate).to_proc
117
+ end
118
+ end
@@ -0,0 +1,15 @@
1
+ class BerlinHooks < Spree::ThemeSupport::HookListener
2
+
3
+ insert_after :admin_configurations_menu do
4
+ "<tr><td><%=link_to t('berlin.languages'), admin_berlin_languages_path%></td><td><%=t('berlin.language.config_description')%></td></tr>"
5
+ end
6
+
7
+ insert_after :admin_configurations_sidebar_menu do
8
+ "<li<%= raw(' class=\"selected\"') if controller.controller_name == 'berlin_languages' %>><%= link_to t('berlin.languages'), admin_berlin_languages_path %></li>"
9
+ end
10
+
11
+ insert_after :admin_tabs do
12
+ "<li<%= raw(' class=\"selected\"') if controller.controller_name == 'berlin_blog_posts' %>><%= link_to t('berlin.blog'), admin_berlin_blog_posts_path %></li>"
13
+ end
14
+
15
+ end
@@ -0,0 +1 @@
1
+ # add custom rake tasks here
@@ -0,0 +1,26 @@
1
+ namespace :berlin do
2
+ desc "Copies all migrations and assets (NOTE: This will be obsolete with Rails 3.1)"
3
+ task :install do
4
+ Rake::Task['berlin:install:migrations'].invoke
5
+ Rake::Task['berlin:install:assets'].invoke
6
+ end
7
+
8
+ namespace :install do
9
+ desc "Copies all migrations (NOTE: This will be obsolete with Rails 3.1)"
10
+ task :migrations do
11
+ source = File.join(File.dirname(__FILE__), '..', '..', 'db')
12
+ destination = File.join(Rails.root, 'db')
13
+ puts "INFO: Mirroring assets from #{source} to #{destination}"
14
+ Spree::FileUtilz.mirror_files(source, destination)
15
+ end
16
+
17
+ desc "Copies all assets (NOTE: This will be obsolete with Rails 3.1)"
18
+ task :assets do
19
+ source = File.join(File.dirname(__FILE__), '..', '..', 'public')
20
+ destination = File.join(Rails.root, 'public')
21
+ puts "INFO: Mirroring assets from #{source} to #{destination}"
22
+ Spree::FileUtilz.mirror_files(source, destination)
23
+ end
24
+ end
25
+
26
+ end
metadata ADDED
@@ -0,0 +1,158 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: berlin
3
+ version: !ruby/object:Gem::Version
4
+ hash: 25
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 3
10
+ version: 0.0.3
11
+ platform: ruby
12
+ authors:
13
+ - fcn.interactive
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-11-23 00:00:00 +01:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: spree
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: globalize3
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
46
+ version: "0"
47
+ type: :runtime
48
+ version_requirements: *id002
49
+ - !ruby/object:Gem::Dependency
50
+ name: acts_as_tree
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ hash: 3
58
+ segments:
59
+ - 0
60
+ version: "0"
61
+ type: :runtime
62
+ version_requirements: *id003
63
+ - !ruby/object:Gem::Dependency
64
+ name: acts-as-taggable-on
65
+ prerelease: false
66
+ requirement: &id004 !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ hash: 3
72
+ segments:
73
+ - 0
74
+ version: "0"
75
+ type: :runtime
76
+ version_requirements: *id004
77
+ - !ruby/object:Gem::Dependency
78
+ name: netzke-core
79
+ prerelease: false
80
+ requirement: &id005 !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ hash: 3
86
+ segments:
87
+ - 0
88
+ version: "0"
89
+ type: :runtime
90
+ version_requirements: *id005
91
+ - !ruby/object:Gem::Dependency
92
+ name: netzke-basepack
93
+ prerelease: false
94
+ requirement: &id006 !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ hash: 3
100
+ segments:
101
+ - 0
102
+ version: "0"
103
+ type: :runtime
104
+ version_requirements: *id006
105
+ description: Basic berlin.commerce gem, which is necessary for all further berlin-extensions.
106
+ email: hello@fcn.nu
107
+ executables: []
108
+
109
+ extensions: []
110
+
111
+ extra_rdoc_files: []
112
+
113
+ files:
114
+ - README.md
115
+ - lib/berlin.rb
116
+ - lib/berlin_hooks.rb
117
+ - lib/tasks/berlin.rake
118
+ - lib/tasks/install.rake
119
+ has_rdoc: true
120
+ homepage: http://www.berlincommerce.com
121
+ licenses: []
122
+
123
+ post_install_message:
124
+ rdoc_options: []
125
+
126
+ require_paths:
127
+ - lib
128
+ required_ruby_version: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ hash: 57
134
+ segments:
135
+ - 1
136
+ - 8
137
+ - 7
138
+ version: 1.8.7
139
+ required_rubygems_version: !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ hash: 23
145
+ segments:
146
+ - 1
147
+ - 3
148
+ - 6
149
+ version: 1.3.6
150
+ requirements:
151
+ - none
152
+ rubyforge_project: berlin
153
+ rubygems_version: 1.3.7
154
+ signing_key:
155
+ specification_version: 3
156
+ summary: berlin.commerce - basic
157
+ test_files: []
158
+