diff --git a/.gitignore b/.gitignore index 3dd573d..1ed0492 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,8 @@ db/schema.rb* *.log *.sqlite3 *.swp +Gemfile.lock +.bundle +vendor/bundle +config/registry.yml +public/coverage diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 0000000..68b3a4c --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +1.9.3-p551 diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..e8e3471 --- /dev/null +++ b/Gemfile @@ -0,0 +1,3 @@ +source "http://www.rubygems.org" + +gemspec diff --git a/README b/README index 0ff69fe..bac62bf 100644 --- a/README +++ b/README @@ -6,14 +6,23 @@ === Installation - script/plugin install git://github.com/berk/registry.git + # Gemfile + gem 'registry', :git => 'https://github.com/ss/registry.git' +== Testing/Coverage -=== Test + # setup test environment + rbenv install 1.9.3-p551 + gem install bundler -v '~>1.0.0' + bundle install --clean --path=vendor/bundle + bundle exec rake db:migrate - script/server - point your browser at http://localhost:3000/registry + # run tests + bundle exec rake test + # generate coverage report + bundle exec rake registry:coverage + # point your browser at http://localhost:3000/coverage/ === Usage @@ -37,7 +46,7 @@ === Example usage in app/controllers/api_controller.rb - + class ApiController < ActionController::Base before_filter :ensure_api_enabled, :check_rate_limit @@ -80,21 +89,21 @@ development: api_request_window: 100 - + test: api_request_window: 100 - + production: api_enabled: false api_request_limit: 10 api_request_window: 10000 - + in lib/tasks/my_tasks.rake desc 'Import configuration' task :import_configuration => [:environment] do - Registry.import("#{Rails.root}/config/registry.yml") + Registry.import("#{Rails.root}/config/registry.yml", :verbose => true) end --- diff --git a/Rakefile b/Rakefile index fbebfca..d531538 100644 --- a/Rakefile +++ b/Rakefile @@ -2,6 +2,5 @@ require(File.join(File.dirname(__FILE__), 'config', 'boot')) require 'rake' require 'rake/testtask' -require 'rake/rdoctask' require 'tasks/rails' diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..2bf1c1c --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +2.3.1 diff --git a/app/models/registry/entry.rb b/app/models/registry/entry.rb index 06fae46..426f46e 100644 --- a/app/models/registry/entry.rb +++ b/app/models/registry/entry.rb @@ -22,7 +22,7 @@ # require 'registry' -require File.expand_path(File.dirname(__FILE__) + '/../../../vendor/gems/metaskills-acts_as_versioned-0.6.3/lib/acts_as_versioned') +require 'acts_as_versioned' module Registry class Entry < ActiveRecord::Base @@ -85,7 +85,12 @@ def self.export!(file_path = DEFAULT_YML_LOCATION) # ==== Parameters # # * +file_path+ - Path to yml file. - # * +opts+ - Optional, merge options (see documentation for merge method) + # * +opts+ - Optional parameters + # + # ==== Options + # + # * verbose - If true, print information to stderr. + # * merge options (see documentation for merge method) # # ==== File Format # @@ -113,6 +118,7 @@ def self.import!(file_path = DEFAULT_YML_LOCATION, opts={}) hash = YAML.load_file(file_path) default_entries = hash.delete(Registry::DEFAULTS_KEY) || {} hash.each do |env, entries| + STDERR.puts "Importing: #{env}" if opts[:verbose] root(env).merge(default_entries.deep_merge(entries), opts) end end @@ -236,9 +242,13 @@ def to_form_property_hash # * +hash+ - Optional, hash to update. # # call-seq: - # Registry::Entry.root.export #=> {'api' => {'enabled' => true}} + # Registry::Entry.root.export #=> {'api' => {'enabled' => true}, '_last_updated_at' => ...} def export(hash={}, entries=nil) - entries ||= Entry.all(:conditions => ['env = ? and id != ?', env, id]) + + if entries.nil? + entries = Entry.all(:conditions => ['env = ? and id != ?', env, id]) + hash['_last_updated_at'] = entries.inject(Time.at(0)) {|old_max, entry| [old_max, entry.updated_at].max} + end properties, entries = entries.partition {|entry| entry.parent_id == id && !entry.folder?} properties.each do |p| diff --git a/app/views/registry/registry/viewport.html.erb b/app/views/registry/registry/viewport.html.erb index 4e228c5..88a7038 100644 --- a/app/views/registry/registry/viewport.html.erb +++ b/app/views/registry/registry/viewport.html.erb @@ -10,16 +10,16 @@
- + } %>