amos 0.0.1 → 0.0.2

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 (2) hide show
  1. data/README.rdoc +58 -5
  2. metadata +5 -5
data/README.rdoc CHANGED
@@ -3,12 +3,15 @@
3
3
  AMOS is a rails plugin that provides a simple server that uses the url to decide which model to deliver. It is intended for
4
4
  front-end applications that use something like javascriptMVC.
5
5
 
6
- E.g. If the incoming request is /recipe it executes the index action which does a find(:all) in the Recipe modes.
6
+ E.g. If the incoming request is /recipe it executes the index action which does a find(:all) on the Recipe model.
7
7
 
8
8
  == Supported actions
9
9
 
10
10
  :get => "/user" returns array of all users
11
+ :get => "/user?fields=name,email" returns only the name and email attributes
11
12
  :get => "/users/1" returns record for user 1
13
+ :get => "/users/1?fields=name,email" returns only the name and email attributes for user 1
14
+ :get => "/users/1?associations=posts" returns the record for user plus any post
12
15
  :delete => "/users/1" deletes record 1 from users, returns success => true / false
13
16
  :put => "/users/1" + form data. Updates user record 1. Returns success => true / false
14
17
  :post => "/users" + form data. Returns details of new record on success, or errors array on failure
@@ -17,8 +20,58 @@ E.g. If the incoming request is /recipe it executes the index action which does
17
20
 
18
21
  Distributed under the MIT License, all rights reserved 2011 Geoff Drake
19
22
 
23
+ == Installation
24
+ Create a rails application as normal using:
25
+
26
+ rails create MyApp
27
+
28
+ Add the following line to your Gemfile
29
+
30
+ gem 'amos'
31
+
32
+ Run
33
+ bundle install
34
+
35
+ Amos uses cancan[https://github.com/ryanb/cancan] for its security checking so you need to add the following class in *app/models/ability.rb*
36
+
37
+ class Ability
38
+ include CanCan::Ability
39
+
40
+ def initialize(user)
41
+ can :manage, :all
42
+ end
43
+ end
44
+
45
+ Replace the code inside the initialize with your requirements. There is a skeleton class in lib/app/models/ability.rb, so
46
+ if you are getting authorisation errors you have not overridden that version.
47
+
48
+ Cancan also needs access to a method called current_user in the controllers. If you are using devise or similar
49
+ this should automatically be available.
50
+
51
+ If not you will need to define the following in your Applicationcontroller class:
52
+
53
+ class ApplicationController < ActionController::Base
54
+ def current_user
55
+ nil
56
+ end
57
+ end
58
+
59
+ If you are using user authentication replace the nil return with the current user record.
60
+
61
+ Finally create some models that match the code you have on the front-end.
62
+
63
+ rails g model recipes name:string description:string
64
+
65
+ And start the server
66
+
67
+ rails s
68
+
69
+ Your models should now be available on /recipe etc.
70
+
71
+ Take a look at spec/controllers/amos_controller_spec.rb and test/dummy/features/amos.feature for some examples of accessing
72
+ the data and what is returned.
73
+
74
+
20
75
  == Thing to to
21
- * Publish as a gem
22
- * Add installation instructions
23
- * Add security
24
- * More tests against a javascriptMVC application
76
+ * More tests against a javascriptMVC application
77
+ * Add code to support rails dynamic finders.
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amos
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Geoff Drake
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-10-02 00:00:00 +02:00
18
+ date: 2011-10-05 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -49,7 +49,7 @@ files:
49
49
  - Rakefile
50
50
  - README.rdoc
51
51
  has_rdoc: true
52
- homepage:
52
+ homepage: http://rubygems.org/gems/amos
53
53
  licenses: []
54
54
 
55
55
  post_install_message: