crud_for 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1,3 @@
1
+ require 'bundler'
2
+
3
+ Bundler::GemHelper.install_tasks
data/crud_for.gemspec ADDED
@@ -0,0 +1,23 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "crud_for/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "crud_for"
7
+ s.version = CrudFor::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Marcello Milhomem Albuquerque"]
10
+ s.email = ["marcello.m.albuquerque@gmail.com"]
11
+ s.homepage = "https://github.com/marcelloma/crud_for"
12
+ s.summary = %q{Simplifies CRUD development}
13
+ s.description = %q{Simplifies CRUD development}
14
+
15
+ s.rubyforge_project = "crud_for"
16
+
17
+ s.add_dependency('decent_exposure', "~> 1.0.1")
18
+
19
+ s.files = `git ls-files`.split("\n")
20
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
21
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
22
+ s.require_paths = ["lib"]
23
+ end
@@ -0,0 +1,61 @@
1
+ module Methods
2
+
3
+ def crud_for(model, options)
4
+
5
+ _options = {
6
+ :create => true,
7
+ :update => true,
8
+ :destroy => true,
9
+ :search => defined?(MetaSearch),
10
+ :paginate => defined?(WillPaginate)
11
+ }
12
+
13
+ _options.merge!(options)
14
+
15
+ expose(model.to_sym)
16
+
17
+ if _options[:paginate] && _options[:search]
18
+ expose(model.to_s.pluralize.to_sym) { search.paginate(:page => params[:page]) }
19
+ else
20
+ if _options[:paginate]
21
+ expose(model.to_s.pluralize.to_sym) { model.to_s.capitalize.constantize.paginate(:page => params[:page]) }
22
+ else
23
+ if _options[:search]
24
+ expose(model.to_s.pluralize.to_sym) { search.all }
25
+ else
26
+ expose(model.to_s.pluralize.to_sym) { model.to_s.capitalize.constantize.all }
27
+ end
28
+ end
29
+ end
30
+
31
+ expose(:search) { model.to_s.capitalize.constantize.search(params[:search]) } if _options[:search]
32
+
33
+ self.class_eval %"
34
+ def create
35
+ if #{model}.save
36
+ redirect_to #{model.to_s.pluralize}_url, I18n.t(:create_success, :model => #{model.to_s.capitalize.constantize}.human_name)
37
+ else
38
+ render 'new'
39
+ end
40
+ end
41
+ " if _options[:create]
42
+
43
+ self.class_eval %"
44
+ def update
45
+ if #{model}.update_attributes(params['#{model.to_sym}'])
46
+ redirect_to #{model.to_s.pluralize}_url, I18n.t(:update_success, :model => #{model.to_s.capitalize.constantize}.human_name)
47
+ else
48
+
49
+ end
50
+ end
51
+ " if _options[:update]
52
+
53
+ self.class_eval %"
54
+ def destroy
55
+ #{model}.destroy
56
+ redirect_to #{model.to_s.pluralize}_url, I18n.t(:destroy_success, :model => #{model.to_s.capitalize.constantize}.human_name)
57
+ end
58
+ " if _options[:destroy]
59
+
60
+ end
61
+ end
@@ -0,0 +1,11 @@
1
+ module CrudFor
2
+
3
+ class Railtie < Rails::Railtie
4
+ initializer "application_controller.initialize_crud_for" do
5
+ ActiveSupport.on_load(:action_controller) do
6
+ extend Methods
7
+ end
8
+ end
9
+ end
10
+
11
+ end
@@ -0,0 +1,3 @@
1
+ module CrudFor
2
+ VERSION = "0.0.1"
3
+ end
data/lib/crud_for.rb ADDED
@@ -0,0 +1,4 @@
1
+ module CrudFor
2
+ require 'crud_for/methods'
3
+ require 'crud_for/railtie' if defined?(Rails)
4
+ end
metadata ADDED
@@ -0,0 +1,90 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: crud_for
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Marcello Milhomem Albuquerque
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-06-11 00:00:00 -03:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: decent_exposure
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ hash: 21
30
+ segments:
31
+ - 1
32
+ - 0
33
+ - 1
34
+ version: 1.0.1
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ description: Simplifies CRUD development
38
+ email:
39
+ - marcello.m.albuquerque@gmail.com
40
+ executables: []
41
+
42
+ extensions: []
43
+
44
+ extra_rdoc_files: []
45
+
46
+ files:
47
+ - .gitignore
48
+ - Gemfile
49
+ - Rakefile
50
+ - crud_for.gemspec
51
+ - lib/crud_for.rb
52
+ - lib/crud_for/methods.rb
53
+ - lib/crud_for/railtie.rb
54
+ - lib/crud_for/version.rb
55
+ has_rdoc: true
56
+ homepage: https://github.com/marcelloma/crud_for
57
+ licenses: []
58
+
59
+ post_install_message:
60
+ rdoc_options: []
61
+
62
+ require_paths:
63
+ - lib
64
+ required_ruby_version: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ hash: 3
70
+ segments:
71
+ - 0
72
+ version: "0"
73
+ required_rubygems_version: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ hash: 3
79
+ segments:
80
+ - 0
81
+ version: "0"
82
+ requirements: []
83
+
84
+ rubyforge_project: crud_for
85
+ rubygems_version: 1.6.2
86
+ signing_key:
87
+ specification_version: 3
88
+ summary: Simplifies CRUD development
89
+ test_files: []
90
+