configurable_engine 0.0.1 → 0.1.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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Configurable #
2
2
 
3
- A Rails 3 configuration plugin. An update to [Behavior](http://github.com/paulca/behavior).
3
+ A Rails 3 configuration engine. An update to [Behavior](http://github.com/paulca/behavior) for Rails 3.
4
4
 
5
5
  ## How it works ##
6
6
 
@@ -12,31 +12,31 @@ If you or your app users need to change these variables, Configurable stores new
12
12
 
13
13
  Configurable is available as a Ruby gem. Simply add it to your Rails 3 app's `Gemfile`:
14
14
 
15
- gem 'configurable'
15
+ gem 'configurable_engine'
16
16
 
17
17
  Then run the `configurable_engine:install` generator:
18
18
 
19
- rails generate configurable:install
19
+ rails generate configurable_engine:install
20
20
 
21
21
  ## Usage ##
22
22
 
23
- There are two parts to how behavior works. First of all there is a config file, config/behavior.yml. This file controls the variables that are allowed to be set in the app.
23
+ There are two parts to how behavior works. First of all there is a config file, config/configurable.yml. This file controls the variables that are allowed to be set in the app.
24
24
 
25
- For example, if you wanted to have access to a config variable "site_title", put this in behavior.yml:
25
+ For example, if you wanted to have access to a config variable "site_title", put this in configurable.yml:
26
26
 
27
- site_title:
28
- name: Site Title
29
- default: My Site
27
+ site_title:
28
+ name: Site Title
29
+ default: My Site
30
30
 
31
- Now, within your app, you can access `Configurable[:site\_title]` (or `Configurable.site_title` if you prefer).
31
+ Now, within your app, you can access `Configurable[:site_title]` (or `Configurable.site_title` if you prefer).
32
32
 
33
- If you want to update the config, create a Configurable record in the database:
33
+ Since Configurable is an ActiveRecord model, if you want to update the config, create a Configurable record in the database:
34
34
 
35
35
  Configurable.create!(:name => 'site_title', :value => 'My New Site')
36
36
 
37
37
  ## Web Interface ##
38
38
 
39
- Using Rails 3's Engines feature, Configurable comes with a web interface that is available to your app straight away at `http://localhost:3000/admin/configurable`.
39
+ Configurable comes with a web interface that is available to your app straight away at `http://localhost:3000/admin/configurable`.
40
40
 
41
41
  If you want to add a layout, or protect the configurable controller, create `app/controllers/admin/application_controller.rb` which would look something like this:
42
42
 
@@ -83,7 +83,11 @@ Within the `dummy` folder, run:
83
83
  bundle exec rspec spec
84
84
  bundle exec cucumber features
85
85
 
86
- == Copyright
86
+ ## Contributing ##
87
+
88
+ All contributions are welcome. Just fork the code, ensure your changes include a test, ensure all the current tests pass and send a pull request.
89
+
90
+ ## Copyright ##
87
91
 
88
92
  Copyright (c) 2011 Paul Campbell. See LICENSE.txt for
89
93
  further details.
data/Rakefile CHANGED
@@ -22,7 +22,7 @@ Jeweler::Tasks.new do |gem|
22
22
  # Include your dependencies below. Runtime dependencies are required when using your gem,
23
23
  # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
24
24
  gem.add_runtime_dependency 'rails', '~>3.0.0'
25
- gem.files = FileList["[A-Za-z]*", "app/**/*", "config/*"]
25
+ gem.files = FileList["[A-Za-z]*", "lib/**/*", "app/**/*", "config/*"]
26
26
  # gem.add_development_dependency 'rspec', '> 1.2.3'
27
27
  end
28
28
  Jeweler::RubygemsDotOrgTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.1.0
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{configurable_engine}
8
- s.version = "0.0.1"
8
+ s.version = "0.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Paul Campbell"]
@@ -28,7 +28,11 @@ Gem::Specification.new do |s|
28
28
  "app/models/configurable.rb",
29
29
  "app/views/admin/configurables/show.html.erb",
30
30
  "config/routes.rb",
31
- "configurable_engine.gemspec"
31
+ "configurable_engine.gemspec",
32
+ "lib/configurable_engine.rb",
33
+ "lib/generators/configurable_engine/install_generator.rb",
34
+ "lib/generators/configurable_engine/templates/configurable.yml",
35
+ "lib/generators/configurable_engine/templates/migration.rb"
32
36
  ]
33
37
  s.homepage = %q{http://github.com/paulca/configurable_engine}
34
38
  s.licenses = ["MIT"]
@@ -0,0 +1,4 @@
1
+ module ConfigurableEngine
2
+ class Engine < Rails::Engine
3
+ end
4
+ end
@@ -0,0 +1,24 @@
1
+ require 'rails/generators'
2
+ module Configurable
3
+ class InstallGenerator < Rails::Generators::Base
4
+ include Rails::Generators::Migration
5
+
6
+
7
+ def self.source_root
8
+ @source_root ||= File.join(File.dirname(__FILE__), 'templates')
9
+ end
10
+
11
+ def self.next_migration_number(dirname)
12
+ if ActiveRecord::Base.timestamped_migrations
13
+ Time.now.utc.strftime("%Y%m%d%H%M%S")
14
+ else
15
+ "%.3d" % (current_migration_number(dirname) + 1)
16
+ end
17
+ end
18
+
19
+ def create_migration_file
20
+ copy_file 'configurable.yml', 'config/configurable.yml'
21
+ migration_template 'migration.rb', 'db/migrate/create_configurables.rb'
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,33 @@
1
+ # This file controls what config variables you want to be able to allow your users
2
+ # to set, as well as those you'll be able to access from within the application.
3
+ #
4
+ # If you want to be able to access a string config[:site_title], for example:
5
+ #
6
+ # site_title:
7
+ # name: Site Title
8
+ # type: string
9
+ # default: My Site
10
+ #
11
+ # 'name' is the name that appears in the edit form
12
+ #
13
+ # 'type' can be 'string' for a text field, 'password' for a password field or 'text' for a text area
14
+ # 'type' defaults to 'string'
15
+ #
16
+ # 'default' is the default value to use if there's no entry in the database. Otherwise, nil will be returned
17
+ #
18
+ # Some Examples:
19
+ #
20
+ # site_title:
21
+ # name: Site Title
22
+ # default: My Site
23
+ # type: string
24
+ #
25
+ # site_description:
26
+ # name: Description for Google
27
+ # default: Lots of Awesomeness Here
28
+ # type: text
29
+ #
30
+ # secret:
31
+ # name: Secret Password for Accessing Secret Areas
32
+ # default: secret
33
+ # type: password
@@ -0,0 +1,17 @@
1
+ class CreateConfigurables < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :configurables do |t|
4
+ t.string :name
5
+ t.string :value
6
+
7
+ t.timestamps
8
+ end
9
+
10
+ add_index :configurables, :name
11
+ end
12
+
13
+ def self.down
14
+ remove_index :configurables, :name
15
+ drop_table :configurables
16
+ end
17
+ end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 0
8
7
  - 1
9
- version: 0.0.1
8
+ - 0
9
+ version: 0.1.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Paul Campbell
@@ -106,6 +106,10 @@ files:
106
106
  - app/views/admin/configurables/show.html.erb
107
107
  - config/routes.rb
108
108
  - configurable_engine.gemspec
109
+ - lib/configurable_engine.rb
110
+ - lib/generators/configurable_engine/install_generator.rb
111
+ - lib/generators/configurable_engine/templates/configurable.yml
112
+ - lib/generators/configurable_engine/templates/migration.rb
109
113
  has_rdoc: true
110
114
  homepage: http://github.com/paulca/configurable_engine
111
115
  licenses:
@@ -120,7 +124,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
120
124
  requirements:
121
125
  - - ">="
122
126
  - !ruby/object:Gem::Version
123
- hash: -271690143338276698
127
+ hash: 2354103642827299759
124
128
  segments:
125
129
  - 0
126
130
  version: "0"