console_update 0.1.2 → 0.1.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.
- data/CHANGELOG.rdoc +10 -0
- data/LICENSE.txt +1 -1
- data/README.rdoc +2 -1
- data/Rakefile +24 -39
- data/gemspec +20 -0
- data/lib/console_update/version.rb +3 -0
- data/lib/console_update.rb +2 -5
- data/test/console_update_test.rb +41 -41
- data/test/filter_test.rb +8 -7
- data/test/named_scope_test.rb +3 -3
- data/test/test_helper.rb +9 -8
- metadata +71 -26
- data/VERSION.yml +0 -4
- data/init.rb +0 -1
- data/rails/init.rb +0 -2
data/CHANGELOG.rdoc
ADDED
data/LICENSE.txt
CHANGED
data/README.rdoc
CHANGED
@@ -4,7 +4,8 @@ Updates records from the console via your preferred editor. You can update a rec
|
|
4
4
|
well as <i>any attribute</i> that has accessor methods. Records are edited via a temporary file and
|
5
5
|
once saved, the records are updated. Records go through a filter before and after editing the file. Yaml is
|
6
6
|
the default filter, but you can define your own filter simply with a module and 2 expected methods.
|
7
|
-
See ConsoleUpdate::Filter for more details.
|
7
|
+
See ConsoleUpdate::Filter for more details. Compatible with all major Ruby versions and Rails 2.3.x
|
8
|
+
and up.
|
8
9
|
|
9
10
|
== Install
|
10
11
|
|
data/Rakefile
CHANGED
@@ -1,50 +1,35 @@
|
|
1
1
|
require 'rake'
|
2
|
-
require '
|
3
|
-
require 'rake/rdoctask'
|
4
|
-
begin
|
5
|
-
require 'rcov/rcovtask'
|
2
|
+
require 'fileutils'
|
6
3
|
|
7
|
-
|
8
|
-
|
9
|
-
t.test_files = FileList['test/**/*_test.rb']
|
10
|
-
t.rcov_opts = ["-T -x '/Library/Ruby/*'"]
|
11
|
-
t.verbose = true
|
12
|
-
end
|
13
|
-
rescue LoadError
|
14
|
-
puts "Rcov not available. Install it for rcov-related tasks with: sudo gem install rcov"
|
4
|
+
def gemspec
|
5
|
+
@gemspec ||= eval(File.read('gemspec'), binding, 'gemspec')
|
15
6
|
end
|
16
7
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
s.extra_rdoc_files = ["README.rdoc", "LICENSE.txt"]
|
29
|
-
s.files = FileList["Rakefile", "VERSION.yml", "README.rdoc", "init.rb", "LICENSE.txt", "{rails,lib,test}/**/*"]
|
30
|
-
end
|
8
|
+
desc "Build the gem"
|
9
|
+
task :gem=>:gemspec do
|
10
|
+
sh "gem build gemspec"
|
11
|
+
FileUtils.mkdir_p 'pkg'
|
12
|
+
FileUtils.mv "#{gemspec.name}-#{gemspec.version}.gem", 'pkg'
|
13
|
+
end
|
14
|
+
|
15
|
+
desc "Install the gem locally"
|
16
|
+
task :install => :gem do
|
17
|
+
sh %{gem install pkg/#{gemspec.name}-#{gemspec.version}}
|
18
|
+
end
|
31
19
|
|
32
|
-
|
33
|
-
|
20
|
+
desc "Generate the gemspec"
|
21
|
+
task :generate do
|
22
|
+
puts gemspec.to_ruby
|
34
23
|
end
|
35
24
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
t.verbose = false
|
25
|
+
desc "Validate the gemspec"
|
26
|
+
task :gemspec do
|
27
|
+
gemspec.validate
|
40
28
|
end
|
41
29
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
rdoc.options << '--line-numbers' << '--inline-source'
|
46
|
-
rdoc.rdoc_files.include('README*')
|
47
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
30
|
+
desc 'Run tests'
|
31
|
+
task :test do |t|
|
32
|
+
sh 'bacon -q -Ilib -I. test/*_test.rb'
|
48
33
|
end
|
49
34
|
|
50
|
-
task :default => :test
|
35
|
+
task :default => :test
|
data/gemspec
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'rubygems' unless Object.const_defined?(:Gem)
|
3
|
+
require File.dirname(__FILE__) + "/lib/console_update/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "console_update"
|
7
|
+
s.version = ConsoleUpdate::VERSION
|
8
|
+
s.authors = ["Gabriel Horner"]
|
9
|
+
s.email = "gabriel.horner@gmail.com"
|
10
|
+
s.homepage = "http://tagaholic.me/console_update/"
|
11
|
+
s.summary = "Edit your database records via the console and your favorite editor."
|
12
|
+
s.description = "Updates records from the console via your preferred editor. You can update a record's columns as well as any attribute that has accessor methods. Records are edited via a temporary file and once saved, the records are updated. Records go through a filter before and after editing the file. Yaml is the default filter, but you can define your own filters."
|
13
|
+
s.required_rubygems_version = ">= 1.3.6"
|
14
|
+
s.rubyforge_project = 'tagaholic'
|
15
|
+
s.add_development_dependency 'bacon'
|
16
|
+
s.add_development_dependency 'mocha'
|
17
|
+
s.add_development_dependency 'mocha-on-bacon'
|
18
|
+
s.files = Dir.glob(%w[{lib,test}/**/*.rb bin/* [A-Z]*.{txt,rdoc} ext/**/*.{rb,c}]) + %w{Rakefile gemspec}
|
19
|
+
s.extra_rdoc_files = ["README.rdoc", "LICENSE.txt"]
|
20
|
+
end
|
data/lib/console_update.rb
CHANGED
@@ -1,8 +1,7 @@
|
|
1
|
-
current_dir = File.dirname(__FILE__)
|
2
|
-
$:.unshift(current_dir) unless $:.include?(current_dir) || $:.include?(File.expand_path(current_dir))
|
3
1
|
require 'tempfile'
|
4
2
|
require 'console_update/named_scope'
|
5
3
|
require 'console_update/filter'
|
4
|
+
require 'console_update/version'
|
6
5
|
|
7
6
|
module ConsoleUpdate
|
8
7
|
class <<self; attr_accessor(:filter, :editor); end
|
@@ -69,9 +68,7 @@ module ConsoleUpdate
|
|
69
68
|
end
|
70
69
|
rescue ConsoleUpdate::Filter::AbstractMethodError
|
71
70
|
puts "Undefined filter method for #{ConsoleUpdate::filter} filter"
|
72
|
-
rescue
|
73
|
-
raise e
|
74
|
-
rescue Exception=>e
|
71
|
+
rescue StandardError=>e
|
75
72
|
puts "Some record(s) didn't update because of this error: #{e}"
|
76
73
|
ensure
|
77
74
|
#this attribute should only last duration of method
|
data/test/console_update_test.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
2
|
|
3
|
-
|
3
|
+
describe "ConsoleUpdate" do
|
4
4
|
def stub_editor_update_with_records(new_records, options={})
|
5
|
-
Bird.
|
5
|
+
Bird.expects(:system).with { |editor, file|
|
6
6
|
if options[:expected_attributes]
|
7
7
|
YAML::load_file(file)[0].keys.sort.should == options[:expected_attributes]
|
8
8
|
end
|
@@ -10,38 +10,37 @@ class ConsoleUpdateTest < Test::Unit::TestCase
|
|
10
10
|
}
|
11
11
|
end
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
test "sets default_editable_attributes" do
|
19
|
-
Bird.column_names.include?('bin').should be(true)
|
20
|
-
Bird.default_editable_attributes.empty?.should be(false)
|
21
|
-
Bird.default_editable_attributes.include?('bin').should be(false)
|
13
|
+
describe "can_console_update" do
|
14
|
+
it "sets default_editable_attributes" do
|
15
|
+
Bird.column_names.include?('bin').should == true
|
16
|
+
Bird.default_editable_attributes.should.not.be.empty?
|
17
|
+
Bird.default_editable_attributes.include?('bin').should == false
|
22
18
|
end
|
23
19
|
|
24
|
-
|
20
|
+
it "sets default_editable_attributes with only option" do
|
25
21
|
Bird.can_console_update :only=>['description']
|
26
22
|
Bird.default_editable_attributes.should == ['description']
|
27
23
|
end
|
28
24
|
|
29
|
-
|
25
|
+
it "sets default_editable_attributes with except option" do
|
30
26
|
Bird.can_console_update :except=>['description']
|
31
27
|
Bird.default_editable_attributes.sort.should == ["bin", "created_at", "id", "name", "nickname", "updated_at"]
|
32
28
|
end
|
33
29
|
|
34
|
-
|
30
|
+
it "sets console_editor with editor option" do
|
35
31
|
Bird.can_console_update :editor=>'vi'
|
36
32
|
Bird.console_editor.should == 'vi'
|
37
33
|
end
|
38
34
|
end
|
39
35
|
|
40
|
-
|
41
|
-
before
|
42
|
-
before(:each) {|e| Bird.delete_all }
|
36
|
+
describe "console_update" do
|
37
|
+
before { Bird.delete_all }
|
43
38
|
|
44
|
-
|
39
|
+
def create_big_bird(attributes={})
|
40
|
+
@big_bird = Bird.create({:name=>"big bird"}.update(attributes))
|
41
|
+
end
|
42
|
+
|
43
|
+
it "updates multiple records" do
|
45
44
|
create_big_bird
|
46
45
|
@dodo = Bird.create(:name=>"dodo")
|
47
46
|
new_records = [@big_bird.attributes.update('name'=>'big birded'), @dodo.attributes.update('name'=>'dudu')]
|
@@ -51,7 +50,7 @@ class ConsoleUpdateTest < Test::Unit::TestCase
|
|
51
50
|
@dodo.reload.name.should == 'dudu'
|
52
51
|
end
|
53
52
|
|
54
|
-
|
53
|
+
it "doesn't modify missing attributes" do
|
55
54
|
create_big_bird(:nickname=>'doofus')
|
56
55
|
# this record is missing all it's attributes except name
|
57
56
|
new_records = [{'name'=>'big birded', 'id'=>@big_bird.id}]
|
@@ -61,7 +60,7 @@ class ConsoleUpdateTest < Test::Unit::TestCase
|
|
61
60
|
@big_bird.name.should == 'big birded'
|
62
61
|
end
|
63
62
|
|
64
|
-
|
63
|
+
it "updates attr_protected column" do
|
65
64
|
create_big_bird
|
66
65
|
new_records = [@big_bird.attributes.update('description'=>"it's big")]
|
67
66
|
stub_editor_update_with_records(new_records)
|
@@ -69,36 +68,36 @@ class ConsoleUpdateTest < Test::Unit::TestCase
|
|
69
68
|
@big_bird.reload.description.should == "it's big"
|
70
69
|
end
|
71
70
|
|
72
|
-
|
71
|
+
it "rescues exception" do
|
73
72
|
create_big_bird
|
74
|
-
Bird.
|
73
|
+
Bird.expects(:system).raises(StandardError)
|
75
74
|
capture_stdout {
|
76
75
|
Bird.console_update([@big_bird])
|
77
|
-
}
|
76
|
+
}.should =~ /^Some/
|
78
77
|
end
|
79
78
|
|
80
|
-
|
79
|
+
it "via instance method" do
|
81
80
|
create_big_bird
|
82
81
|
stub_editor_update_with_records([@big_bird.attributes.update('name'=>'small bird')])
|
83
82
|
@big_bird.console_update
|
84
83
|
@big_bird.reload.name.should == 'small bird'
|
85
84
|
end
|
86
85
|
|
87
|
-
|
86
|
+
it "via find_and_console_update" do
|
88
87
|
create_big_bird
|
89
88
|
stub_editor_update_with_records([@big_bird.attributes.update('name'=>'small bird')])
|
90
89
|
Bird.find_and_console_update(@big_bird.id)
|
91
90
|
@big_bird.reload.name.should == 'small bird'
|
92
91
|
end
|
93
92
|
|
94
|
-
|
93
|
+
it "with only option only edits those columns" do
|
95
94
|
create_big_bird(:description=>"something")
|
96
95
|
stub_editor_update_with_records([@big_bird.attributes.update('name'=>'big birded')], :expected_attributes=>['id', 'name'])
|
97
96
|
Bird.console_update([@big_bird], :only=>['name'])
|
98
97
|
@big_bird.reload.name.should == 'big birded'
|
99
98
|
end
|
100
99
|
|
101
|
-
|
100
|
+
it "with except option edits all columns except those columns" do
|
102
101
|
create_big_bird(:description=>"something")
|
103
102
|
expected_attributes = ["id", "name", "nickname"]
|
104
103
|
stub_editor_update_with_records([@big_bird.attributes.update('name'=>'big birded')], :expected_attributes=>expected_attributes)
|
@@ -106,28 +105,29 @@ class ConsoleUpdateTest < Test::Unit::TestCase
|
|
106
105
|
@big_bird.reload.name.should == 'big birded'
|
107
106
|
end
|
108
107
|
|
109
|
-
|
108
|
+
it "sets a non column attribute" do
|
110
109
|
create_big_bird
|
111
110
|
stub_editor_update_with_records([{'tag_list'=>["yellow"], 'id'=>@big_bird.id}], :expected_attributes=>["id","tag_list"])
|
112
111
|
Bird.console_update([@big_bird], :only=>["tag_list"] )
|
113
112
|
@big_bird.tag_list.should == ['yellow']
|
114
113
|
end
|
115
114
|
|
116
|
-
|
115
|
+
it "updates and deletes extra attributes added in editor" do
|
117
116
|
create_big_bird
|
118
117
|
stub_editor_update_with_records([{'name'=>'big birded','nickname'=>'doofird', 'id'=>@big_bird.id}])
|
119
118
|
Bird.console_update([@big_bird], :only=>['name'])
|
120
|
-
@big_bird.reload.nickname.
|
119
|
+
@big_bird.reload.nickname.should.not == 'doofird'
|
121
120
|
end
|
122
121
|
end
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
end
|
122
|
+
|
123
|
+
# TODO
|
124
|
+
# it "editable_attribute_names expire per console_update" do
|
125
|
+
# @big_bird = Bird.create({:name=>"big bird"})
|
126
|
+
# stub_editor_update_with_records([{'name'=>'big birded', 'id'=>@big_bird.id}], :expected_attributes=>["id", "name"])
|
127
|
+
# Bird.console_update([@big_bird], :only=>['name'])
|
128
|
+
# @big_bird.instance_eval("@editable_attribute_names").should == nil
|
129
|
+
# #these expected_attributes would fail if @editable_attribute_names wasn't reset for each console_update()
|
130
|
+
# stub_editor_update_with_records([{'description'=>'big birded','id'=>@big_bird.id}], :expected_attributes=>["description", "id"])
|
131
|
+
# Bird.console_update([@big_bird], :only=>['description'])
|
132
|
+
# end
|
133
|
+
end
|
data/test/filter_test.rb
CHANGED
@@ -8,21 +8,22 @@ module ConsoleUpdate
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
-
class ConsoleUpdate::FilterTest < Test::Unit::TestCase
|
12
|
-
|
13
|
-
|
11
|
+
# class ConsoleUpdate::FilterTest < Test::Unit::TestCase
|
12
|
+
describe "Filter" do
|
13
|
+
it "incorrect filter name raises FilterNotFoundError" do
|
14
|
+
should.raise(ConsoleUpdate::Filter::FilterNotFoundError) {
|
14
15
|
ConsoleUpdate::Filter.new(:blah)
|
15
16
|
}
|
16
17
|
end
|
17
18
|
|
18
|
-
|
19
|
-
|
19
|
+
it "filter without proper methods raises AbstractMethodError" do
|
20
|
+
should.raise(ConsoleUpdate::Filter::AbstractMethodError) {
|
20
21
|
ConsoleUpdate::Filter.new(:test).string_to_hashes('blah')
|
21
22
|
}
|
22
23
|
end
|
23
24
|
|
24
|
-
|
25
|
+
it "extends filter for a non-lowercase filter name correctly" do
|
25
26
|
filter_meta_class = ConsoleUpdate::Filter.new("Test").instance_eval("class<<self; self;end")
|
26
|
-
filter_meta_class.ancestors.include?(ConsoleUpdate::Filter::Test).should
|
27
|
+
filter_meta_class.ancestors.include?(ConsoleUpdate::Filter::Test).should == true
|
27
28
|
end
|
28
29
|
end
|
data/test/named_scope_test.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
describe "NamedScope" do
|
4
|
+
it "chained console_update calls actual named_scope" do
|
5
5
|
big_bird = Bird.create({:name=>"big bird"})
|
6
|
-
Bird.
|
6
|
+
Bird.expects(:system) { |editor, file|
|
7
7
|
YAML::load_file(file)[0].keys.sort.should == Bird.default_editable_attributes.sort
|
8
8
|
}
|
9
9
|
ConsoleUpdate.enable_named_scope
|
data/test/test_helper.rb
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
require 'rubygems'
|
2
|
+
require 'mocha'
|
3
|
+
require 'mocha-on-bacon'
|
4
|
+
require 'bacon'
|
2
5
|
require 'activerecord'
|
3
|
-
require '
|
4
|
-
require 'context' #gem install jeremymcanally-context -s http://gems.github.com
|
5
|
-
require 'matchy' #gem install jeremymcanally-matchy -s http://gems.github.com
|
6
|
-
require 'stump' #gem install jeremymcanally-stump -s http://gems.github.com
|
7
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
6
|
+
require 'console_update'
|
8
7
|
require File.join(File.dirname(__FILE__), '..', 'init')
|
9
8
|
|
10
9
|
#Setup logger
|
@@ -19,14 +18,16 @@ ActiveRecord::Base.establish_connection('sqlite3')
|
|
19
18
|
|
20
19
|
#Define schema
|
21
20
|
require File.join(File.dirname(__FILE__), 'schema')
|
22
|
-
class Bird < ActiveRecord::Base
|
21
|
+
class ::Bird < ActiveRecord::Base
|
23
22
|
named_scope :just_big_bird, :conditions=>{:name=>'big bird'}
|
24
23
|
attr_protected :description
|
25
24
|
attr_accessor :tag_list
|
26
25
|
can_console_update
|
27
26
|
end
|
28
27
|
|
29
|
-
class
|
28
|
+
class Bacon::Context
|
29
|
+
def before_all; yield; end
|
30
|
+
|
30
31
|
def capture_stdout(&block)
|
31
32
|
original_stdout = $stdout
|
32
33
|
$stdout = fake = StringIO.new
|
@@ -37,4 +38,4 @@ class Test::Unit::TestCase
|
|
37
38
|
end
|
38
39
|
fake.string
|
39
40
|
end
|
40
|
-
end
|
41
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: console_update
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
- 3
|
9
|
+
version: 0.1.3
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Gabriel Horner
|
@@ -9,10 +14,48 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date:
|
17
|
+
date: 2010-06-10 00:00:00 -04:00
|
13
18
|
default_executable:
|
14
|
-
dependencies:
|
15
|
-
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: bacon
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 0
|
30
|
+
version: "0"
|
31
|
+
type: :development
|
32
|
+
version_requirements: *id001
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: mocha
|
35
|
+
prerelease: false
|
36
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
37
|
+
none: false
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 0
|
43
|
+
version: "0"
|
44
|
+
type: :development
|
45
|
+
version_requirements: *id002
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: mocha-on-bacon
|
48
|
+
prerelease: false
|
49
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
segments:
|
55
|
+
- 0
|
56
|
+
version: "0"
|
57
|
+
type: :development
|
58
|
+
version_requirements: *id003
|
16
59
|
description: Updates records from the console via your preferred editor. You can update a record's columns as well as any attribute that has accessor methods. Records are edited via a temporary file and once saved, the records are updated. Records go through a filter before and after editing the file. Yaml is the default filter, but you can define your own filters.
|
17
60
|
email: gabriel.horner@gmail.com
|
18
61
|
executables: []
|
@@ -20,55 +63,57 @@ executables: []
|
|
20
63
|
extensions: []
|
21
64
|
|
22
65
|
extra_rdoc_files:
|
23
|
-
- LICENSE.txt
|
24
66
|
- README.rdoc
|
25
|
-
files:
|
26
67
|
- LICENSE.txt
|
27
|
-
|
28
|
-
- Rakefile
|
29
|
-
- VERSION.yml
|
30
|
-
- init.rb
|
31
|
-
- lib/console_update.rb
|
32
|
-
- lib/console_update/filter.rb
|
68
|
+
files:
|
33
69
|
- lib/console_update/filter/yaml.rb
|
70
|
+
- lib/console_update/filter.rb
|
34
71
|
- lib/console_update/named_scope.rb
|
35
|
-
-
|
72
|
+
- lib/console_update/version.rb
|
73
|
+
- lib/console_update.rb
|
36
74
|
- test/console_update_test.rb
|
37
75
|
- test/filter_test.rb
|
38
76
|
- test/named_scope_test.rb
|
39
77
|
- test/schema.rb
|
40
78
|
- test/test_helper.rb
|
79
|
+
- LICENSE.txt
|
80
|
+
- CHANGELOG.rdoc
|
81
|
+
- README.rdoc
|
82
|
+
- Rakefile
|
83
|
+
- gemspec
|
41
84
|
has_rdoc: true
|
42
85
|
homepage: http://tagaholic.me/console_update/
|
43
86
|
licenses: []
|
44
87
|
|
45
88
|
post_install_message:
|
46
|
-
rdoc_options:
|
47
|
-
|
89
|
+
rdoc_options: []
|
90
|
+
|
48
91
|
require_paths:
|
49
92
|
- lib
|
50
93
|
required_ruby_version: !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
51
95
|
requirements:
|
52
96
|
- - ">="
|
53
97
|
- !ruby/object:Gem::Version
|
98
|
+
segments:
|
99
|
+
- 0
|
54
100
|
version: "0"
|
55
|
-
version:
|
56
101
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
|
+
none: false
|
57
103
|
requirements:
|
58
104
|
- - ">="
|
59
105
|
- !ruby/object:Gem::Version
|
60
|
-
|
61
|
-
|
106
|
+
segments:
|
107
|
+
- 1
|
108
|
+
- 3
|
109
|
+
- 6
|
110
|
+
version: 1.3.6
|
62
111
|
requirements: []
|
63
112
|
|
64
113
|
rubyforge_project: tagaholic
|
65
|
-
rubygems_version: 1.3.
|
114
|
+
rubygems_version: 1.3.7
|
66
115
|
signing_key:
|
67
116
|
specification_version: 3
|
68
|
-
summary:
|
69
|
-
test_files:
|
70
|
-
|
71
|
-
- test/filter_test.rb
|
72
|
-
- test/named_scope_test.rb
|
73
|
-
- test/schema.rb
|
74
|
-
- test/test_helper.rb
|
117
|
+
summary: Edit your database records via the console and your favorite editor.
|
118
|
+
test_files: []
|
119
|
+
|
data/VERSION.yml
DELETED
data/init.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), 'rails', 'init.rb')
|
data/rails/init.rb
DELETED