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.
@@ -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
+