orange 0.5.7 → 0.5.8
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.markdown +13 -158
- data/lib/orange.rb +2 -1
- metadata +42 -8
data/README.markdown
CHANGED
@@ -1,172 +1,27 @@
|
|
1
|
-
|
2
|
-
======
|
1
|
+
This gem is a metagem for orange-core and orange-more. For more information, visit one of those projects:
|
3
2
|
|
4
|
-
Orange
|
5
|
-
and the power of Rails. Orange is being developed by Orange Sparkle Ball, inc
|
6
|
-
for our own use. Our main focus is on creating a super-extensible CMS
|
7
|
-
with Orange, but we're trying to make the components as reusable as possible. Our
|
8
|
-
intention is to be ready to use Orange for most client website builds by
|
9
|
-
May 2010.
|
3
|
+
**Orange Core**
|
10
4
|
|
11
|
-
|
12
|
-
Tread carefully.
|
5
|
+
The heart of the Orange library. Main documentation here.
|
13
6
|
|
14
|
-
|
15
|
-
=================================
|
7
|
+
[http://www.github.com/therabidbanana/orange-core](http://www.github.com/therabidbanana/orange-core)
|
16
8
|
|
17
|
-
|
9
|
+
**Orange More**
|
18
10
|
|
19
|
-
|
11
|
+
Various plugins developed to work with orange. These are optional and were split off to keep the core small.
|
20
12
|
|
21
|
-
|
13
|
+
[http://www.github.com/therabidbanana/orange-more](http://www.github.com/therabidbanana/orange-more)
|
22
14
|
|
23
|
-
|
24
|
-
|
25
|
-
class App < Orange::Application
|
26
|
-
end
|
15
|
+
About Orange
|
16
|
+
============
|
27
17
|
|
28
|
-
|
29
|
-
Put this line in your rackup file...
|
18
|
+
Orange is a framework for building simple CMS sites without the colossal framework Rails requires. The goal is to host Ruby websites with Sinatra-like ease, while not giving up completely on the idea of MVC (when it's useful).
|
30
19
|
|
31
|
-
|
20
|
+
Orange is not intended to be a general purpose full-featured framework, so if you're looking for a framework with testing built in and migrations and lots of generators, Rails is probably your best bet.
|
32
21
|
|
33
|
-
|
34
|
-
run App.app
|
35
|
-
|
36
|
-
Run rack however you run rack.
|
37
|
-
|
38
|
-
Look at that, a full fledged CMS in 6 lines! Not so impressive, it's all prebuilt,
|
39
|
-
right? The real question is how hard is it to customize?
|
40
|
-
|
41
|
-
I want my pages to have more than just titles and bodies. I want sidebars...
|
42
|
-
|
43
|
-
**app.rb:**
|
44
|
-
|
45
|
-
require 'rubygems'
|
46
|
-
require 'orange'
|
47
|
-
class App < Orange::Application
|
48
|
-
end
|
49
|
-
class Orange::Page
|
50
|
-
markdown :sidebar, :context => [:front]
|
51
|
-
end
|
52
|
-
|
53
|
-
We now have a sidebar that anybody can see. The backend scaffolding will adapt to allow
|
54
|
-
editing, and the front end will print it out for each page. Slap some CSS on it to make it
|
55
|
-
look like a sidebar, and tada!
|
56
|
-
|
57
|
-
Pages now have sidebars, in three lines of code and some
|
58
|
-
styling. No migrations (we rely on DataMapper's auto_upgrade functionality), no extra
|
59
|
-
files (unless we want them).
|
60
|
-
|
61
|
-
More Info
|
62
|
-
=========
|
63
|
-
|
64
|
-
Orange Philosophy
|
65
|
-
-----------------
|
66
|
-
The Orange application framework is intended to be a fully customizable CMS
|
67
|
-
capable of hosting multiple sites while maintaining Sinatra-like ease of
|
68
|
-
programming. Some core ideas behind Orange:
|
69
|
-
|
70
|
-
* Scaffolding doesn't have to be replaced if it's smart enough (most of the time)
|
71
|
-
* Put as much functionality into middleware as possible, so it can be easily reused
|
72
|
-
and remixed
|
73
|
-
* Give middleware a little more power so it's useful enough to handle more tasks
|
74
|
-
|
75
|
-
|
76
|
-
Should I Use Orange?
|
77
|
-
--------------------
|
78
|
-
Not right now, unless you want to write half the framework yourself.
|
79
|
-
|
80
|
-
|
81
|
-
When it's finished, would I want to use it?
|
82
|
-
-------------------------------------------
|
83
|
-
Depends on what you're looking for. Orange has a middleware stack intended to
|
84
|
-
be reused. If the stack has something you'd like, you could theoretically
|
85
|
-
put the middleware stack on top of Sinatra or Rails. (This hasn't actually
|
86
|
-
been tested yet.)
|
87
|
-
|
88
|
-
The full Orange application framework is intended to run
|
89
|
-
as an easily extensible CMS. We tend to think that having lots of tests
|
90
|
-
and full MVC separation just so you can add an extra type of page to the CMS
|
91
|
-
is a bit overkill. We designed this to replace ModX in our web builds for clients.
|
92
|
-
|
93
|
-
Required Gems
|
94
|
-
-------------
|
95
|
-
|
96
|
-
* dm-core (+ do_[sqlite3|mysql|...] )
|
97
|
-
* dm-more
|
98
|
-
* dm-is-awesome_set
|
99
|
-
* rack
|
100
|
-
* haml
|
101
|
-
* rack-abstract-format (github)
|
102
|
-
* ruby-openid
|
103
|
-
* rack-openid
|
104
|
-
* openid_dm_store
|
105
|
-
* radius
|
106
|
-
* crack
|
107
|
-
* eventbright
|
108
|
-
* spreedly
|
109
|
-
* hominid
|
110
|
-
* mail
|
111
|
-
* tlsmail (If Ruby version <= 1.8.6)
|
112
|
-
* gattica
|
113
|
-
|
114
|
-
All dependencies should be loaded if you install the gem except for the datamapper
|
115
|
-
adapter relevant to your set up. If, for example, you want to use a mysql database,
|
116
|
-
you'll need to install do_mysql, and for an sqlite3 database, you'll need do_sqlite3
|
117
|
-
|
118
|
-
|
119
|
-
Also, you'll need a web server of some kind and need to set it up for rack.
|
120
|
-
|
121
|
-
**Testing**
|
122
|
-
|
123
|
-
If you want to test, you'll need the following gems:
|
124
|
-
|
125
|
-
* rspec
|
126
|
-
* rack-test
|
127
|
-
|
128
|
-
Yard is also helpful for generating API docs
|
129
|
-
|
130
|
-
The following are useful rake tasks for testing purposes:
|
131
|
-
|
132
|
-
* rake test => (same as rake spec)
|
133
|
-
* rake spec => runs rspec with color enabled and spec_helper included
|
134
|
-
* rake doc => runs yardoc (no, not really necessary)
|
135
|
-
* rake clean => clear out the temporary files not included in the repo
|
136
|
-
* rake rcov => runs rspec with rcov
|
137
|
-
|
138
|
-
For my own reference - jeweler rake task for deploying the new gem:
|
139
|
-
|
140
|
-
* rake version:bump:patch release
|
141
|
-
|
142
|
-
Programming Info
|
143
|
-
================
|
144
|
-
|
145
|
-
The basics of using the orange framework...
|
146
|
-
|
147
|
-
Terminology
|
148
|
-
-----------
|
149
|
-
|
150
|
-
* **Application**: The last stop for the packet after traversing through the middleware stack.
|
151
|
-
* **Core**: This is the core orange object, accessible from all points of the orange
|
152
|
-
system. Usually the orange instance can be called by simply using the "orange" function
|
153
|
-
* **Mixins**: Extra functionality added directly to the core. Mixins are generally for only
|
154
|
-
a couple of extra methods, anything more should probably be created as a resource.
|
155
|
-
* **Packet**: This object represents a web request coming in to the orange system.
|
156
|
-
Each request is instantiated as a packet before it is sent through the middleware stack.
|
157
|
-
* **Pulp**: Mixin added to the packet object rather than the Core.
|
158
|
-
* **Resources**: Resources are extra functionality contained within an object, accessible
|
159
|
-
from the core.
|
160
|
-
* **Stack**: The bundled collection of Orange-enhanced middleware sitting on top of the
|
161
|
-
Orange application
|
162
|
-
|
163
|
-
Pulp and Mixins
|
164
|
-
---------------
|
165
|
-
The ability to add pulp and mixins is incredibly handy because the packet and the core are
|
166
|
-
available from just about anywhere in the Orange framework. For instance, the haml parser
|
167
|
-
evaluates all local calls as if made to the packet, so adding pulp is essentially adding
|
168
|
-
functionality that is directly available to haml.
|
22
|
+
Orange is not intended to fix maximum functionality into a tiny single file. We're small, but our goal isn't to beat Sinatra on a lines of code basis. If you want the bare minimum necessary to create a tiny RESTful app, you just can't beat Sinatra.
|
169
23
|
|
24
|
+
Orange is (trying to be) the middle ground between those two extremes. It's built for the people in the middle - the ones who want to pick up Ruby for small websites they're working on, and don't want to have to go into the hassle of learning a massive framework like Rails, or the effort of creating a CMS from the foundation Sinatra provides.
|
170
25
|
|
171
26
|
LICENSE:
|
172
27
|
=========
|
data/lib/orange.rb
CHANGED
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: orange
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 5
|
8
|
-
-
|
9
|
-
version: 0.5.
|
9
|
+
- 8
|
10
|
+
version: 0.5.8
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- David Haslem
|
@@ -14,16 +15,18 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2010-07-
|
18
|
+
date: 2010-07-08 00:00:00 -04:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: rack
|
22
23
|
prerelease: false
|
23
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
24
26
|
requirements:
|
25
27
|
- - ">="
|
26
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 21
|
27
30
|
segments:
|
28
31
|
- 1
|
29
32
|
- 0
|
@@ -35,9 +38,11 @@ dependencies:
|
|
35
38
|
name: orange-core
|
36
39
|
prerelease: false
|
37
40
|
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
38
42
|
requirements:
|
39
43
|
- - ">="
|
40
44
|
- !ruby/object:Gem::Version
|
45
|
+
hash: 5
|
41
46
|
segments:
|
42
47
|
- 0
|
43
48
|
- 5
|
@@ -49,9 +54,11 @@ dependencies:
|
|
49
54
|
name: orange-more
|
50
55
|
prerelease: false
|
51
56
|
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
52
58
|
requirements:
|
53
59
|
- - ">="
|
54
60
|
- !ruby/object:Gem::Version
|
61
|
+
hash: 5
|
55
62
|
segments:
|
56
63
|
- 0
|
57
64
|
- 5
|
@@ -60,29 +67,49 @@ dependencies:
|
|
60
67
|
type: :runtime
|
61
68
|
version_requirements: *id003
|
62
69
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
70
|
+
name: orange-sparkles
|
64
71
|
prerelease: false
|
65
72
|
requirement: &id004 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
66
74
|
requirements:
|
67
75
|
- - ">="
|
68
76
|
- !ruby/object:Gem::Version
|
77
|
+
hash: 5
|
69
78
|
segments:
|
70
79
|
- 0
|
71
|
-
|
72
|
-
|
80
|
+
- 5
|
81
|
+
- 7
|
82
|
+
version: 0.5.7
|
83
|
+
type: :runtime
|
73
84
|
version_requirements: *id004
|
74
85
|
- !ruby/object:Gem::Dependency
|
75
|
-
name:
|
86
|
+
name: rspec
|
76
87
|
prerelease: false
|
77
88
|
requirement: &id005 !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
78
90
|
requirements:
|
79
91
|
- - ">="
|
80
92
|
- !ruby/object:Gem::Version
|
93
|
+
hash: 3
|
81
94
|
segments:
|
82
95
|
- 0
|
83
96
|
version: "0"
|
84
97
|
type: :development
|
85
98
|
version_requirements: *id005
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: rack-test
|
101
|
+
prerelease: false
|
102
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
103
|
+
none: false
|
104
|
+
requirements:
|
105
|
+
- - ">="
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
hash: 3
|
108
|
+
segments:
|
109
|
+
- 0
|
110
|
+
version: "0"
|
111
|
+
type: :development
|
112
|
+
version_requirements: *id006
|
86
113
|
description: Orange is a Ruby framework for building managed websites with code as simple as Sinatra
|
87
114
|
email: therabidbanana@gmail.com
|
88
115
|
executables: []
|
@@ -94,6 +121,9 @@ extra_rdoc_files:
|
|
94
121
|
files:
|
95
122
|
- lib/orange.rb
|
96
123
|
- README.markdown
|
124
|
+
- spec/orange_spec.rb
|
125
|
+
- spec/spec_helper.rb
|
126
|
+
- spec/stats.rb
|
97
127
|
has_rdoc: true
|
98
128
|
homepage: http://github.com/therabidbanana/orange
|
99
129
|
licenses: []
|
@@ -104,23 +134,27 @@ rdoc_options:
|
|
104
134
|
require_paths:
|
105
135
|
- lib
|
106
136
|
required_ruby_version: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
107
138
|
requirements:
|
108
139
|
- - ">="
|
109
140
|
- !ruby/object:Gem::Version
|
141
|
+
hash: 3
|
110
142
|
segments:
|
111
143
|
- 0
|
112
144
|
version: "0"
|
113
145
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
146
|
+
none: false
|
114
147
|
requirements:
|
115
148
|
- - ">="
|
116
149
|
- !ruby/object:Gem::Version
|
150
|
+
hash: 3
|
117
151
|
segments:
|
118
152
|
- 0
|
119
153
|
version: "0"
|
120
154
|
requirements: []
|
121
155
|
|
122
156
|
rubyforge_project:
|
123
|
-
rubygems_version: 1.3.
|
157
|
+
rubygems_version: 1.3.7
|
124
158
|
signing_key:
|
125
159
|
specification_version: 3
|
126
160
|
summary: Middle ground between Sinatra and Rails
|