configvars_rails 0.2.3 → 0.3.0
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/VERSION +1 -1
- data/configvars_rails.gemspec +8 -7
- data/lib/configvars_rails/controller.rb +29 -33
- data/lib/configvars_rails/generators/all_generator.rb +2 -4
- data/lib/configvars_rails/generators/templates/config_vars/edit.html.erb +26 -1
- data/lib/configvars_rails/generators/templates/config_vars/index.html.erb +1 -1
- data/lib/configvars_rails/model.rb +5 -0
- data/lib/configvars_rails/routes.rb +28 -0
- data/lib/configvars_rails.rb +1 -0
- data/test/config_vars_controller_api_test.rb +10 -14
- data/test/helpers/routes.rb +1 -1
- data/test/routes_test.rb +25 -0
- metadata +10 -9
- data/lib/configvars_rails/generators/templates/config_vars/_form.html.erb +0 -25
- data/lib/configvars_rails/generators/templates/config_vars/new.html.erb +0 -5
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/configvars_rails.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{configvars_rails}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Victor Costan"]
|
12
|
-
s.date = %q{2010-08-
|
12
|
+
s.date = %q{2010-08-12}
|
13
13
|
s.description = %q{This gem provides a model and simple controller for
|
14
14
|
storing global application configuration in a database. This allows the
|
15
15
|
configuration to change without source code modifications.}
|
@@ -35,14 +35,13 @@ Gem::Specification.new do |s|
|
|
35
35
|
"lib/configvars_rails/generators/templates/001_create_config_vars.rb",
|
36
36
|
"lib/configvars_rails/generators/templates/config_var.rb",
|
37
37
|
"lib/configvars_rails/generators/templates/config_vars.yml",
|
38
|
-
"lib/configvars_rails/generators/templates/config_vars/_form.html.erb",
|
39
38
|
"lib/configvars_rails/generators/templates/config_vars/edit.html.erb",
|
40
39
|
"lib/configvars_rails/generators/templates/config_vars/index.html.erb",
|
41
|
-
"lib/configvars_rails/generators/templates/config_vars/new.html.erb",
|
42
40
|
"lib/configvars_rails/generators/templates/config_vars_controller.rb",
|
43
41
|
"lib/configvars_rails/generators/templates/config_vars_controller_test.rb",
|
44
42
|
"lib/configvars_rails/generators/templates/config_vars_initializer.rb",
|
45
43
|
"lib/configvars_rails/model.rb",
|
44
|
+
"lib/configvars_rails/routes.rb",
|
46
45
|
"test/config_var_test.rb",
|
47
46
|
"test/config_vars_controller_api_test.rb",
|
48
47
|
"test/descriptor_test.rb",
|
@@ -51,6 +50,7 @@ Gem::Specification.new do |s|
|
|
51
50
|
"test/helpers/initializers.rb",
|
52
51
|
"test/helpers/routes.rb",
|
53
52
|
"test/helpers/view_helpers.rb",
|
53
|
+
"test/routes_test.rb",
|
54
54
|
"test/test_helper.rb"
|
55
55
|
]
|
56
56
|
s.homepage = %q{http://github.com/pwnall/configvars_rails}
|
@@ -59,15 +59,16 @@ Gem::Specification.new do |s|
|
|
59
59
|
s.rubygems_version = %q{1.3.7}
|
60
60
|
s.summary = %q{Global configuration variables for Rails 3 applications.}
|
61
61
|
s.test_files = [
|
62
|
-
"test/
|
62
|
+
"test/config_var_test.rb",
|
63
63
|
"test/config_vars_controller_api_test.rb",
|
64
64
|
"test/descriptor_test.rb",
|
65
65
|
"test/helpers/application_controller.rb",
|
66
|
+
"test/helpers/db_setup.rb",
|
66
67
|
"test/helpers/initializers.rb",
|
67
68
|
"test/helpers/routes.rb",
|
68
|
-
"test/helpers/db_setup.rb",
|
69
69
|
"test/helpers/view_helpers.rb",
|
70
|
-
"test/
|
70
|
+
"test/routes_test.rb",
|
71
|
+
"test/test_helper.rb"
|
71
72
|
]
|
72
73
|
|
73
74
|
if s.respond_to? :specification_version then
|
@@ -42,47 +42,43 @@ module ControllerInstanceMethods
|
|
42
42
|
format.html # index.html.erb
|
43
43
|
end
|
44
44
|
end
|
45
|
-
|
46
|
-
# GET /config_vars/
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
if params[:name] and descriptor = ConfigvarsRails.variable_descriptor(params[:name])
|
51
|
-
@config_var.value = descriptor.default_value
|
52
|
-
end
|
53
|
-
|
54
|
-
respond_to do |format|
|
55
|
-
format.html # new.html.erb
|
56
|
-
end
|
45
|
+
|
46
|
+
# GET /config_vars/http_user
|
47
|
+
def show
|
48
|
+
edit
|
49
|
+
render :text => @config_var.value
|
57
50
|
end
|
58
51
|
|
59
|
-
# GET /config_vars/
|
52
|
+
# GET /config_vars/http_user/edit
|
60
53
|
def edit
|
61
|
-
@config_var = ConfigVar.
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
def create
|
67
|
-
@config_var = ConfigVar.new(params[:config_var])
|
68
|
-
|
69
|
-
respond_to do |format|
|
70
|
-
if @config_var.save!
|
71
|
-
format.html { redirect_to(config_vars_url, :notice => 'Configuration variable was successfully created.') }
|
72
|
-
else
|
73
|
-
format.html { render :action => :new }
|
54
|
+
@config_var = ConfigVar.where(:name => params[:name]).first
|
55
|
+
unless @config_var
|
56
|
+
@config_var = ConfigVar.new :name => params[:name]
|
57
|
+
if descriptor = ConfigvarsRails.variable_descriptor(params[:name])
|
58
|
+
@config_var.value = descriptor.default_value
|
74
59
|
end
|
75
|
-
end
|
60
|
+
end
|
76
61
|
end
|
77
62
|
|
78
|
-
# PUT /config_vars/
|
79
|
-
# PUT /config_vars/1.xml
|
63
|
+
# PUT /config_vars/http_user
|
80
64
|
def update
|
81
|
-
@config_var = ConfigVar.
|
65
|
+
@config_var = ConfigVar.where(:name => params[:name]).first
|
66
|
+
unless @config_var
|
67
|
+
@config_var = ConfigVar.new params[:config_var]
|
68
|
+
@config_var.name = params[:name]
|
69
|
+
end
|
82
70
|
|
83
71
|
respond_to do |format|
|
84
|
-
if @config_var.
|
85
|
-
|
72
|
+
success = if @config_var.new_record?
|
73
|
+
@config_var.save
|
74
|
+
else
|
75
|
+
@config_var.update_attributes(params[:config_var])
|
76
|
+
end
|
77
|
+
if success
|
78
|
+
format.html do
|
79
|
+
redirect_to config_vars_url,
|
80
|
+
:notice => 'Configuration variable was successfully updated.'
|
81
|
+
end
|
86
82
|
else
|
87
83
|
format.html { render :action => :edit }
|
88
84
|
end
|
@@ -92,7 +88,7 @@ module ControllerInstanceMethods
|
|
92
88
|
# DELETE /config_vars/1
|
93
89
|
# DELETE /config_vars/1.xml
|
94
90
|
def destroy
|
95
|
-
@config_var = ConfigVar.
|
91
|
+
@config_var = ConfigVar.where(:name => params[:name]).first
|
96
92
|
@config_var.destroy
|
97
93
|
|
98
94
|
respond_to do |format|
|
@@ -20,13 +20,11 @@ class AllGenerator < Rails::Generators::Base
|
|
20
20
|
File.join('app', 'controllers', 'config_vars_controller.rb')
|
21
21
|
copy_file File.join('config_vars_controller_test.rb'),
|
22
22
|
File.join('test', 'functional', 'config_vars_controller_test.rb')
|
23
|
-
[
|
24
|
-
'_form.html.erb', 'edit.html.erb', 'index.html.erb', 'new.html.erb'
|
25
|
-
].each do |view_name|
|
23
|
+
['edit.html.erb', 'index.html.erb'].each do |view_name|
|
26
24
|
copy_file File.join('config_vars', view_name),
|
27
25
|
File.join('app', 'views', 'config_vars', view_name)
|
28
26
|
end
|
29
|
-
route '
|
27
|
+
route 'config_vars'
|
30
28
|
|
31
29
|
copy_file 'config_vars_initializer.rb',
|
32
30
|
File.join('config', 'initializers', 'config_vars.rb')
|
@@ -1,5 +1,30 @@
|
|
1
1
|
<h1>Editing Configuration Variable</h1>
|
2
2
|
|
3
|
-
<%=
|
3
|
+
<%= form_for(@config_var, :url => config_var_path(@config_var),
|
4
|
+
:html => { :method => :put }) do |f| %>
|
5
|
+
<% if @config_var.errors.any? %>
|
6
|
+
<div id="error_explanation">
|
7
|
+
<h2><%= pluralize(@config_var.errors.count, "error") %> prohibited this config_var from being saved:</h2>
|
8
|
+
|
9
|
+
<ul>
|
10
|
+
<% @config_var.errors.full_messages.each do |msg| %>
|
11
|
+
<li><%= msg %></li>
|
12
|
+
<% end %>
|
13
|
+
</ul>
|
14
|
+
</div>
|
15
|
+
<% end %>
|
16
|
+
|
17
|
+
<div class="field">
|
18
|
+
<%= f.label :name %><br />
|
19
|
+
<%= f.text_field :name %>
|
20
|
+
</div>
|
21
|
+
<div class="field">
|
22
|
+
<%= f.label :value %><br />
|
23
|
+
<%= f.text_field :value %>
|
24
|
+
</div>
|
25
|
+
<div class="actions">
|
26
|
+
<%= f.submit %>
|
27
|
+
</div>
|
28
|
+
<% end %>
|
4
29
|
|
5
30
|
<%= link_to 'Back', config_vars_path %>
|
@@ -46,7 +46,7 @@
|
|
46
46
|
<td><%= name %></td>
|
47
47
|
<td><%= descriptor.value_type %></td>
|
48
48
|
<td><%= descriptor.default_value %></td>
|
49
|
-
<td><%= link_to 'Edit',
|
49
|
+
<td><%= link_to 'Edit', edit_config_var_path(:name => name) %></td>
|
50
50
|
</tr>
|
51
51
|
<% end %>
|
52
52
|
</table>
|
@@ -61,6 +61,11 @@ module ModelInstanceMethods
|
|
61
61
|
def descriptor
|
62
62
|
ConfigvarsRails.variable_descriptor name
|
63
63
|
end
|
64
|
+
|
65
|
+
# Use name instead of ID on all URLs.
|
66
|
+
def to_param
|
67
|
+
name
|
68
|
+
end
|
64
69
|
end # module ConfigvarsRails::Model::ModelInstanceMethods
|
65
70
|
|
66
71
|
ActiveRecord::Base.send :include, ModelMixin
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'action_pack'
|
2
|
+
|
3
|
+
# :nodoc: namespace
|
4
|
+
module ConfigvarsRails
|
5
|
+
|
6
|
+
# :nodoc: namespace
|
7
|
+
module Routes
|
8
|
+
|
9
|
+
# :nodoc: mixed into ActionPack's route mapper.
|
10
|
+
module MapperMixin
|
11
|
+
def config_vars
|
12
|
+
get 'config_vars/:name/edit' => 'config_vars#edit', :as => :edit_config_var,
|
13
|
+
:constraints => { :name => /[^\/]+/ }
|
14
|
+
get 'config_vars/:name' => 'config_vars#show', :as => :config_var,
|
15
|
+
:constraints => { :name => /[^\/]+/ }
|
16
|
+
put 'config_vars/:name' => 'config_vars#update',
|
17
|
+
:constraints => { :name => /[^\/]+/ }
|
18
|
+
delete 'config_vars/:name' => 'config_vars#destroy',
|
19
|
+
:constraints => { :name => /[^\/]+/ }
|
20
|
+
get 'config_vars' => 'config_vars#index', :as => :config_vars
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
ActionDispatch::Routing::Mapper.send :include, MapperMixin
|
25
|
+
|
26
|
+
end # namespace ConfigvarsRails::Routes
|
27
|
+
|
28
|
+
end # namespace ConfigvarsRails
|
data/lib/configvars_rails.rb
CHANGED
@@ -25,19 +25,14 @@ class ConfigVarsControllerApiTest < ActionController::TestCase
|
|
25
25
|
"@default_vars doesn't have config_vars:http_user"
|
26
26
|
end
|
27
27
|
|
28
|
-
test "should get
|
29
|
-
get :
|
28
|
+
test "should get variable value" do
|
29
|
+
get :show, :name => @config_var.to_param
|
30
30
|
assert_response :success
|
31
|
+
assert_equal @config_var.value, @response.body
|
31
32
|
end
|
32
33
|
|
33
|
-
test "
|
34
|
-
get :
|
35
|
-
assert_response :success
|
36
|
-
assert_equal 'undefined', assigns(:config_var).name
|
37
|
-
end
|
38
|
-
|
39
|
-
test "new with preset name and default value" do
|
40
|
-
get :new, :name => 'config_vars.http_user'
|
34
|
+
test "edit with preset name and default value" do
|
35
|
+
get :edit, :name => 'config_vars.http_user'
|
41
36
|
assert_response :success
|
42
37
|
assert_equal 'config_vars.http_user', assigns(:config_var).name
|
43
38
|
assert_equal 'config', assigns(:config_var).value
|
@@ -46,26 +41,27 @@ class ConfigVarsControllerApiTest < ActionController::TestCase
|
|
46
41
|
test "should create config_var" do
|
47
42
|
attributes = @config_var.attributes.merge 'name' => 'other_uri'
|
48
43
|
assert_difference('ConfigVar.count') do
|
49
|
-
|
44
|
+
put :update, :config_var => attributes, :name => 'other_uri'
|
50
45
|
end
|
51
46
|
|
52
47
|
assert_redirected_to config_vars_url
|
48
|
+
assert_equal ConfigVar['other_uri'], @config_var.value
|
53
49
|
end
|
54
50
|
|
55
51
|
test "should get edit" do
|
56
|
-
get :edit, :
|
52
|
+
get :edit, :name => @config_var.to_param
|
57
53
|
assert_response :success
|
58
54
|
end
|
59
55
|
|
60
56
|
test "should update config_var" do
|
61
|
-
put :update, :
|
57
|
+
put :update, :name => @config_var.to_param,
|
62
58
|
:config_var => @config_var.attributes
|
63
59
|
assert_redirected_to config_vars_url
|
64
60
|
end
|
65
61
|
|
66
62
|
test "should destroy config_var" do
|
67
63
|
assert_difference('ConfigVar.count', -1) do
|
68
|
-
delete :destroy, :
|
64
|
+
delete :destroy, :name => @config_var.to_param
|
69
65
|
end
|
70
66
|
|
71
67
|
assert_redirected_to config_vars_url
|
data/test/helpers/routes.rb
CHANGED
@@ -4,7 +4,7 @@ class ActionController::TestCase
|
|
4
4
|
@routes = ActionController::Routing::RouteSet.new
|
5
5
|
@routes.draw do
|
6
6
|
# NOTE: this route should be kept in sync with the config_vars template.
|
7
|
-
|
7
|
+
config_vars
|
8
8
|
end
|
9
9
|
ApplicationController.send :include, @routes.url_helpers
|
10
10
|
end
|
data/test/routes_test.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require File.expand_path('../test_helper', __FILE__)
|
2
|
+
|
3
|
+
require 'configvars_rails/generators/templates/config_vars_controller.rb'
|
4
|
+
|
5
|
+
|
6
|
+
class RoutesTest < ActionController::TestCase
|
7
|
+
tests ConfigVarsController
|
8
|
+
|
9
|
+
test "config_vars routes" do
|
10
|
+
assert_routing({:path => "/config_vars", :method => :get},
|
11
|
+
{:controller => 'config_vars', :action => 'index'})
|
12
|
+
assert_routing({:path => "/config_vars/http.user", :method => :get},
|
13
|
+
{:controller => 'config_vars', :action => 'show',
|
14
|
+
:name => 'http.user'})
|
15
|
+
assert_routing({:path => "/config_vars/http.user", :method => :put},
|
16
|
+
{:controller => 'config_vars', :action => 'update',
|
17
|
+
:name => 'http.user'})
|
18
|
+
assert_routing({:path => "/config_vars/http.user", :method => :delete},
|
19
|
+
{:controller => 'config_vars', :action => 'destroy',
|
20
|
+
:name => 'http.user'})
|
21
|
+
assert_routing({:path => "/config_vars/http.user/edit", :method => :get},
|
22
|
+
{:controller => 'config_vars', :action => 'edit',
|
23
|
+
:name => 'http.user'})
|
24
|
+
end
|
25
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: configvars_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
- 2
|
9
8
|
- 3
|
10
|
-
|
9
|
+
- 0
|
10
|
+
version: 0.3.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Victor Costan
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-08-
|
18
|
+
date: 2010-08-12 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -80,14 +80,13 @@ files:
|
|
80
80
|
- lib/configvars_rails/generators/templates/001_create_config_vars.rb
|
81
81
|
- lib/configvars_rails/generators/templates/config_var.rb
|
82
82
|
- lib/configvars_rails/generators/templates/config_vars.yml
|
83
|
-
- lib/configvars_rails/generators/templates/config_vars/_form.html.erb
|
84
83
|
- lib/configvars_rails/generators/templates/config_vars/edit.html.erb
|
85
84
|
- lib/configvars_rails/generators/templates/config_vars/index.html.erb
|
86
|
-
- lib/configvars_rails/generators/templates/config_vars/new.html.erb
|
87
85
|
- lib/configvars_rails/generators/templates/config_vars_controller.rb
|
88
86
|
- lib/configvars_rails/generators/templates/config_vars_controller_test.rb
|
89
87
|
- lib/configvars_rails/generators/templates/config_vars_initializer.rb
|
90
88
|
- lib/configvars_rails/model.rb
|
89
|
+
- lib/configvars_rails/routes.rb
|
91
90
|
- test/config_var_test.rb
|
92
91
|
- test/config_vars_controller_api_test.rb
|
93
92
|
- test/descriptor_test.rb
|
@@ -96,6 +95,7 @@ files:
|
|
96
95
|
- test/helpers/initializers.rb
|
97
96
|
- test/helpers/routes.rb
|
98
97
|
- test/helpers/view_helpers.rb
|
98
|
+
- test/routes_test.rb
|
99
99
|
- test/test_helper.rb
|
100
100
|
has_rdoc: true
|
101
101
|
homepage: http://github.com/pwnall/configvars_rails
|
@@ -132,12 +132,13 @@ signing_key:
|
|
132
132
|
specification_version: 3
|
133
133
|
summary: Global configuration variables for Rails 3 applications.
|
134
134
|
test_files:
|
135
|
-
- test/
|
135
|
+
- test/config_var_test.rb
|
136
136
|
- test/config_vars_controller_api_test.rb
|
137
137
|
- test/descriptor_test.rb
|
138
138
|
- test/helpers/application_controller.rb
|
139
|
+
- test/helpers/db_setup.rb
|
139
140
|
- test/helpers/initializers.rb
|
140
141
|
- test/helpers/routes.rb
|
141
|
-
- test/helpers/db_setup.rb
|
142
142
|
- test/helpers/view_helpers.rb
|
143
|
-
- test/
|
143
|
+
- test/routes_test.rb
|
144
|
+
- test/test_helper.rb
|
@@ -1,25 +0,0 @@
|
|
1
|
-
<%= form_for(@config_var) do |f| %>
|
2
|
-
<% if @config_var.errors.any? %>
|
3
|
-
<div id="error_explanation">
|
4
|
-
<h2><%= pluralize(@config_var.errors.count, "error") %> prohibited this config_var from being saved:</h2>
|
5
|
-
|
6
|
-
<ul>
|
7
|
-
<% @config_var.errors.full_messages.each do |msg| %>
|
8
|
-
<li><%= msg %></li>
|
9
|
-
<% end %>
|
10
|
-
</ul>
|
11
|
-
</div>
|
12
|
-
<% end %>
|
13
|
-
|
14
|
-
<div class="field">
|
15
|
-
<%= f.label :name %><br />
|
16
|
-
<%= f.text_field :name %>
|
17
|
-
</div>
|
18
|
-
<div class="field">
|
19
|
-
<%= f.label :value %><br />
|
20
|
-
<%= f.text_field :value %>
|
21
|
-
</div>
|
22
|
-
<div class="actions">
|
23
|
-
<%= f.submit %>
|
24
|
-
</div>
|
25
|
-
<% end %>
|