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.
Files changed (3) hide show
  1. data/README.markdown +13 -158
  2. data/lib/orange.rb +2 -1
  3. metadata +42 -8
@@ -1,172 +1,27 @@
1
- Orange
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 is intended to be a middle ground between the simplicity of Sinatra
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
- **Note**: Orange is still in the alpha stage. Test coverage is lack-luster at best.
12
- Tread carefully.
5
+ The heart of the Orange library. Main documentation here.
13
6
 
14
- A (Theoretical) Example of Orange
15
- =================================
7
+ [http://www.github.com/therabidbanana/orange-core](http://www.github.com/therabidbanana/orange-core)
16
8
 
17
- _This doesn't actually work quite yet, but it's the goal we're working toward._
9
+ **Orange More**
18
10
 
19
- After installing the orange gem, create an 'app.rb'
11
+ Various plugins developed to work with orange. These are optional and were split off to keep the core small.
20
12
 
21
- **app.rb:**
13
+ [http://www.github.com/therabidbanana/orange-more](http://www.github.com/therabidbanana/orange-more)
22
14
 
23
- require 'rubygems'
24
- require 'orange'
25
- class App < Orange::Application
26
- end
15
+ About Orange
16
+ ============
27
17
 
28
- You now have an Orange CMS that can be made by calling "App.app".
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
- **config.ru:**
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
- require 'app'
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
  =========
@@ -1,2 +1,3 @@
1
1
  require 'orange-core'
2
- require 'orange-more'
2
+ require 'orange-more'
3
+ require 'orange-sparkles'
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
- - 7
9
- version: 0.5.7
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-07 00:00:00 -04:00
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: rspec
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
- version: "0"
72
- type: :development
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: rack-test
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.6
157
+ rubygems_version: 1.3.7
124
158
  signing_key:
125
159
  specification_version: 3
126
160
  summary: Middle ground between Sinatra and Rails