crud 0.0.3
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.
- checksums.yaml +7 -0
- data/CHANGELOG +1 -0
- data/LICENSE.md +674 -0
- data/README.md +136 -0
- data/Rakefile +72 -0
- data/app/assets/images/crud/search-icon.png +0 -0
- data/app/assets/javascripts/crud/application.js +17 -0
- data/app/assets/javascripts/crud/dashboard.js +7 -0
- data/app/assets/javascripts/crud/pagination.js +41 -0
- data/app/assets/stylesheets/crud/application.css +27 -0
- data/app/assets/stylesheets/crud/dashboard.css +4 -0
- data/app/assets/stylesheets/crud/flash_notices.css +19 -0
- data/app/assets/stylesheets/crud/pagination.css +104 -0
- data/app/assets/stylesheets/dataTables/jquery.dataTables-override.css +20 -0
- data/app/controllers/crud/crud_base_controller.rb +28 -0
- data/app/controllers/crud/crud_controller.rb +149 -0
- data/app/controllers/crud/dashboard_controller.rb +17 -0
- data/app/helpers/crud/crud_helper.rb +104 -0
- data/app/helpers/crud/dashboard_helper.rb +4 -0
- data/app/models/crud/klass_info.rb +166 -0
- data/app/models/crud/klass_list.rb +51 -0
- data/app/models/crud/menus/development_menu.rb +63 -0
- data/app/views/crud/crud/_attribute_value.html.erb +5 -0
- data/app/views/crud/crud/_error_messages.html.erb +10 -0
- data/app/views/crud/crud/_flash_messages.html.erb +10 -0
- data/app/views/crud/crud/_form.html.erb +22 -0
- data/app/views/crud/crud/_klass_data.html.erb +117 -0
- data/app/views/crud/crud/edit.html.erb +17 -0
- data/app/views/crud/crud/index.html.erb +6 -0
- data/app/views/crud/crud/index.js.erb +1 -0
- data/app/views/crud/crud/new.html.erb +13 -0
- data/app/views/crud/crud/show.html.erb +69 -0
- data/app/views/crud/dashboard/index.html.erb +15 -0
- data/app/views/layouts/crud/application.html.erb +13 -0
- data/config/cucumber.yml +8 -0
- data/config/initializers/inflections.rb +5 -0
- data/config/initializers/rails_engine.rb +8 -0
- data/config/initializers/will_paginate.rb +1 -0
- data/config/locales/de.yml +3 -0
- data/config/locales/en.yml +3 -0
- data/config/locales/es.yml +3 -0
- data/config/locales/fr.yml +3 -0
- data/config/routes.rb +16 -0
- data/crud.gemspec +29 -0
- data/lib/crud.rb +144 -0
- data/lib/crud/engine.rb +23 -0
- data/lib/crud/version.rb +3 -0
- data/lib/tasks/crud_tasks.rake +4 -0
- metadata +157 -0
@@ -0,0 +1 @@
|
|
1
|
+
WillPaginate.per_page = 10
|
data/config/routes.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
Crud::Engine.routes.draw do
|
2
|
+
|
3
|
+
controller 'crud' do
|
4
|
+
match '/model/*class_name/new', :to => :new, :via => :get, :as => :new
|
5
|
+
match '/model/*class_name/:id/delete', :to => :delete, :via => :delete, :as => :delete
|
6
|
+
match '/model/*class_name/:id/edit', :to => :edit, :via => :get, :as => :edit
|
7
|
+
match '/model/*class_name/:id', :to => :show, :via => :get, :as => :show
|
8
|
+
match '/model/*class_name/:id', :to => :update, :via => :put, :as => :update
|
9
|
+
match '/model/*class_name/:id', :to => :destroy, :via => :delete, :as => :destroy
|
10
|
+
match '/model/(*class_name)', :to => :create, :via => :post, :as => :create
|
11
|
+
match '/model/(*class_name)', :to => :index, :via => :get, :as => :index
|
12
|
+
end
|
13
|
+
|
14
|
+
#get 'dashboard' => 'dashboard#index'
|
15
|
+
root :to => "dashboard#index"
|
16
|
+
end
|
data/crud.gemspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# Encoding: UTF-8
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
|
4
|
+
# Maintain your gem's version:
|
5
|
+
require "crud/version"
|
6
|
+
|
7
|
+
# Describe your gem and declare its dependencies:
|
8
|
+
Gem::Specification.new do |s|
|
9
|
+
s.name = "crud"
|
10
|
+
s.version = Crud::VERSION.dup
|
11
|
+
s.authors = ["Everard Brown"]
|
12
|
+
s.email = ["Everard.Brown@htcl.eu"]
|
13
|
+
s.homepage = "https://github.com/htcl/crud"
|
14
|
+
s.summary = "Crud engine (v#{s.version})"
|
15
|
+
s.description = "Performs CRUD operations by reflection"
|
16
|
+
s.license = 'GPL-3.0'
|
17
|
+
|
18
|
+
s.files = Dir["{app,config,db,lib}/**/*"] + ["#{s.name}.gemspec", "Rakefile", "LICENSE.md", "README.md"]
|
19
|
+
#s.test_files = Dir["{test,spec,features}/**/*"]
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
|
22
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "crud", "--main", "README.md"]
|
23
|
+
s.extra_rdoc_files = ["CHANGELOG", "README.md", "lib/tasks/crud_tasks.rake", "lib/crud.rb"]
|
24
|
+
|
25
|
+
s.add_dependency 'rails'
|
26
|
+
s.add_dependency 'jquery-rails'
|
27
|
+
s.add_dependency 'jquery-ui-rails'
|
28
|
+
s.add_dependency 'will_paginate'
|
29
|
+
end
|
data/lib/crud.rb
ADDED
@@ -0,0 +1,144 @@
|
|
1
|
+
# To use the mattr functions, ActiveSupport dependencies are required.
|
2
|
+
#require 'rails'
|
3
|
+
require "active_support/dependencies"
|
4
|
+
|
5
|
+
module Crud
|
6
|
+
|
7
|
+
# The parent controller all engine controllers inherits from.
|
8
|
+
# Defaults to ApplicationController. This should be set early
|
9
|
+
# in the initialisation process and should be set to a string.
|
10
|
+
mattr_accessor :parent_controller
|
11
|
+
self.parent_controller = "ApplicationController"
|
12
|
+
|
13
|
+
# Our host application root path
|
14
|
+
# We set this when the engine is initialised
|
15
|
+
# mattr_accessor :app_root
|
16
|
+
# self.app_root = 'xyz'
|
17
|
+
|
18
|
+
# Allow clients to register paths containing models. The backend determines
|
19
|
+
# acceptable model sources.
|
20
|
+
#
|
21
|
+
# Clients may register additional paths like this:
|
22
|
+
# model_path << 'path/to/model/directory'
|
23
|
+
mattr_accessor :model_path
|
24
|
+
self.model_path ||= []
|
25
|
+
|
26
|
+
# Access permissions
|
27
|
+
#
|
28
|
+
# Holds the definition of a proc which should be called. If the returned
|
29
|
+
# value is true then user is granted the access. Otherwise access is denied.
|
30
|
+
mattr_writer :is_allowed_to_view
|
31
|
+
#self.is_allowed_to_view = true
|
32
|
+
def self.is_allowed_to_view
|
33
|
+
is_allowed = @@is_allowed_to_view.nil? ? lambda { return true } :
|
34
|
+
lambda {|controller| return ((@@is_allowed_to_view.class == Proc) ? @@is_allowed_to_view.call(controller) : @@is_allowed_to_view)}
|
35
|
+
|
36
|
+
is_allowed
|
37
|
+
end
|
38
|
+
|
39
|
+
# Holds the definition of a proc which should be called. If the returned
|
40
|
+
# value is true then user is granted the access. Otherwise access is denied.
|
41
|
+
mattr_writer :is_allowed_to_update
|
42
|
+
#self.is_allowed_to_update = false
|
43
|
+
def self.is_allowed_to_update
|
44
|
+
is_allowed = @@is_allowed_to_update.nil? ? lambda { |controller| return true } :
|
45
|
+
lambda {|controller| return ((@@is_allowed_to_update.class == Proc) ? @@is_allowed_to_update.call(controller) : @@is_allowed_to_update)}
|
46
|
+
|
47
|
+
is_allowed
|
48
|
+
end
|
49
|
+
|
50
|
+
# Allow clients to customise the appearance of fields when rendering model data.
|
51
|
+
#
|
52
|
+
# :class
|
53
|
+
# The fully qualified name of the model to which this definition applies
|
54
|
+
#
|
55
|
+
# NOTE: If :class is set to :all, the definition will apply to all models.
|
56
|
+
#
|
57
|
+
# :hidden_fields
|
58
|
+
# If :hidden_fields contains an existing column, the column will not be displayed
|
59
|
+
#
|
60
|
+
# :only
|
61
|
+
# Filter to define in which views this definition applies.
|
62
|
+
# Valid values: :index, :show, :new, :edit
|
63
|
+
#
|
64
|
+
# Clients may register column settings like this:
|
65
|
+
# column_settings << { :class => 'Model',
|
66
|
+
# :hidden_fields => [:id, :created_at, :updated_at],
|
67
|
+
# :only => [:index, :show ]
|
68
|
+
# }
|
69
|
+
#
|
70
|
+
# column_settings << { :class => :all,
|
71
|
+
# :hidden_fields => [:id, :created_at, :updated_at],
|
72
|
+
# :only => [:index, :show],
|
73
|
+
# }
|
74
|
+
#
|
75
|
+
mattr_accessor :column_settings
|
76
|
+
self.column_settings ||= []
|
77
|
+
|
78
|
+
# Allow clients to register additional customisation to fields when rendering
|
79
|
+
# model data.
|
80
|
+
#
|
81
|
+
# :global
|
82
|
+
# If :global is specified and set to 'true', the partial will be at the end
|
83
|
+
# as an extension of the active view.
|
84
|
+
#
|
85
|
+
# :column_name
|
86
|
+
# If :column_name is an existing column, the partial will be rendered alongside
|
87
|
+
# the default, unless :column_replacement is set to true
|
88
|
+
#
|
89
|
+
# NOTE: The functionality of :column_name and :global are mutually exclusive.
|
90
|
+
# As such, if both are specified, :global will take presedence
|
91
|
+
#
|
92
|
+
# :column_replacement
|
93
|
+
# Flag to indicate whether this customisation should replace the default or
|
94
|
+
# appear alongside the default.
|
95
|
+
#
|
96
|
+
# :record_data_parameter
|
97
|
+
# :record_data_parameter is the name of the symbol used for passing the record
|
98
|
+
# data to the partial.
|
99
|
+
#
|
100
|
+
# :additional_partial_parameters
|
101
|
+
# A hash containing any additional partial parameters
|
102
|
+
#
|
103
|
+
# :only
|
104
|
+
# Filter to define in which views the extension applies.
|
105
|
+
# Valid values: :index, :show, :new, :edit
|
106
|
+
#
|
107
|
+
# Clients may register custom fields like this:
|
108
|
+
# custom_fields << { :class => 'Model',
|
109
|
+
# :only => [:index, :show ],
|
110
|
+
# :global => false,
|
111
|
+
# :column_name => 'id',
|
112
|
+
# :column_replacement => true,
|
113
|
+
# :partial => 'partial_path', :record_data_parameter => 'data',
|
114
|
+
# :additional_partial_parameters => {:size => 20, :contract => true}
|
115
|
+
# }
|
116
|
+
#
|
117
|
+
mattr_accessor :custom_fields
|
118
|
+
self.custom_fields ||= []
|
119
|
+
|
120
|
+
# Default way to setup the engine.
|
121
|
+
#
|
122
|
+
# Run 'rails generate crud_install' to create a fresh initializer with all
|
123
|
+
# configuration values.
|
124
|
+
def self.setup
|
125
|
+
yield self
|
126
|
+
end
|
127
|
+
|
128
|
+
def self.railtie_name
|
129
|
+
::Crud::Engine.railtie_name
|
130
|
+
end
|
131
|
+
|
132
|
+
def self.mounted_path
|
133
|
+
::Crud::Engine.mounted_path
|
134
|
+
end
|
135
|
+
|
136
|
+
def self.root_path
|
137
|
+
::Crud::Engine.root
|
138
|
+
end
|
139
|
+
|
140
|
+
end
|
141
|
+
|
142
|
+
# Require our engine
|
143
|
+
require 'crud/version'
|
144
|
+
require 'crud/engine'
|
data/lib/crud/engine.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
module Crud
|
2
|
+
class Engine < ::Rails::Engine
|
3
|
+
isolate_namespace Crud
|
4
|
+
|
5
|
+
# Make the asset pipeline of the following gems available to the application
|
6
|
+
require 'jquery-rails'
|
7
|
+
require 'jquery-ui-rails'
|
8
|
+
#require 'jquery-datatables-rails'
|
9
|
+
require 'will_paginate'
|
10
|
+
|
11
|
+
#config.autoload_paths << File.expand_path("../validators", __FILE__)
|
12
|
+
|
13
|
+
config.generators do |g|
|
14
|
+
g.test_framework :rspec, :fixture_replacement => :factory_girl, :views => false, :helper => true
|
15
|
+
g.view_specs false
|
16
|
+
g.helper_specs true
|
17
|
+
g.fixture_replacement :factory_girl, :dir => 'spec/factories'
|
18
|
+
end
|
19
|
+
|
20
|
+
# Load translations from config/locales/*.rb,yml are auto loaded.
|
21
|
+
config.i18n.load_path += Dir[File.join(File.dirname(__FILE__), '..', '..', 'config', 'locales', '**', '*.{rb,yml}').to_s]
|
22
|
+
end
|
23
|
+
end
|
data/lib/crud/version.rb
ADDED
metadata
ADDED
@@ -0,0 +1,157 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: crud
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Everard Brown
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-10-16 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: jquery-rails
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: jquery-ui-rails
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: will_paginate
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
description: Performs CRUD operations by reflection
|
70
|
+
email:
|
71
|
+
- Everard.Brown@htcl.eu
|
72
|
+
executables: []
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files:
|
75
|
+
- CHANGELOG
|
76
|
+
- README.md
|
77
|
+
- lib/tasks/crud_tasks.rake
|
78
|
+
- lib/crud.rb
|
79
|
+
files:
|
80
|
+
- CHANGELOG
|
81
|
+
- LICENSE.md
|
82
|
+
- README.md
|
83
|
+
- Rakefile
|
84
|
+
- app/assets/images/crud/search-icon.png
|
85
|
+
- app/assets/javascripts/crud/application.js
|
86
|
+
- app/assets/javascripts/crud/dashboard.js
|
87
|
+
- app/assets/javascripts/crud/pagination.js
|
88
|
+
- app/assets/stylesheets/crud/application.css
|
89
|
+
- app/assets/stylesheets/crud/dashboard.css
|
90
|
+
- app/assets/stylesheets/crud/flash_notices.css
|
91
|
+
- app/assets/stylesheets/crud/pagination.css
|
92
|
+
- app/assets/stylesheets/dataTables/jquery.dataTables-override.css
|
93
|
+
- app/controllers/crud/crud_base_controller.rb
|
94
|
+
- app/controllers/crud/crud_controller.rb
|
95
|
+
- app/controllers/crud/dashboard_controller.rb
|
96
|
+
- app/helpers/crud/crud_helper.rb
|
97
|
+
- app/helpers/crud/dashboard_helper.rb
|
98
|
+
- app/models/crud/klass_info.rb
|
99
|
+
- app/models/crud/klass_list.rb
|
100
|
+
- app/models/crud/menus/development_menu.rb
|
101
|
+
- app/views/crud/crud/_attribute_value.html.erb
|
102
|
+
- app/views/crud/crud/_error_messages.html.erb
|
103
|
+
- app/views/crud/crud/_flash_messages.html.erb
|
104
|
+
- app/views/crud/crud/_form.html.erb
|
105
|
+
- app/views/crud/crud/_klass_data.html.erb
|
106
|
+
- app/views/crud/crud/edit.html.erb
|
107
|
+
- app/views/crud/crud/index.html.erb
|
108
|
+
- app/views/crud/crud/index.js.erb
|
109
|
+
- app/views/crud/crud/new.html.erb
|
110
|
+
- app/views/crud/crud/show.html.erb
|
111
|
+
- app/views/crud/dashboard/index.html.erb
|
112
|
+
- app/views/layouts/crud/application.html.erb
|
113
|
+
- config/cucumber.yml
|
114
|
+
- config/initializers/inflections.rb
|
115
|
+
- config/initializers/rails_engine.rb
|
116
|
+
- config/initializers/will_paginate.rb
|
117
|
+
- config/locales/de.yml
|
118
|
+
- config/locales/en.yml
|
119
|
+
- config/locales/es.yml
|
120
|
+
- config/locales/fr.yml
|
121
|
+
- config/routes.rb
|
122
|
+
- crud.gemspec
|
123
|
+
- lib/crud.rb
|
124
|
+
- lib/crud/engine.rb
|
125
|
+
- lib/crud/version.rb
|
126
|
+
- lib/tasks/crud_tasks.rake
|
127
|
+
homepage: https://github.com/htcl/crud
|
128
|
+
licenses:
|
129
|
+
- GPL-3.0
|
130
|
+
metadata: {}
|
131
|
+
post_install_message:
|
132
|
+
rdoc_options:
|
133
|
+
- --line-numbers
|
134
|
+
- --inline-source
|
135
|
+
- --title
|
136
|
+
- crud
|
137
|
+
- --main
|
138
|
+
- README.md
|
139
|
+
require_paths:
|
140
|
+
- lib
|
141
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - '>='
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
151
|
+
requirements: []
|
152
|
+
rubyforge_project:
|
153
|
+
rubygems_version: 2.4.1
|
154
|
+
signing_key:
|
155
|
+
specification_version: 4
|
156
|
+
summary: Crud engine (v0.0.3)
|
157
|
+
test_files: []
|