spree 3.6.6 → 3.7.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of spree might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +49 -48
- data/lib/sandbox.sh +18 -2
- data/lib/spree.rb +0 -10
- metadata +16 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 413c18cd9927e136a9a987673847e2af2942c250a9f0a0f2926931fa7f5c7206
|
4
|
+
data.tar.gz: 7796ff161608f469e32af838f842b3fa0fe941a04d13087e458a99c25a790d4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be85f49117e25e707040cc861addb48ff4765051d0681d5d23f82ce1ae925e9d4019051191533d6762ae74d78d096a9ea7c39506533721dfd6fdc56b6ad1c4b3
|
7
|
+
data.tar.gz: 11a9dbe9a0d1583b1ad8a764cf3de17fcd45c880eb304050f43b004d73acbd534ccf7cab813dbb0ce34a633547fad1a5bc4f9053cdd0c4fa7d06632cb43037b9
|
data/README.md
CHANGED
@@ -2,82 +2,78 @@
|
|
2
2
|
<img src="spree_logo.png" width="261">
|
3
3
|
|
4
4
|
* Join our Slack at [slack.spreecommerce.org](http://slack.spreecommerce.org/)
|
5
|
-
* [
|
5
|
+
* [Success Stories](https://spreecommerce.org/stories/)
|
6
|
+
* [Integrations](https://spreecommerce.org/integrations/)
|
7
|
+
* [Extensions](https://github.com/spree/spree#extensions)
|
6
8
|
* [Documentation](http://guides.spreecommerce.org)
|
7
9
|
* [Roadmap](https://github.com/spree/spree/milestones?direction=asc&sort=due_date&state=open)
|
8
|
-
*
|
10
|
+
* [Maintenance Policy](https://github.com/spree/spree/wiki/Maintenance-Policy)
|
9
11
|
|
10
12
|
[![Gem Version](https://badge.fury.io/rb/spree.svg)](https://badge.fury.io/rb/spree) [![Circle CI](https://circleci.com/gh/spree/spree.svg?style=shield)](https://circleci.com/gh/spree/spree/tree/master)
|
11
13
|
[![Code Climate](https://codeclimate.com/github/spree/spree.svg)](https://codeclimate.com/github/spree/spree)
|
12
|
-
[![
|
14
|
+
[![Test Coverage](https://api.codeclimate.com/v1/badges/8277fc2bb0b1f777084f/test_coverage)](https://codeclimate.com/github/spree/spree/test_coverage)
|
13
15
|
[![Slack Status](http://slack.spreecommerce.org/badge.svg)](http://slack.spreecommerce.org)
|
14
16
|
|
15
17
|
**Spree** is a complete open source e-commerce solution built with Ruby on Rails. It
|
16
|
-
was originally developed by Sean Schofield and is now maintained by
|
18
|
+
was originally developed by Sean Schofield and is now maintained by [Spark Solutions](http://sparksolutions.co). We're open to [contributions](#contributing) and accepting new [Core Team](https://github.com/spree/spree/wiki/Core-Team) members.
|
17
19
|
|
18
20
|
Spree consists of several different gems, each of which are maintained
|
19
21
|
in a single repository and documented in a single set of
|
20
22
|
[online documentation](http://guides.spreecommerce.org/).
|
21
23
|
|
22
|
-
* spree_api (
|
23
|
-
* spree_frontend (
|
24
|
-
* spree_backend (Admin
|
25
|
-
* spree_cmd (Command-line tools)
|
26
|
-
* spree_core (Models & Mailers, the basic components of Spree that it can't run without)
|
27
|
-
* spree_sample (Sample data)
|
24
|
+
* **spree_api** (new REST API v2 and legacy REST API v1, [GraphQL support](https://github.com/spree/spree/issues/9176) coming soon)
|
25
|
+
* **spree_frontend** (default Rails customer frontend)
|
26
|
+
* **spree_backend** (Admin Panel)
|
27
|
+
* **spree_cmd** (Command-line tools)
|
28
|
+
* **spree_core** (Models, Services & Mailers, the basic components of Spree that it can't run without)
|
29
|
+
* **spree_sample** (Sample data)
|
30
|
+
|
31
|
+
You don't need to install all of the components. Only the **Core** is mandatory.
|
28
32
|
|
29
33
|
Demo
|
30
34
|
----
|
31
|
-
Try Spree with direct deployment on Heroku:
|
32
35
|
|
33
|
-
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/spree/spree)
|
36
|
+
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/spree/spree/tree/3-6-stable)
|
34
37
|
|
35
|
-
If you
|
36
|
-
download and run sample Spree application on http://localhost:3000
|
38
|
+
If you want to run the demo on your local machine, you can use our docker image. It will download and run sample Spree application on http://localhost:3000
|
37
39
|
```shell
|
38
|
-
docker run --rm -it -p 3000:3000 spreecommerce/spree:
|
40
|
+
docker run --rm -it -p 3000:3000 spreecommerce/spree:3.6.4
|
39
41
|
```
|
40
42
|
|
43
|
+
Admin Panel credentials - login: `spree@example.com` / password: `spree123`
|
44
|
+
|
45
|
+
|
41
46
|
Getting Started
|
42
47
|
----------------------
|
43
48
|
|
44
|
-
Add Spree gems to your Gemfile
|
49
|
+
Add Spree gems to your `Gemfile`:
|
45
50
|
|
46
51
|
### Rails 5.2
|
47
52
|
|
48
53
|
```ruby
|
49
|
-
gem 'spree', '~> 3.
|
50
|
-
gem 'spree_auth_devise', '~> 3.
|
51
|
-
gem 'spree_gateway', '~> 3.
|
54
|
+
gem 'spree', '~> 3.7.0.rc1'
|
55
|
+
gem 'spree_auth_devise', '~> 3.4'
|
56
|
+
gem 'spree_gateway', '~> 3.4'
|
52
57
|
```
|
53
58
|
|
59
|
+
Rails 5.2 versions come with [ActiveStorage support](https://spreecommerce.org/spree-3-5-and-3-6-with-rails-5-2-ruby-2-5-and-activestorage-support-released/). You can still use Paperclip (see [instructions](https://guides.spreecommerce.org/developer/images.html#paperclip)).
|
60
|
+
|
54
61
|
### Rails 5.1
|
55
62
|
|
56
63
|
```ruby
|
57
|
-
gem 'spree', '~> 3.5.0
|
58
|
-
gem 'spree_auth_devise', '~> 3.
|
59
|
-
gem 'spree_gateway', '~> 3.
|
64
|
+
gem 'spree', '~> 3.5.0'
|
65
|
+
gem 'spree_auth_devise', '~> 3.4'
|
66
|
+
gem 'spree_gateway', '~> 3.4'
|
60
67
|
```
|
61
68
|
|
62
69
|
### Rails 5.0
|
63
70
|
|
64
71
|
```ruby
|
65
72
|
gem 'spree', '~> 3.2.7'
|
66
|
-
gem 'spree_auth_devise', '~> 3.
|
67
|
-
gem 'spree_gateway', '~> 3.
|
73
|
+
gem 'spree_auth_devise', '~> 3.4'
|
74
|
+
gem 'spree_gateway', '~> 3.4'
|
68
75
|
```
|
69
76
|
|
70
|
-
### Rails 4.2
|
71
|
-
|
72
|
-
```ruby
|
73
|
-
gem 'spree', '~> 3.1.12'
|
74
|
-
gem 'spree_auth_devise', '~> 3.3'
|
75
|
-
gem 'spree_gateway', '~> 3.3'
|
76
|
-
```
|
77
|
-
|
78
|
-
**Note: If you're using fresh Rails 5.1 application, you need to run `bundle update i18n` before following steps
|
79
|
-
below.**
|
80
|
-
|
81
77
|
|
82
78
|
Run `bundle install`
|
83
79
|
|
@@ -121,12 +117,6 @@ bundle exec rake db:seed
|
|
121
117
|
bundle exec rake spree_sample:load
|
122
118
|
```
|
123
119
|
|
124
|
-
Bundle Issues
|
125
|
-
----------------------
|
126
|
-
|
127
|
-
If you encountered any problems with `bundler`, please try downgrading to bundler `1.13.7` or earlier.
|
128
|
-
|
129
|
-
|
130
120
|
Browse Store
|
131
121
|
----------------------
|
132
122
|
|
@@ -145,19 +135,20 @@ Extensions
|
|
145
135
|
Spree Extensions provide additional features not present in the Core system.
|
146
136
|
|
147
137
|
|
148
|
-
| Extension | Spree 3.
|
138
|
+
| Extension | Spree 3.2+ support | Description |
|
149
139
|
| --- | --- | --- |
|
150
140
|
| [spree_gateway](https://github.com/spree/spree_gateway) | [![Build Status](https://travis-ci.org/spree/spree_gateway.svg?branch=master)](https://travis-ci.org/spree/spree_gateway) | Community supported Spree Payment Method Gateways
|
151
141
|
| [spree_auth_devise](https://github.com/spree/spree_auth_devise) | [![Build Status](https://travis-ci.org/spree/spree_auth_devise.svg?branch=master)](https://travis-ci.org/spree/spree_auth_devise) | Provides authentication services for Spree, using the Devise gem.
|
152
142
|
| [spree_i18n](https://github.com/spree-contrib/spree_i18n) | [![Build Status](https://travis-ci.org/spree-contrib/spree_i18n.svg?branch=master)](https://travis-ci.org/spree-contrib/spree_i18n) | I18n translation files for Spree Commerce
|
153
143
|
| [spree-multi-domain](https://github.com/spree-contrib/spree-multi-domain) | [![Build Status](https://travis-ci.org/spree-contrib/spree-multi-domain.svg?branch=master)](https://travis-ci.org/spree-contrib/spree-multi-domain) | Multiple Spree stores on different domains - single unified backed for processing orders
|
154
144
|
| [spree_multi_currency](https://github.com/spree-contrib/spree_multi_currency) | [![Build Status](https://travis-ci.org/spree-contrib/spree_multi_currency.svg?branch=master)](https://travis-ci.org/spree-contrib/spree_multi_currency) | Provides UI to allow configuring multiple currencies in Spree |
|
145
|
+
| [spree_multi_vendor](https://github.com/spree-contrib/spree_multi_vendor) | [![Build Status](https://travis-ci.org/spree-contrib/spree_multi_vendor.svg?branch=master)](https://travis-ci.org/spree-contrib/spree_multi_vendor) | Spree Multi Vendor Marketplace extension |
|
146
|
+
| [spree-mollie-gateway](https://github.com/mollie/spree-mollie-gateway) | [![Build Status](https://travis-ci.org/mollie/spree-mollie-gateway.svg?branch=master)](https://github.com/mollie/spree-mollie-gateway) | Official [Mollie](https://www.mollie.com) payment gateway for Spree Commerce. |
|
155
147
|
| [spree_braintree_vzero](https://github.com/spree-contrib/spree_braintree_vzero) | [![Build Status](https://travis-ci.org/spree-contrib/spree_braintree_vzero.svg?branch=master)](https://travis-ci.org/spree-contrib/spree_braintree_vzero) | Official Spree Braintree v.zero + PayPal extension |
|
156
148
|
| [spree_address_book](https://github.com/spree-contrib/spree_address_book) | [![Build Status](https://travis-ci.org/spree-contrib/spree_address_book.svg?branch=master)](https://travis-ci.org/spree-contrib/spree_address_book) | Adds address book for users to Spree |
|
157
149
|
| [spree_digital](https://github.com/spree-contrib/spree_digital) | [![Build Status](https://travis-ci.org/spree-contrib/spree_digital.svg?branch=master)](https://travis-ci.org/spree-contrib/spree_digital) | A Spree extension to enable downloadable products |
|
158
150
|
| [spree_social](https://github.com/spree-contrib/spree_social) |[![Build Status](https://travis-ci.org/spree-contrib/spree_social.svg?branch=master)](https://travis-ci.org/spree-contrib/spree_social) | Building block for spree social networking features (provides authentication and account linkage) |
|
159
151
|
| [spree_related_products](https://github.com/spree-contrib/spree_related_products) | [![Build Status](https://travis-ci.org/spree-contrib/spree_related_products.svg?branch=master)](https://travis-ci.org/spree-contrib/spree_related_products) | Related products extension for Spree
|
160
|
-
| [spree_active_shipping](https://github.com/spree-contrib/spree_active_shipping) | [![Build Status](https://travis-ci.org/spree-contrib/spree_active_shipping.svg?branch=master)](https://travis-ci.org/spree-contrib/spree_active_shipping) | Spree integration for Shopify's active_shipping gem
|
161
152
|
| [spree_static_content](https://github.com/spree-contrib/spree_static_content) | [![Build Status](https://travis-ci.org/spree-contrib/spree_static_content.svg?branch=master)](https://travis-ci.org/spree-contrib/spree_static_content) | Manage static pages for Spree |
|
162
153
|
| [spree-product-assembly](https://github.com/spree-contrib/spree-product-assembly) | [![Build Status](https://travis-ci.org/spree-contrib/spree-product-assembly.svg?branch=master)](https://travis-ci.org/spree-contrib/spree-product-assembly) | Adds oportunity to make bundle of products |
|
163
154
|
| [spree_editor](https://github.com/spree-contrib/spree_editor) | [![Build Status](https://travis-ci.org/spree-contrib/spree_editor.svg?branch=master)](https://travis-ci.org/spree-contrib/spree_editor) | Rich text editor for Spree with Image and File uploading in-place |
|
@@ -265,11 +256,9 @@ please ensure that you have a postgres user:
|
|
265
256
|
createuser -s -r postgres
|
266
257
|
```
|
267
258
|
|
268
|
-
And also ensure that you have [
|
269
|
-
|
270
|
-
|
271
|
-
brew update && brew install phantomjs
|
272
|
-
```
|
259
|
+
And also ensure that you have [ChromeDriver](http://chromedriver.chromium.org) installed as well.
|
260
|
+
Please follow this
|
261
|
+
[instruction](https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver) to install it.
|
273
262
|
|
274
263
|
To execute all the tests, you may want to run this command at the
|
275
264
|
root of the Spree project to generate test applications and run
|
@@ -304,3 +293,15 @@ License
|
|
304
293
|
----------------------
|
305
294
|
|
306
295
|
Spree is released under the [New BSD License](https://github.com/spree/spree/blob/master/license.md).
|
296
|
+
|
297
|
+
|
298
|
+
About Spark Solutions
|
299
|
+
----------------------
|
300
|
+
[![Spark Solutions](http://sparksolutions.co/wp-content/uploads/2015/01/logo-ss-tr-221x100.png)][spark]
|
301
|
+
|
302
|
+
Spree is maintained by [Spark Solutions Sp. z o.o.][spark].
|
303
|
+
|
304
|
+
We are passionate about open source software.
|
305
|
+
We are [available for hire][spark].
|
306
|
+
|
307
|
+
[spark]:http://sparksolutions.co?utm_source=github
|
data/lib/sandbox.sh
CHANGED
@@ -27,7 +27,8 @@ bundle exec rails new sandbox --database="$RAILSDB" \
|
|
27
27
|
--skip-rc \
|
28
28
|
--skip-spring \
|
29
29
|
--skip-test \
|
30
|
-
--skip-yarn
|
30
|
+
--skip-yarn \
|
31
|
+
--skip-coffee
|
31
32
|
|
32
33
|
if [ ! -d "sandbox" ]; then
|
33
34
|
echo 'sandbox rails application failed'
|
@@ -36,14 +37,28 @@ fi
|
|
36
37
|
|
37
38
|
cd ./sandbox
|
38
39
|
|
40
|
+
if [ "$SPREE_AUTH_DEVISE_PATH" != "" ]; then
|
41
|
+
SPREE_AUTH_DEVISE_GEM="gem 'spree_auth_devise', path: '$SPREE_AUTH_DEVISE_PATH'"
|
42
|
+
else
|
43
|
+
SPREE_AUTH_DEVISE_GEM="gem 'spree_auth_devise', github: 'spree/spree_auth_devise', branch: 'master'"
|
44
|
+
fi
|
45
|
+
|
46
|
+
if [ "$SPREE_GATEWAY_PATH" != "" ]; then
|
47
|
+
SPREE_GATEWAY_GEM="gem 'spree_gateway', path: '$SPREE_GATEWAY_PATH'"
|
48
|
+
else
|
49
|
+
SPREE_GATEWAY_GEM="gem 'spree_gateway', github: 'spree/spree_gateway', branch: 'master'"
|
50
|
+
fi
|
51
|
+
|
39
52
|
cat <<RUBY >> Gemfile
|
40
53
|
gem 'spree', path: '..'
|
41
|
-
|
54
|
+
$SPREE_AUTH_DEVISE_GEM
|
55
|
+
$SPREE_GATEWAY_GEM
|
42
56
|
|
43
57
|
group :test, :development do
|
44
58
|
gem 'bullet'
|
45
59
|
gem 'pry-byebug'
|
46
60
|
gem 'rack-mini-profiler'
|
61
|
+
gem 'awesome_print'
|
47
62
|
end
|
48
63
|
RUBY
|
49
64
|
|
@@ -52,3 +67,4 @@ bundle exec rails db:drop || true
|
|
52
67
|
bundle exec rails db:create
|
53
68
|
bundle exec rails g spree:install --auto-accept --user_class=Spree::User --enforce_available_locales=true --copy_views=false
|
54
69
|
bundle exec rails g spree:auth:install
|
70
|
+
bundle exec rails g spree_gateway:install
|
data/lib/spree.rb
CHANGED
@@ -3,13 +3,3 @@ require 'spree_api'
|
|
3
3
|
require 'spree_backend'
|
4
4
|
require 'spree_frontend'
|
5
5
|
require 'spree_sample'
|
6
|
-
|
7
|
-
begin
|
8
|
-
require 'protected_attributes'
|
9
|
-
puts '*' * 75
|
10
|
-
puts '[FATAL] Spree does not work with the protected_attributes gem installed!'
|
11
|
-
puts 'You MUST remove this gem from your Gemfile. It is incompatible with Spree.'
|
12
|
-
puts '*' * 75
|
13
|
-
exit
|
14
|
-
rescue LoadError
|
15
|
-
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sean Schofield
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-02-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: spree_core
|
@@ -16,84 +16,84 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.
|
19
|
+
version: 3.7.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.
|
26
|
+
version: 3.7.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: spree_api
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 3.
|
33
|
+
version: 3.7.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 3.
|
40
|
+
version: 3.7.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: spree_backend
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - '='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 3.
|
47
|
+
version: 3.7.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 3.
|
54
|
+
version: 3.7.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: spree_frontend
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - '='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 3.
|
61
|
+
version: 3.7.0
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - '='
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 3.
|
68
|
+
version: 3.7.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: spree_sample
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - '='
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 3.
|
75
|
+
version: 3.7.0
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - '='
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 3.
|
82
|
+
version: 3.7.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: spree_cmd
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - '='
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 3.
|
89
|
+
version: 3.7.0
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - '='
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 3.
|
96
|
+
version: 3.7.0
|
97
97
|
description: Spree is an open source e-commerce framework for Ruby on Rails. Join
|
98
98
|
us on http://slack.spreecommerce.org
|
99
99
|
email: sean@spreecommerce.com
|
@@ -116,7 +116,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
116
116
|
requirements:
|
117
117
|
- - ">="
|
118
118
|
- !ruby/object:Gem::Version
|
119
|
-
version: 2.
|
119
|
+
version: 2.3.3
|
120
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - ">="
|
@@ -124,8 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
124
124
|
version: '0'
|
125
125
|
requirements:
|
126
126
|
- none
|
127
|
-
|
128
|
-
rubygems_version: 2.7.6
|
127
|
+
rubygems_version: 3.0.2
|
129
128
|
signing_key:
|
130
129
|
specification_version: 4
|
131
130
|
summary: Full-stack e-commerce framework for Ruby on Rails.
|