berlin 0.0.3
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 +20 -0
- data/lib/berlin.rb +118 -0
- data/lib/berlin_hooks.rb +15 -0
- data/lib/tasks/berlin.rake +1 -0
- data/lib/tasks/install.rake +26 -0
- metadata +158 -0
data/README.md
ADDED
@@ -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
|
data/lib/berlin.rb
ADDED
@@ -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
|
data/lib/berlin_hooks.rb
ADDED
@@ -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
|
+
|