spree_essentials 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/LICENSE CHANGED
@@ -1,23 +1,27 @@
1
- Redistribution and use in source and binary forms, with or without modification,
1
+ Copyright (c) 2011 Spencer Steffen and Citrus Media Group.
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without modification,
2
5
  are permitted provided that the following conditions are met:
3
6
 
4
- * Redistributions of source code must retain the above copyright notice,
7
+ * Redistributions of source code must retain the above copyright notice,
5
8
  this list of conditions and the following disclaimer.
6
- * Redistributions in binary form must reproduce the above copyright notice,
7
- this list of conditions and the following disclaimer in the documentation
9
+
10
+ * Redistributions in binary form must reproduce the above copyright notice,
11
+ this list of conditions and the following disclaimer in the documentation
8
12
  and/or other materials provided with the distribution.
9
- * Neither the name of the Rails Dog LLC nor the names of its
10
- contributors may be used to endorse or promote products derived from this
13
+
14
+ * Neither the name of Citrus Media Group nor the names of its
15
+ contributors may be used to endorse or promote products derived from this
11
16
  software without specific prior written permission.
12
17
 
13
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
14
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
15
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
16
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
17
- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
21
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
22
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
18
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
22
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
25
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/README.md CHANGED
@@ -25,15 +25,14 @@ Installation
25
25
 
26
26
  If you don't already have an existing Spree site, [click here](https://gist.github.com/946719) then come back later... You can also read the Spree docs [here](http://spreecommerce.com/documentation/getting_started.html)...
27
27
 
28
- Spree Essentials hasn't been released to rubygems so you'll have to install it from the source. Just add the following to your Gemfile:
28
+ Spree Essentials can be installed by itself by adding the following to your Gemfile:
29
29
 
30
- gem 'spree_essentials', :git => 'git://github.com/citrus/spree_essentials.git'
30
+ gem 'spree_essentials', '0.2.0'
31
31
 
32
- # Add any of the extensions you wish to use
32
+ This isn't necessary if you're using spree_essentials based extensions. If that's the case, just include the extensions normally:
33
33
 
34
34
  gem 'spree_essential_cms', :git => 'git://github.com/citrus/spree_essential_cms.git'
35
35
  gem 'spree_essential_blog', :git => 'git://github.com/citrus/spree_essential_blog.git'
36
-
37
36
 
38
37
 
39
38
  Then run:
@@ -161,6 +160,14 @@ To Do
161
160
  Change Log
162
161
  ----------
163
162
 
163
+ **0.2.0 - 2011/7/14**
164
+
165
+ * Depend on Spree 0.60.x and above
166
+ * Remove spree_auth dependency
167
+ * Removed `app/controllers/admin/resource_controller.rb` in favor of the Spree Default one
168
+ * Updated development gems to most recent versions
169
+
170
+
164
171
  **0.1.4 - 2011/6/10**
165
172
 
166
173
  * Removed console.log from jquery.autodate.js
@@ -1,3 +1,3 @@
1
1
  module SpreeEssentials
2
- VERSION = "0.1.4"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -1,5 +1,4 @@
1
1
  require 'spree_core'
2
- require 'meta_search'
3
2
  require 'rdiscount'
4
3
 
5
4
  module SpreeEssentials
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: spree_essentials
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.4
5
+ version: 0.2.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Spencer Steffen
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-06-10 00:00:00 -07:00
13
+ date: 2011-07-14 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -20,123 +20,90 @@ dependencies:
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 0.30.0
23
+ version: 0.60.0
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: *id001
27
27
  - !ruby/object:Gem::Dependency
28
- name: meta_search
28
+ name: rdiscount
29
29
  requirement: &id002 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
32
  - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: 1.0.1
34
+ version: 1.6.8
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: *id002
38
38
  - !ruby/object:Gem::Dependency
39
- name: rdiscount
39
+ name: shoulda
40
40
  requirement: &id003 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ">="
44
44
  - !ruby/object:Gem::Version
45
- version: 1.6.8
46
- type: :runtime
45
+ version: 2.11.3
46
+ type: :development
47
47
  prerelease: false
48
48
  version_requirements: *id003
49
49
  - !ruby/object:Gem::Dependency
50
- name: shoulda
50
+ name: dummier
51
51
  requirement: &id004 !ruby/object:Gem::Requirement
52
52
  none: false
53
53
  requirements:
54
54
  - - ">="
55
55
  - !ruby/object:Gem::Version
56
- version: 2.11.3
56
+ version: 0.2.0
57
57
  type: :development
58
58
  prerelease: false
59
59
  version_requirements: *id004
60
60
  - !ruby/object:Gem::Dependency
61
- name: dummier
61
+ name: factory_girl
62
62
  requirement: &id005 !ruby/object:Gem::Requirement
63
63
  none: false
64
64
  requirements:
65
65
  - - ">="
66
66
  - !ruby/object:Gem::Version
67
- version: 0.1.1
67
+ version: 2.0.0.beta4
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: *id005
71
71
  - !ruby/object:Gem::Dependency
72
- name: factory_girl
72
+ name: capybara
73
73
  requirement: &id006 !ruby/object:Gem::Requirement
74
74
  none: false
75
75
  requirements:
76
76
  - - ">="
77
77
  - !ruby/object:Gem::Version
78
- version: 2.0.0.beta2
78
+ version: 1.0.0
79
79
  type: :development
80
80
  prerelease: false
81
81
  version_requirements: *id006
82
82
  - !ruby/object:Gem::Dependency
83
- name: cucumber
83
+ name: sqlite3
84
84
  requirement: &id007 !ruby/object:Gem::Requirement
85
85
  none: false
86
86
  requirements:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 0.10.2
89
+ version: 1.3.3
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: *id007
93
93
  - !ruby/object:Gem::Dependency
94
- name: capybara
94
+ name: spork
95
95
  requirement: &id008 !ruby/object:Gem::Requirement
96
96
  none: false
97
97
  requirements:
98
98
  - - ">="
99
99
  - !ruby/object:Gem::Version
100
- version: 0.4.1
100
+ version: 0.9.0.rc9
101
101
  type: :development
102
102
  prerelease: false
103
103
  version_requirements: *id008
104
- - !ruby/object:Gem::Dependency
105
- name: selenium-webdriver
106
- requirement: &id009 !ruby/object:Gem::Requirement
107
- none: false
108
- requirements:
109
- - - ">="
110
- - !ruby/object:Gem::Version
111
- version: 0.1.3
112
- type: :development
113
- prerelease: false
114
- version_requirements: *id009
115
- - !ruby/object:Gem::Dependency
116
- name: sqlite3
117
- requirement: &id010 !ruby/object:Gem::Requirement
118
- none: false
119
- requirements:
120
- - - ">="
121
- - !ruby/object:Gem::Version
122
- version: 1.3.3
123
- type: :development
124
- prerelease: false
125
- version_requirements: *id010
126
- - !ruby/object:Gem::Dependency
127
- name: spork
128
- requirement: &id011 !ruby/object:Gem::Requirement
129
- none: false
130
- requirements:
131
- - - ">="
132
- - !ruby/object:Gem::Version
133
- version: 0.9.0.rc8
134
- type: :development
135
- prerelease: false
136
- version_requirements: *id011
137
104
  - !ruby/object:Gem::Dependency
138
105
  name: spork-testunit
139
- requirement: &id012 !ruby/object:Gem::Requirement
106
+ requirement: &id009 !ruby/object:Gem::Requirement
140
107
  none: false
141
108
  requirements:
142
109
  - - ">="
@@ -144,7 +111,7 @@ dependencies:
144
111
  version: 0.0.5
145
112
  type: :development
146
113
  prerelease: false
147
- version_requirements: *id012
114
+ version_requirements: *id009
148
115
  description: Spree Essentials provides a base for several other Spree Commerce extensions. The idea is to provide other extensions with common functionality such as an asset-upload interface, a markdown editor, and a common admin-navigation tab.
149
116
  email:
150
117
  - spencer@citrusme.com
@@ -155,25 +122,17 @@ extensions: []
155
122
  extra_rdoc_files: []
156
123
 
157
124
  files:
158
- - CHANGELOG.md
159
125
  - README.md
160
126
  - LICENSE
161
127
  - config/locales/en.yml
162
128
  - config/routes.rb
163
- - lib/dummy_hooks/after_migrate.rb
164
- - lib/dummy_hooks/after_migrate.rb.sample
165
- - lib/dummy_hooks/before_migrate.rb
166
- - lib/dummy_hooks/templates/test.pdf
167
- - lib/dummy_hooks/templates/test.zip
168
129
  - lib/generators/essentials_base.rb
169
130
  - lib/generators/spree_essentials/install_generator.rb
170
131
  - lib/generators/templates/db/migrate/add_attachment_file_size_to_assets.rb
171
- - lib/spree_core/action_callbacks.rb
172
132
  - lib/spree_essentials/test_helper.rb
173
133
  - lib/spree_essentials/version.rb
174
134
  - lib/spree_essentials.rb
175
135
  - app/controllers/admin/markdown_controller.rb
176
- - app/controllers/admin/resource_controller.rb
177
136
  - app/controllers/admin/uploads_controller.rb
178
137
  - app/helpers/admin/base_helper_decorator.rb
179
138
  - app/models/image_decorator.rb
@@ -231,7 +190,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
231
190
  requirements:
232
191
  - - ">="
233
192
  - !ruby/object:Gem::Version
234
- hash: 3910544631989460612
193
+ hash: -1301760498595422613
235
194
  segments:
236
195
  - 0
237
196
  version: "0"
@@ -240,7 +199,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
240
199
  requirements:
241
200
  - - ">="
242
201
  - !ruby/object:Gem::Version
243
- hash: 3910544631989460612
202
+ hash: -1301760498595422613
244
203
  segments:
245
204
  - 0
246
205
  version: "0"
data/CHANGELOG.md DELETED
@@ -1,64 +0,0 @@
1
- Change Log
2
- ----------
3
-
4
- **0.1.4 - 2011/6/10**
5
-
6
- * Removed console.log from jquery.autodate.js
7
- * Updated resource controller with better flash message handling
8
- * Added faker.lorem.words to en.yml to prevent NoMethodError in integration tests
9
-
10
-
11
- **0.1.3 - 2011/6/8**
12
-
13
- * Added test in teardown to check for missing translations
14
- * Removed some old bits of CMS code
15
-
16
-
17
- **0.1.2 - 2011/6/7**
18
-
19
- * Added missing translation
20
- * Cleanup
21
-
22
-
23
- **0.1.1 - 2011/6/7**
24
-
25
- * Released 0.1.1
26
- * Updated resource_controller.rb to Spree 0.60.0's and added `translated_object_name` method. ([pull request #419](https://github.com/spree/spree/pull/419) on Spree)
27
- * Added upload integration test
28
- * Cleaned up en.yml
29
-
30
-
31
- **2011/6/6**
32
-
33
- * Removed `spree_auth` requirement
34
- * Added a few test helpers
35
- * Updated readme
36
-
37
-
38
- **0.1.0 2011/6/1**
39
-
40
- * Added [dummier](https://github.com/citrus/dummier)
41
- * Removed some remaining CMS bits
42
-
43
-
44
- **2011/4/26**
45
-
46
- * Modularized CMS. It can now be found [here](https://github.com/citrus/spree_essential_cms)
47
-
48
-
49
- **2011/4/12**
50
-
51
- * Added content contexts for multiple contents per page
52
- * Namespaced posts into blog/posts
53
- * Added `<!-- more -->` tag to posts
54
-
55
-
56
- **2011/4/4**
57
-
58
- * Added Page Images and starting to remove resource_controller.
59
-
60
-
61
- **2011/4/3**
62
-
63
- * Automatically adds [Heroku](http://heroku.com) support when you include [spree_heroku](https://github.com/paxer/spree-heroku) in your Gemfile. Check the [spree_heroku readme](https://github.com/paxer/spree-heroku#readme) for full installation instructions.
64
- * Creates default content when you create a new page.
@@ -1,230 +0,0 @@
1
- require 'spree_core/action_callbacks'
2
- class Admin::ResourceController < Admin::BaseController
3
- helper_method :new_object_url, :edit_object_url, :object_url, :collection_url
4
- before_filter :load_resource
5
-
6
- respond_to :html
7
- respond_to :js, :except => [:show, :index]
8
-
9
- def flash_message_for(object, event_sym)
10
- resource_desc = object.class.model_name.human
11
- resource_desc += " \"#{object.name}\"" if object.respond_to?(:name)
12
- I18n.t(event_sym, :resource => resource_desc)
13
- end
14
-
15
- def new
16
- respond_with(@object) do |format|
17
- format.html { render :layout => !request.xhr? }
18
- format.js { render :layout => false }
19
- end
20
- end
21
-
22
- def edit
23
- respond_with(@object) do |format|
24
- format.html { render :layout => !request.xhr? }
25
- format.js { render :layout => false }
26
- end
27
- end
28
-
29
- def update
30
- invoke_callbacks(:update, :before)
31
- if @object.update_attributes(params[object_name])
32
- invoke_callbacks(:update, :after)
33
- flash[:notice] = flash_message_for(@object, :successfully_updated)
34
- respond_with(@object) do |format|
35
- format.html { redirect_to location_after_save }
36
- format.js { render :layout => false }
37
- end
38
- else
39
- invoke_callbacks(:update, :fails)
40
- respond_with(@object)
41
- end
42
- end
43
-
44
- def create
45
- invoke_callbacks(:create, :before)
46
- if @object.save
47
- invoke_callbacks(:create, :after)
48
- flash[:notice] = flash_message_for(@object, :successfully_created)
49
- respond_with(@object) do |format|
50
- format.html { redirect_to location_after_save }
51
- format.js { render :layout => false }
52
- end
53
- else
54
- invoke_callbacks(:create, :fails)
55
- respond_with(@object)
56
- end
57
- end
58
-
59
- def destroy
60
- invoke_callbacks(:destroy, :before)
61
- if @object.destroy
62
- invoke_callbacks(:destroy, :after)
63
- flash[:notice] = flash_message_for(@object, :successfully_removed)
64
- respond_with(@object) do |format|
65
- format.html { redirect_to collection_url }
66
- format.js { render :partial => "/admin/shared/destroy" }
67
- end
68
- else
69
- invoke_callbacks(:destroy, :fails)
70
- respond_with(@object) do |format|
71
- format.html { redirect_to collection_url }
72
- end
73
- end
74
- end
75
-
76
- protected
77
-
78
- class << self
79
- attr_accessor :parent_data
80
- attr_accessor :callbacks
81
-
82
- def belongs_to(model_name, options = {})
83
- @parent_data ||= {}
84
- @parent_data[:model_name] = model_name
85
- @parent_data[:model_class] = model_name.to_s.classify.constantize
86
- @parent_data[:find_by] = options[:find_by] || :id
87
- end
88
-
89
- def create
90
- @callbacks ||= {}
91
- @callbacks[:create] ||= Spree::ActionCallbacks.new
92
- end
93
-
94
- def update
95
- @callbacks ||= {}
96
- @callbacks[:update] ||= Spree::ActionCallbacks.new
97
- end
98
-
99
- def destroy
100
- @callbacks ||= {}
101
- @callbacks[:destroy] ||= Spree::ActionCallbacks.new
102
- end
103
- end
104
-
105
- def model_class
106
- controller_name.classify.constantize
107
- end
108
-
109
- def object_name
110
- controller_name.singularize
111
- end
112
-
113
- def load_resource
114
- if member_action?
115
- @object ||= load_resource_instance
116
- instance_variable_set("@#{object_name}", @object)
117
- else
118
- @collection ||= collection
119
- instance_variable_set("@#{controller_name}", @collection)
120
- end
121
- end
122
-
123
- def load_resource_instance
124
- if new_actions.include?(params[:action].to_sym)
125
- build_resource
126
- elsif params[:id]
127
- find_resource
128
- end
129
- end
130
-
131
- def parent_data
132
- self.class.parent_data
133
- end
134
-
135
- def parent
136
- if parent_data.present?
137
- @parent ||= parent_data[:model_class].where(parent_data[:find_by] => params["#{parent_data[:model_name]}_id"]).first
138
- instance_variable_set("@#{parent_data[:model_name]}", @parent)
139
- else
140
- nil
141
- end
142
- end
143
-
144
- def find_resource
145
- if parent_data.present?
146
- parent.send(controller_name).find(params[:id])
147
- else
148
- model_class.find(params[:id])
149
- end
150
- end
151
-
152
- def build_resource
153
- if parent_data.present?
154
- parent.send(controller_name).build(params[object_name])
155
- else
156
- model_class.new(params[object_name])
157
- end
158
- end
159
-
160
- def collection
161
- return parent.send(controller_name) if parent_data.present?
162
-
163
- if model_class.respond_to?(:accessible_by) && !current_ability.has_block?(params[:action], model_class)
164
- model_class.accessible_by(current_ability)
165
- else
166
- model_class.scoped
167
- end
168
- end
169
-
170
- def location_after_save
171
- collection_url
172
- end
173
-
174
- def invoke_callbacks(action, callback_type)
175
- callbacks = self.class.callbacks || {}
176
- return if callbacks[action].nil?
177
- case callback_type.to_sym
178
- when :before then callbacks[action].before_methods.each {|method| send method }
179
- when :after then callbacks[action].after_methods.each {|method| send method }
180
- when :fails then callbacks[action].fails_methods.each {|method| send method }
181
- end
182
- end
183
-
184
- # URL helpers
185
-
186
- def new_object_url(options = {})
187
- if parent_data.present?
188
- new_polymorphic_url([:admin, parent, model_class], options)
189
- else
190
- new_polymorphic_url([:admin, model_class], options)
191
- end
192
- end
193
-
194
- def edit_object_url(object, options = {})
195
- if parent_data.present?
196
- send "edit_admin_#{parent_data[:model_name]}_#{object_name}_url", parent, object, options
197
- else
198
- send "edit_admin_#{object_name}_url", object, options
199
- end
200
- end
201
-
202
- def object_url(object = nil, options = {})
203
- target = object ? object : @object
204
- if parent_data.present?
205
- send "admin_#{parent_data[:model_name]}_#{object_name}_url", parent, target, options
206
- else
207
- send "admin_#{object_name}_url", target, options
208
- end
209
- end
210
-
211
- def collection_url(options = {})
212
- if parent_data.present?
213
- polymorphic_url([:admin, parent, model_class], options)
214
- else
215
- polymorphic_url([:admin, model_class], options)
216
- end
217
- end
218
-
219
- def collection_actions
220
- [:index]
221
- end
222
-
223
- def member_action?
224
- !collection_actions.include? params[:action].to_sym
225
- end
226
-
227
- def new_actions
228
- [:new, :create]
229
- end
230
- end
@@ -1 +0,0 @@
1
- rake "db:migrate db:seed db:sample", :env => "development"
@@ -1 +0,0 @@
1
- rake "db:migrate db:seed db:sample", :env => "development"
@@ -1,11 +0,0 @@
1
- # install spree and migrate db
2
-
3
- say_status "installing", "spree_core, spree_auth"
4
-
5
- run "rake spree_core:install spree_auth:install"
6
-
7
- say_status "installing", "spree_essentials"
8
- run "rails g spree_essentials:install"
9
-
10
- copy_file "test.pdf", "public/test.pdf"
11
- copy_file "test.zip", "public/test.zip"
Binary file
Binary file
@@ -1,26 +0,0 @@
1
- module Spree
2
- class ActionCallbacks
3
- attr_reader :before_methods
4
- attr_reader :after_methods
5
- attr_reader :fails_methods
6
-
7
- def initialize
8
- @before_methods = []
9
- @after_methods = []
10
- @fails_methods = []
11
- end
12
-
13
- def before(method)
14
- @before_methods << method
15
- end
16
-
17
- def after(method)
18
- @after_methods << method
19
- end
20
-
21
- def fails(method)
22
- @fails_methods << method
23
- end
24
- end
25
-
26
- end