rails-settings-ui 0.0.1
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/Gemfile +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +125 -0
- data/Rakefile +21 -0
- data/app/assets/stylesheets/rails_settings_ui/application.css.scss +4 -0
- data/app/assets/stylesheets/rails_settings_ui/bootstrap_and_overrides.css.less +27 -0
- data/app/controllers/rails_settings_ui/application_controller.rb +4 -0
- data/app/controllers/rails_settings_ui/settings_controller.rb +29 -0
- data/app/helpers/rails_settings_ui/settings_helper.rb +75 -0
- data/app/views/layouts/rails_settings_ui/application.html.haml +18 -0
- data/app/views/rails_settings_ui/settings/index.html.haml +25 -0
- data/config/initializers/rails_settings_ui.rb +14 -0
- data/config/locales/en.yml +11 -0
- data/config/locales/ru.yml +11 -0
- data/config/routes.rb +4 -0
- data/lib/generators/rails_settings_ui/install_generator.rb +17 -0
- data/lib/rails-settings-ui.rb +29 -0
- data/lib/rails-settings-ui/engine.rb +5 -0
- data/lib/rails-settings-ui/main_app_route_delegator.rb +19 -0
- data/lib/rails-settings-ui/version.rb +3 -0
- metadata +129 -0
data/Gemfile
ADDED
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2012 YOURNAME
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,125 @@
|
|
1
|
+
Rails settings UI
|
2
|
+
================================
|
3
|
+
|
4
|
+
A Rails Engine to manage your application settings. Includes validation. Compatible with Rails 3.
|
5
|
+
It compatible with [rails-settings-cached](https://github.com/huacnlee/rails-settings-cached) gem. Untested, but should work with rails-settings gem.
|
6
|
+
|
7
|
+
Preview:
|
8
|
+
|
9
|
+

|
10
|
+
|
11
|
+
How to
|
12
|
+
-----
|
13
|
+
|
14
|
+
Add to Gemfile
|
15
|
+
|
16
|
+
gem 'rails-settings-ui'
|
17
|
+
gem 'rails-settings-cached'
|
18
|
+
# or
|
19
|
+
gem 'rails-settings'
|
20
|
+
# or your fork of rails-settings
|
21
|
+
|
22
|
+
Setup:
|
23
|
+
|
24
|
+
# adds initializer and route:
|
25
|
+
rails g rails_settings_ui:install
|
26
|
+
|
27
|
+
Config
|
28
|
+
------------
|
29
|
+
|
30
|
+
In config/initializers/rails_settings_ui.rb
|
31
|
+
|
32
|
+
RailsSettingsUi.setup do |config|
|
33
|
+
config.ignored_settings = [:company_name] # Settings not displayed in the interface
|
34
|
+
end
|
35
|
+
|
36
|
+
Routing
|
37
|
+
-------
|
38
|
+
|
39
|
+
# engine root:
|
40
|
+
rails_settings_ui_url
|
41
|
+
|
42
|
+
I18n
|
43
|
+
-------------
|
44
|
+
|
45
|
+
You can localize:
|
46
|
+
|
47
|
+
* Settings names, eg:
|
48
|
+
|
49
|
+
```yaml
|
50
|
+
settings:
|
51
|
+
attributes:
|
52
|
+
launch_mode: # setting name
|
53
|
+
name: 'Launch mode'
|
54
|
+
```
|
55
|
+
|
56
|
+
* Checkbox or select options labels for array options, eg:
|
57
|
+
|
58
|
+
```yaml
|
59
|
+
settings:
|
60
|
+
attributes:
|
61
|
+
launch_mode:
|
62
|
+
labels:
|
63
|
+
auto: 'Auto mode'
|
64
|
+
manual: 'Manual mode'
|
65
|
+
```
|
66
|
+
|
67
|
+
* Help blocks for settings, eg:
|
68
|
+
|
69
|
+
```yaml
|
70
|
+
settings:
|
71
|
+
attributes:
|
72
|
+
launch_mode:
|
73
|
+
help_block: 'Rocket launch mode'
|
74
|
+
```
|
75
|
+
|
76
|
+
Validations
|
77
|
+
-------------
|
78
|
+
|
79
|
+
To validation work is required the default settings in the proper format, eg:
|
80
|
+
|
81
|
+
class Settings < RailsSettings::CachedSettings
|
82
|
+
defaults[:company_name] = "Company name"
|
83
|
+
defaults[:head_name] = "Head name"
|
84
|
+
defaults[:manager_premium] = 19
|
85
|
+
defaults[:show_contract_fields] = true
|
86
|
+
defaults[:launch_mode] = [:auto, :manual]
|
87
|
+
end
|
88
|
+
|
89
|
+
Views
|
90
|
+
-------------
|
91
|
+
Rails.application.config.to_prepare do
|
92
|
+
# Use admin layout:
|
93
|
+
RailsSettingsUi::ApplicationController.module_eval do
|
94
|
+
layout 'admin'
|
95
|
+
end
|
96
|
+
# If you are using a custom layout, you will want to make app routes available to rails-setting-ui:
|
97
|
+
RailsSettingsUi.inline_main_app_routes!
|
98
|
+
end
|
99
|
+
|
100
|
+
|
101
|
+
Authentication & authorization
|
102
|
+
------------------------------
|
103
|
+
|
104
|
+
You can specify the parent controller for settings controller, and it will inherit all before filters.
|
105
|
+
Note that this must be placed before any other references to rails-setting-ui application controller in the initializer:
|
106
|
+
|
107
|
+
RailsSettingsUi.parent_controller = 'Admin::ApplicationController' # default: '::ApplicationController'
|
108
|
+
|
109
|
+
Alternatively, to have custom rules just for rails-setting-ui you can:
|
110
|
+
|
111
|
+
Rails.application.config.to_prepare do
|
112
|
+
RailsSettingsUi::ApplicationController.module_eval do
|
113
|
+
before_filter :check_settings_permissions
|
114
|
+
|
115
|
+
private
|
116
|
+
def check_settings_permissions
|
117
|
+
render status: 403 unless current_user && can_manage_settings?(current_user)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
This project uses MIT-LICENSE.
|
data/Rakefile
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'rubygems'
|
3
|
+
begin
|
4
|
+
require 'bundler/setup'
|
5
|
+
rescue LoadError
|
6
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
7
|
+
end
|
8
|
+
|
9
|
+
require 'rake'
|
10
|
+
require 'rake/rdoctask'
|
11
|
+
|
12
|
+
require 'rake/testtask'
|
13
|
+
|
14
|
+
Rake::TestTask.new(:test) do |t|
|
15
|
+
t.libs << 'lib'
|
16
|
+
t.libs << 'test'
|
17
|
+
t.pattern = 'test/**/*_test.rb'
|
18
|
+
t.verbose = false
|
19
|
+
end
|
20
|
+
|
21
|
+
task :default => :test
|
@@ -0,0 +1,27 @@
|
|
1
|
+
@import "twitter/bootstrap/bootstrap";
|
2
|
+
body { padding-top: 60px; }
|
3
|
+
|
4
|
+
@import "twitter/bootstrap/responsive";
|
5
|
+
|
6
|
+
// Set the correct sprite paths
|
7
|
+
@iconSpritePath: asset-path('twitter/bootstrap/glyphicons-halflings.png');
|
8
|
+
@iconWhiteSpritePath: asset-path('twitter/bootstrap/glyphicons-halflings-white.png');
|
9
|
+
|
10
|
+
// Font Awesome
|
11
|
+
@fontAwesomeEotPath: asset-url("fontawesome-webfont.eot");
|
12
|
+
@fontAwesomeEotPath_iefix: asset-url("fontawesome-webfont.eot?#iefix");
|
13
|
+
@fontAwesomeWoffPath: asset-url("fontawesome-webfont.woff");
|
14
|
+
@fontAwesomeTtfPath: asset-url("fontawesome-webfont.ttf");
|
15
|
+
@fontAwesomeSvgPath: asset-url("fontawesome-webfont.svg#fontawesomeregular");
|
16
|
+
@import "fontawesome/font-awesome";
|
17
|
+
|
18
|
+
// Your custom LESS stylesheets goes here
|
19
|
+
//
|
20
|
+
// Since bootstrap was imported above you have access to its mixins which
|
21
|
+
// you may use and inherit here
|
22
|
+
//
|
23
|
+
// If you'd like to override bootstrap's own variables, you can do so here as well
|
24
|
+
// See http://twitter.github.com/bootstrap/less.html for their names and documentation
|
25
|
+
//
|
26
|
+
// Example:
|
27
|
+
// @linkColor: #ff0000;
|
@@ -0,0 +1,29 @@
|
|
1
|
+
class RailsSettingsUi::SettingsController < RailsSettingsUi::ApplicationController
|
2
|
+
before_filter :collection
|
3
|
+
before_filter :cast_settings_params, only: :update_all
|
4
|
+
|
5
|
+
def index
|
6
|
+
end
|
7
|
+
|
8
|
+
def update_all
|
9
|
+
if @casted_settings[:errors].any?
|
10
|
+
render :index
|
11
|
+
else
|
12
|
+
@casted_settings.map { |setting| Settings[setting[0]] = setting[1] if setting[0] != "errors" }
|
13
|
+
redirect_to [:settings]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def collection
|
20
|
+
I18n.locale = :en
|
21
|
+
all_settings = Settings.defaults.merge(Settings.all)
|
22
|
+
all_settings_without_ignored = all_settings.reject{ |name, description| RailsSettingsUi.ignored_settings.include?(name.to_sym) }
|
23
|
+
@settings = Hash[all_settings_without_ignored]
|
24
|
+
end
|
25
|
+
|
26
|
+
def cast_settings_params
|
27
|
+
@casted_settings = RailsSettingsUi::SettingsHelper.cast(params["settings"])
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
module RailsSettingsUi::SettingsHelper
|
2
|
+
def self.cast(requires_cast)
|
3
|
+
requires_cast[:errors] = {}
|
4
|
+
requires_cast.each do |var_name, value|
|
5
|
+
case Settings.defaults[var_name.to_sym]
|
6
|
+
when Fixnum
|
7
|
+
if is_numeric?(value)
|
8
|
+
requires_cast[var_name] = value.to_i
|
9
|
+
else
|
10
|
+
requires_cast[:errors][var_name.to_sym] = I18n.t("settings.errors.invalid_numeric", default: 'Invalid')
|
11
|
+
end
|
12
|
+
when ActiveSupport::HashWithIndifferentAccess
|
13
|
+
begin
|
14
|
+
requires_cast[var_name] = JSON.parse(value.gsub(/\=\>/, ':'))
|
15
|
+
rescue JSON::ParserError => e
|
16
|
+
requires_cast[:errors][var_name.to_sym] = I18n.t("settings.errors.invalid_hash", default: 'Invalid')
|
17
|
+
end
|
18
|
+
when Float
|
19
|
+
if is_numeric?(value)
|
20
|
+
requires_cast[var_name] = value.to_f
|
21
|
+
else
|
22
|
+
requires_cast[:errors][var_name.to_sym] = I18n.t("settings.errors.invalid_numeric", default: 'Invalid')
|
23
|
+
end
|
24
|
+
when Array
|
25
|
+
# Array presented in checkboxes
|
26
|
+
if value.is_a?(Hash)
|
27
|
+
requires_cast[var_name] = value.keys.map!(&:to_sym)
|
28
|
+
# or in select tag
|
29
|
+
else
|
30
|
+
value.to_sym
|
31
|
+
end
|
32
|
+
when FalseClass, TrueClass
|
33
|
+
requires_cast[var_name] = true
|
34
|
+
end
|
35
|
+
end
|
36
|
+
Settings.defaults.each do |name, value|
|
37
|
+
if !requires_cast[name.to_sym].present? && [TrueClass, FalseClass].include?(value.class)
|
38
|
+
requires_cast[name.to_sym] = false
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
requires_cast
|
43
|
+
end
|
44
|
+
|
45
|
+
def setting_field(setting_name, setting_value)
|
46
|
+
if RailsSettingsUi.settings_displayed_as_select_tag.include?(setting_name.to_sym)
|
47
|
+
default_setting_values = Settings.defaults[setting_name.to_s].map do |setting_value|
|
48
|
+
[I18n.t("settings.attributes.#{setting_name}.labels.#{setting_value}", default: setting_value.to_s), setting_value]
|
49
|
+
end
|
50
|
+
select_tag("settings[#{setting_name.to_s}]", options_for_select(default_setting_values, setting_value))
|
51
|
+
elsif setting_value.is_a?(Array)
|
52
|
+
field = ""
|
53
|
+
Settings.defaults[setting_name.to_sym].each do |value|
|
54
|
+
field << check_box_tag("settings[#{setting_name.to_s}][#{value.to_s}]", nil, Settings.defaults.merge(Settings.all)[setting_name.to_s].include?(value), style: "margin: 0 10px;")
|
55
|
+
field << label_tag("settings[#{setting_name.to_s}][#{value.to_s}]", I18n.t("settings.attributes.#{setting_name}.labels.#{value}", default: value.to_s), style: "display: inline-block;")
|
56
|
+
end
|
57
|
+
return field.html_safe
|
58
|
+
elsif [TrueClass, FalseClass].include?(setting_value.class)
|
59
|
+
return check_box_tag("settings[#{setting_name.to_s}]", nil, setting_value).html_safe
|
60
|
+
else
|
61
|
+
text_field = if setting_value.to_s.size > 30
|
62
|
+
text_area_tag("settings[#{setting_name}]", setting_value.to_s, rows: 10)
|
63
|
+
else
|
64
|
+
text_field_tag("settings[#{setting_name}]", setting_value.to_s)
|
65
|
+
end
|
66
|
+
|
67
|
+
help_block_content = I18n.t("settings.attributes.#{setting_name}.help_block", default: '')
|
68
|
+
text_field + (help_block_content.presence && content_tag(:span, help_block_content, class: 'help-block'))
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def self.is_numeric?(value)
|
73
|
+
!value.to_s.match(/\A[+-]?\d+?(\.\d+)?\Z/).nil?
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
!!!
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%title Rails settings
|
5
|
+
%meta{:charset => "utf-8"}
|
6
|
+
%meta{"http-equiv" => "X-UA-Compatible", :content => "IE=edge,chrome=1"}
|
7
|
+
%meta{:name => "viewport", :content => "width=device-width, initial-scale=1, maximum-scale=1"}
|
8
|
+
= stylesheet_link_tag :application
|
9
|
+
= csrf_meta_tags
|
10
|
+
%body
|
11
|
+
.navbar.navbar-fixed-top
|
12
|
+
.navbar-inner
|
13
|
+
.container-fluid
|
14
|
+
%a.brand{href: "/"} Rails settings ui
|
15
|
+
.container-fluid
|
16
|
+
.row-fluid
|
17
|
+
.content= yield
|
18
|
+
%footer
|
@@ -0,0 +1,25 @@
|
|
1
|
+
%ul.breadcrumb
|
2
|
+
%li.active= t('settings.index.title')
|
3
|
+
|
4
|
+
- if @casted_settings && @casted_settings[:errors].any?
|
5
|
+
.alert.alert-error= t('settings.index.settings_include_errors')
|
6
|
+
|
7
|
+
= form_tag [:update_all], method: :put, class: 'form-inline' do
|
8
|
+
%table.table.table-striped
|
9
|
+
%thead
|
10
|
+
%tr
|
11
|
+
%th= t('settings.index.description')
|
12
|
+
%th= t('settings.index.value')
|
13
|
+
%tbody
|
14
|
+
- @settings.each do |name, value|
|
15
|
+
- if name != :errors
|
16
|
+
%tr
|
17
|
+
%td= I18n.t("settings.attributes.#{name}.name")
|
18
|
+
%td
|
19
|
+
- setting_with_error = @casted_settings && @casted_settings[:errors].include?(name)
|
20
|
+
%div{class: "control-group #{ setting_with_error ? 'error' : ''}"}
|
21
|
+
= setting_field(name, value)
|
22
|
+
- if setting_with_error
|
23
|
+
%span.help-inline= @casted_settings[:errors][name]
|
24
|
+
|
25
|
+
= submit_tag t('settings.index.save_all'), class: 'btn btn-info'
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'rails-settings-ui'
|
2
|
+
|
3
|
+
#= Application-specific
|
4
|
+
#
|
5
|
+
# # You can specify a controller for RailsSettingsUi::ApplicationController to inherit from:
|
6
|
+
# RailsSettingsUi.parent_controller = 'Admin::ApplicationController' # default: '::ApplicationController'
|
7
|
+
#
|
8
|
+
# # Render RailsSettingsUi inside a custom layout (set to 'application' to use app layout, default is RailsSettingsUi's own layout)
|
9
|
+
# RailsSettingsUi::ApplicationController.layout 'admin'
|
10
|
+
|
11
|
+
Rails.application.config.to_prepare do
|
12
|
+
# If you use a *custom layout*, make route helpers available to RailsSettingsUi:
|
13
|
+
# RailsSettingsUi.inline_main_app_routes!
|
14
|
+
end
|
data/config/routes.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
module RailsSettingsUi
|
2
|
+
module Generators
|
3
|
+
class InstallGenerator < Rails::Generators::Base
|
4
|
+
desc "creates an initializer file at config/initializers/rails_settings_ui.rb and adds route to config/routes.rb"
|
5
|
+
source_root File.expand_path('../../../..', __FILE__)
|
6
|
+
|
7
|
+
def generate_initialization
|
8
|
+
copy_file 'config/initializers/rails_settings_ui.rb', 'config/initializers/rails_settings_ui.rb'
|
9
|
+
end
|
10
|
+
|
11
|
+
def generate_routing
|
12
|
+
route "mount RailsSettingsUi::Engine, at: 'settings'"
|
13
|
+
log "# You can access RailsSettingsUi urls like this: rails_settings_ui_path #=> '/settings'"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'rails-settings-ui/engine'
|
3
|
+
require 'rails-settings-ui/main_app_route_delegator'
|
4
|
+
require 'rails-settings-ui/version'
|
5
|
+
|
6
|
+
require 'rails-settings-cached'
|
7
|
+
|
8
|
+
module RailsSettingsUi
|
9
|
+
mattr_accessor :parent_controller
|
10
|
+
self.parent_controller = '::ApplicationController'
|
11
|
+
|
12
|
+
# Settings not displayed in the interface (eg. [:launch_mode, :project_name])
|
13
|
+
mattr_accessor :ignored_settings
|
14
|
+
self.ignored_settings = []
|
15
|
+
|
16
|
+
# Settings displayed in the interface as select tag instead checkboxes (useful for array with one possible choice)
|
17
|
+
mattr_accessor :settings_displayed_as_select_tag
|
18
|
+
self.settings_displayed_as_select_tag = []
|
19
|
+
|
20
|
+
class << self
|
21
|
+
def inline_main_app_routes!
|
22
|
+
::RailsSettingsUi::ApplicationController.helper ::RailsSettingsUi::MainAppRouteDelegator
|
23
|
+
end
|
24
|
+
|
25
|
+
def setup
|
26
|
+
yield self
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module RailsSettingsUi::MainAppRouteDelegator
|
2
|
+
# delegate url helpers to main_app
|
3
|
+
def method_missing(method, *args, &block)
|
4
|
+
if main_app_route_method?(method)
|
5
|
+
main_app.send(method, *args)
|
6
|
+
else
|
7
|
+
super
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def respond_to?(method)
|
12
|
+
super || main_app_route_method?(method)
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
def main_app_route_method?(method)
|
17
|
+
method.to_s =~ /_(?:path|url)$/ && main_app.respond_to?(method)
|
18
|
+
end
|
19
|
+
end
|
metadata
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rails-settings-ui
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Andrey Morskov
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-10-07 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rails
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '3.1'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '3.1'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: i18n
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: haml-rails
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: twitter-bootstrap-rails
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
description: User interface for manage settings with rails-settings gem
|
79
|
+
email: accessd0@gmail.com
|
80
|
+
executables: []
|
81
|
+
extensions: []
|
82
|
+
extra_rdoc_files: []
|
83
|
+
files:
|
84
|
+
- app/assets/stylesheets/rails_settings_ui/application.css.scss
|
85
|
+
- app/assets/stylesheets/rails_settings_ui/bootstrap_and_overrides.css.less
|
86
|
+
- app/controllers/rails_settings_ui/application_controller.rb
|
87
|
+
- app/controllers/rails_settings_ui/settings_controller.rb
|
88
|
+
- app/helpers/rails_settings_ui/settings_helper.rb
|
89
|
+
- app/views/layouts/rails_settings_ui/application.html.haml
|
90
|
+
- app/views/rails_settings_ui/settings/index.html.haml
|
91
|
+
- lib/generators/rails_settings_ui/install_generator.rb
|
92
|
+
- lib/rails-settings-ui/engine.rb
|
93
|
+
- lib/rails-settings-ui/main_app_route_delegator.rb
|
94
|
+
- lib/rails-settings-ui/version.rb
|
95
|
+
- lib/rails-settings-ui.rb
|
96
|
+
- config/initializers/rails_settings_ui.rb
|
97
|
+
- config/locales/en.yml
|
98
|
+
- config/locales/ru.yml
|
99
|
+
- config/routes.rb
|
100
|
+
- MIT-LICENSE
|
101
|
+
- Rakefile
|
102
|
+
- Gemfile
|
103
|
+
- README.md
|
104
|
+
homepage: https://github.com/accessd/rails-settings-ui
|
105
|
+
licenses:
|
106
|
+
- MIT
|
107
|
+
post_install_message:
|
108
|
+
rdoc_options: []
|
109
|
+
require_paths:
|
110
|
+
- lib
|
111
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
112
|
+
none: false
|
113
|
+
requirements:
|
114
|
+
- - ! '>='
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
|
+
none: false
|
119
|
+
requirements:
|
120
|
+
- - ! '>='
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '0'
|
123
|
+
requirements: []
|
124
|
+
rubyforge_project:
|
125
|
+
rubygems_version: 1.8.23
|
126
|
+
signing_key:
|
127
|
+
specification_version: 3
|
128
|
+
summary: User interface for manage settings (rails engine)
|
129
|
+
test_files: []
|