conventional_models 0.2.2 → 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/.document +5 -0
- data/.gitignore +23 -0
- data/.rspec +2 -0
- data/Gemfile +1 -16
- data/Gemfile.lock +61 -81
- data/README.rdoc +1 -8
- data/Rakefile +10 -0
- data/bin/cmconsole +2 -2
- data/conventional_models.gemspec +29 -0
- data/features/cmconsole.feature +6 -7
- data/features/conventional_models.feature +3 -3
- data/features/multiple_databases.feature +2 -2
- data/features/step_definitions/output_model_code_steps.rb +1 -2
- data/features/support/env.rb +3 -2
- data/lib/conventional_models.rb +0 -1
- data/lib/conventional_models/cli.rb +20 -22
- data/lib/conventional_models/database.rb +3 -1
- data/lib/conventional_models/version.rb +2 -2
- data/spec/conventional_models/cli_spec.rb +7 -19
- data/spec/conventional_models/database_spec.rb +2 -2
- data/spec/conventional_models_spec.rb +2 -1
- data/spec/spec_helper.rb +3 -5
- metadata +58 -49
- data/lib/conventional_models/option_parser.rb +0 -50
- data/spec/conventional_models/option_parser_spec.rb +0 -44
data/.document
ADDED
data/.gitignore
ADDED
data/.rspec
ADDED
data/Gemfile
CHANGED
@@ -1,20 +1,5 @@
|
|
1
1
|
source :gemcutter
|
2
2
|
|
3
|
-
|
4
|
-
gem "cucumber", "0.7.2"
|
5
|
-
gem "aruba"
|
6
|
-
gem "open4"
|
7
|
-
end
|
3
|
+
gemspec
|
8
4
|
|
9
|
-
group :specs do
|
10
|
-
gem "rspec", "1.3.0"
|
11
|
-
end
|
12
|
-
|
13
|
-
group :development do
|
14
|
-
gem "jeweler"
|
15
|
-
gem "rake"
|
16
|
-
gem "ZenTest"
|
17
|
-
end
|
18
|
-
|
19
|
-
gem "activerecord", "2.3.5"
|
20
5
|
gem "sqlite3-ruby"
|
data/Gemfile.lock
CHANGED
@@ -1,81 +1,61 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
-
|
41
|
-
|
42
|
-
-
|
43
|
-
|
44
|
-
-
|
45
|
-
|
46
|
-
-
|
47
|
-
|
48
|
-
-
|
49
|
-
|
50
|
-
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
- term-ansicolor:
|
63
|
-
version: 1.0.5
|
64
|
-
- cucumber:
|
65
|
-
version: 0.7.2
|
66
|
-
- gemcutter:
|
67
|
-
version: 0.5.0
|
68
|
-
- git:
|
69
|
-
version: 1.2.5
|
70
|
-
- jeweler:
|
71
|
-
version: 1.4.0
|
72
|
-
- open4:
|
73
|
-
version: 1.0.1
|
74
|
-
- rspec:
|
75
|
-
version: 1.3.0
|
76
|
-
- sqlite3-ruby:
|
77
|
-
version: 1.2.5
|
78
|
-
hash: 49b2ba6893f5940e80f19c400ec7f4a2d38964a5
|
79
|
-
sources:
|
80
|
-
- Rubygems:
|
81
|
-
uri: http://gemcutter.org
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
conventional_models (0.3.0)
|
5
|
+
activerecord (>= 2.3.5)
|
6
|
+
rdoc
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: http://rubygems.org/
|
10
|
+
specs:
|
11
|
+
activemodel (3.0.5)
|
12
|
+
activesupport (= 3.0.5)
|
13
|
+
builder (~> 2.1.2)
|
14
|
+
i18n (~> 0.4)
|
15
|
+
activerecord (3.0.5)
|
16
|
+
activemodel (= 3.0.5)
|
17
|
+
activesupport (= 3.0.5)
|
18
|
+
arel (~> 2.0.2)
|
19
|
+
tzinfo (~> 0.3.23)
|
20
|
+
activesupport (3.0.5)
|
21
|
+
arel (2.0.9)
|
22
|
+
aruba (0.2.7)
|
23
|
+
background_process
|
24
|
+
cucumber (~> 0.10.0)
|
25
|
+
background_process (1.2)
|
26
|
+
builder (2.1.2)
|
27
|
+
cucumber (0.10.0)
|
28
|
+
builder (>= 2.1.2)
|
29
|
+
diff-lcs (~> 1.1.2)
|
30
|
+
gherkin (~> 2.3.2)
|
31
|
+
json (~> 1.4.6)
|
32
|
+
term-ansicolor (~> 1.0.5)
|
33
|
+
diff-lcs (1.1.2)
|
34
|
+
gherkin (2.3.3)
|
35
|
+
json (~> 1.4.6)
|
36
|
+
i18n (0.5.0)
|
37
|
+
json (1.4.6)
|
38
|
+
rdoc (3.5.3)
|
39
|
+
rspec (2.5.0)
|
40
|
+
rspec-core (~> 2.5.0)
|
41
|
+
rspec-expectations (~> 2.5.0)
|
42
|
+
rspec-mocks (~> 2.5.0)
|
43
|
+
rspec-core (2.5.1)
|
44
|
+
rspec-expectations (2.5.0)
|
45
|
+
diff-lcs (~> 1.1.2)
|
46
|
+
rspec-mocks (2.5.0)
|
47
|
+
sqlite3 (1.3.3)
|
48
|
+
sqlite3-ruby (1.3.3)
|
49
|
+
sqlite3 (>= 1.3.3)
|
50
|
+
term-ansicolor (1.0.5)
|
51
|
+
tzinfo (0.3.24)
|
52
|
+
|
53
|
+
PLATFORMS
|
54
|
+
ruby
|
55
|
+
|
56
|
+
DEPENDENCIES
|
57
|
+
aruba (>= 0.1.7)
|
58
|
+
conventional_models!
|
59
|
+
cucumber (>= 0.6.4)
|
60
|
+
rspec (>= 2.3)
|
61
|
+
sqlite3-ruby
|
data/README.rdoc
CHANGED
@@ -15,7 +15,6 @@ We have a table called Page and another called ContentItems (not following Activ
|
|
15
15
|
require 'active_record'
|
16
16
|
ActiveRecord::Base.establish_connection(:database => 'db.sqlite', :adapter => 'sqlite3')
|
17
17
|
|
18
|
-
# set your conventions
|
19
18
|
require 'conventional_models'
|
20
19
|
ConventionalModels.configure do
|
21
20
|
primary_key_name "Id"
|
@@ -84,12 +83,6 @@ You can use this from rake as follows:
|
|
84
83
|
IRB.start
|
85
84
|
end
|
86
85
|
|
87
|
-
|
88
|
-
== Why?
|
89
|
-
|
90
|
-
I use this for data migrations or quick scripting tasks on databases that don't follow rails
|
91
|
-
conventions.
|
92
|
-
|
93
86
|
== Multiple databases
|
94
87
|
|
95
88
|
Given a table called pages in both development.sqlite and test.sqlite:
|
@@ -142,4 +135,4 @@ Given a table called pages in both development.sqlite and test.sqlite:
|
|
142
135
|
|
143
136
|
== Copyright
|
144
137
|
|
145
|
-
Copyright (c)
|
138
|
+
Copyright (c) 2011 Steve Hodgkiss. See LICENSE for details.
|
data/Rakefile
ADDED
data/bin/cmconsole
CHANGED
@@ -0,0 +1,29 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "conventional_models/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = %q{conventional_models}
|
7
|
+
s.version = ConventionalModels::VERSION::STRING
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Steve Hodgkiss"]
|
10
|
+
s.email = %q{steve@hodgkiss.me.uk}
|
11
|
+
s.homepage = %q{http://github.com/stevehodgkiss/conventional_models}
|
12
|
+
s.summary = %q{Generate ActiveRecord models. For lazy people.}
|
13
|
+
s.description = %q{Generate ActiveRecord models automatically with basic relationships based on conventions.}
|
14
|
+
s.default_executable = %q{cmconsole}
|
15
|
+
|
16
|
+
s.rubyforge_project = "conventional_models"
|
17
|
+
|
18
|
+
s.files = `git ls-files`.split("\n")
|
19
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
20
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
|
+
|
22
|
+
s.require_paths = ["lib"]
|
23
|
+
|
24
|
+
s.add_development_dependency("rspec", [">= 2.3"])
|
25
|
+
s.add_development_dependency("cucumber", [">= 0.6.4"])
|
26
|
+
s.add_development_dependency("aruba", [">= 0.1.7"])
|
27
|
+
s.add_runtime_dependency("activerecord", [">= 2.3.5"])
|
28
|
+
s.add_runtime_dependency("rdoc")
|
29
|
+
end
|
data/features/cmconsole.feature
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
@wip
|
2
1
|
Feature: Cmconsole
|
3
2
|
In order to play with models generated against other projects with ease
|
4
3
|
As a user
|
@@ -26,9 +25,9 @@ Feature: Cmconsole
|
|
26
25
|
timeout: 5000
|
27
26
|
"""
|
28
27
|
And a table "pages"
|
29
|
-
When I run "../../bin/cmconsole"
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
28
|
+
When I run "../../bin/cmconsole" interactively
|
29
|
+
And I type "Page.count"
|
30
|
+
And I type "Page.superclass"
|
31
|
+
And I type "exit"
|
32
|
+
Then the output should contain "0"
|
33
|
+
And the output should contain "ActiveRecord::Base"
|
@@ -16,7 +16,7 @@ Feature: ConventionalModels
|
|
16
16
|
puts "Number of records: #{<model_name>.count}"
|
17
17
|
"""
|
18
18
|
When I run "ruby my_script.rb"
|
19
|
-
Then
|
19
|
+
Then the output should contain "Number of records: 0"
|
20
20
|
|
21
21
|
Examples:
|
22
22
|
| table_name | model_name |
|
@@ -36,7 +36,7 @@ Feature: ConventionalModels
|
|
36
36
|
puts "Number of records: #{<model_name>.count}"
|
37
37
|
"""
|
38
38
|
When I run "ruby my_script.rb"
|
39
|
-
Then
|
39
|
+
Then the output should contain "Number of records: 0"
|
40
40
|
|
41
41
|
Examples:
|
42
42
|
| table_name | model_name |
|
@@ -68,6 +68,6 @@ Feature: ConventionalModels
|
|
68
68
|
puts "My page's content item name: #{page.content_items.first.Name}"
|
69
69
|
"""
|
70
70
|
When I run "ruby my_script.rb"
|
71
|
-
Then
|
71
|
+
Then the output should contain "My page's content item name: content1"
|
72
72
|
|
73
73
|
|
@@ -38,5 +38,5 @@ Feature: Multiple database connection
|
|
38
38
|
puts "Number of production records: #{Test::Page.count}"
|
39
39
|
"""
|
40
40
|
When I run "ruby my_script.rb"
|
41
|
-
Then
|
42
|
-
Then
|
41
|
+
Then the output should contain "Number of development records: 2"
|
42
|
+
Then the output should contain "Number of production records: 1"
|
@@ -1,6 +1,5 @@
|
|
1
1
|
Then /^within "([^\"]*)" I should see:$/ do |within, table|
|
2
|
-
|
3
|
-
output = combined_output.scan(/#{within}:\<\<(.*)\>\>/m).to_s
|
2
|
+
output = all_output.match(/#{within}:\<\<(.*)\>\>/m)[0]
|
4
3
|
table.hashes.each do |row|
|
5
4
|
output.should =~ /#{row["line"]}/
|
6
5
|
end
|
data/features/support/env.rb
CHANGED
data/lib/conventional_models.rb
CHANGED
@@ -8,7 +8,6 @@ require 'conventional_models/table'
|
|
8
8
|
require 'conventional_models/column'
|
9
9
|
require 'conventional_models/active_record_base_model_for'
|
10
10
|
require 'conventional_models/options'
|
11
|
-
require 'conventional_models/option_parser'
|
12
11
|
require 'conventional_models/cli'
|
13
12
|
require 'irb'
|
14
13
|
require 'irb/completion'
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'optparse'
|
2
|
-
require 'rdoc/usage'
|
3
2
|
require 'ostruct'
|
4
3
|
require 'date'
|
5
4
|
|
@@ -7,20 +6,24 @@ module ConventionalModels
|
|
7
6
|
class CLI
|
8
7
|
attr_reader :options
|
9
8
|
|
10
|
-
def
|
11
|
-
|
12
|
-
@
|
13
|
-
@options =
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
9
|
+
def run(args)
|
10
|
+
opts = OptionParser.new
|
11
|
+
@options = Options.new
|
12
|
+
opts.on('-v', '--version') { @options.output_version = true }
|
13
|
+
opts.on('-h', '--help') { @options.output_help = opts }
|
14
|
+
opts.on('-s', '--skip-configure') { @options.skip_configure = true }
|
15
|
+
opts.on('-c', '--config FILE') { |file| @options.config = file }
|
16
|
+
opts.on('-e', '--environment ENV') { |env| @options.environment = env }
|
17
|
+
opts.on('-V', '--verbose') { |env| @options.verbose = true }
|
18
|
+
|
19
|
+
begin
|
20
|
+
opts.parse!(args)
|
19
21
|
return output_version if @options.output_version
|
22
|
+
return output_help(@options.output_help) if @options.output_help
|
20
23
|
output_options if @options.verbose
|
21
24
|
run_console
|
22
|
-
|
23
|
-
|
25
|
+
rescue
|
26
|
+
puts opts
|
24
27
|
end
|
25
28
|
end
|
26
29
|
|
@@ -44,18 +47,13 @@ module ConventionalModels
|
|
44
47
|
puts " #{name} = #{val}"
|
45
48
|
end
|
46
49
|
end
|
47
|
-
|
48
|
-
def output_help
|
49
|
-
output_version
|
50
|
-
RDoc::usage()
|
51
|
-
end
|
52
|
-
|
53
|
-
def output_usage
|
54
|
-
RDoc::usage('usage')
|
55
|
-
end
|
56
|
-
|
50
|
+
|
57
51
|
def output_version
|
58
52
|
puts "ConventionalModels version #{ConventionalModels::VERSION::STRING}"
|
59
53
|
end
|
54
|
+
|
55
|
+
def output_help(options)
|
56
|
+
puts options
|
57
|
+
end
|
60
58
|
end
|
61
59
|
end
|
@@ -7,7 +7,8 @@ module ConventionalModels
|
|
7
7
|
def initialize(config)
|
8
8
|
if config.connection.nil?
|
9
9
|
@connection = ::ActiveRecord::Base.connection
|
10
|
-
|
10
|
+
end
|
11
|
+
if config.module_name
|
11
12
|
base_class_code = []
|
12
13
|
base_class_code << "module ::#{config.module_name}"
|
13
14
|
base_class_code << " class Base < ActiveRecord::Base;"
|
@@ -15,6 +16,7 @@ module ConventionalModels
|
|
15
16
|
base_class_code << " end;"
|
16
17
|
base_class_code << "end"
|
17
18
|
eval base_class_code.join
|
19
|
+
|
18
20
|
@base_class = "::#{config.module_name}::Base".constantize
|
19
21
|
@base_class.class_eval do
|
20
22
|
establish_connection config.connection
|
@@ -2,18 +2,12 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
2
2
|
|
3
3
|
module ConventionalModels
|
4
4
|
describe CLI do
|
5
|
-
let(:option_parser) { mock(OptionParser, :options => @options) }
|
6
5
|
before(:each) do
|
7
6
|
@args = []
|
8
7
|
@options = Options.new
|
9
|
-
OptionParser.stub(:new).and_return(option_parser)
|
10
8
|
File.stub(:exists?).with(@options.config).and_return(true)
|
11
9
|
end
|
12
10
|
|
13
|
-
it "should create a new option parser with args" do
|
14
|
-
OptionParser.should_receive(:new).with(@args)
|
15
|
-
CLI.new(@args)
|
16
|
-
end
|
17
11
|
|
18
12
|
describe "run" do
|
19
13
|
before(:each) do
|
@@ -24,14 +18,13 @@ module ConventionalModels
|
|
24
18
|
$stdout = @stdout_orig
|
25
19
|
end
|
26
20
|
|
27
|
-
def run
|
21
|
+
def run(args = [])
|
28
22
|
@cli = CLI.new(@args)
|
29
|
-
@cli.run
|
23
|
+
@cli.run(Array.wrap(args))
|
30
24
|
end
|
31
25
|
|
32
26
|
context "with parsed options" do
|
33
27
|
before(:each) do
|
34
|
-
option_parser.stub(:parsed_options?).and_return(true)
|
35
28
|
ConventionalModels.stub(:configure)
|
36
29
|
ConventionalModels.stub(:model_code)
|
37
30
|
ConventionalModels.stub(:configure_active_record)
|
@@ -77,26 +70,22 @@ module ConventionalModels
|
|
77
70
|
|
78
71
|
context "with skip-configure option" do
|
79
72
|
it "does not call configure" do
|
80
|
-
@options.skip_configure = true
|
81
73
|
ConventionalModels.should_not_receive(:configure)
|
82
|
-
run
|
74
|
+
run("-s")
|
83
75
|
end
|
84
76
|
end
|
85
77
|
|
86
78
|
context "with help option" do
|
87
79
|
it "outputs help" do
|
88
|
-
RDoc.should_receive(:usage)
|
89
|
-
@options.output_help = true
|
90
80
|
ConventionalModels.should_not_receive(:configure_active_record)
|
91
|
-
run
|
81
|
+
run("-h")
|
92
82
|
end
|
93
83
|
end
|
94
84
|
|
95
85
|
context "with output version option" do
|
96
86
|
it "outputs the version" do
|
97
|
-
@options.output_version = true
|
98
87
|
ConventionalModels.should_not_receive(:configure_active_record)
|
99
|
-
run
|
88
|
+
run("-v")
|
100
89
|
$stdout.string.should =~ /#{VERSION::STRING}/
|
101
90
|
end
|
102
91
|
end
|
@@ -104,9 +93,8 @@ module ConventionalModels
|
|
104
93
|
|
105
94
|
context "with invalid options" do
|
106
95
|
it "prints usage" do
|
107
|
-
|
108
|
-
|
109
|
-
run
|
96
|
+
run("-d invalid")
|
97
|
+
$stdout.string.should =~ /Usage:/
|
110
98
|
end
|
111
99
|
end
|
112
100
|
end
|
@@ -3,14 +3,14 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
3
3
|
module ConventionalModels
|
4
4
|
describe Database do
|
5
5
|
let(:table) { mock(Table, :apply_conventions => nil, :belongs_to_names => [], :name => "Test") }
|
6
|
-
let(:config) { mock(Config, :ignored_tables => [], :connection => nil) }
|
6
|
+
let(:config) { mock(Config, :ignored_tables => [], :connection => nil, :module_name => nil) }
|
7
7
|
let(:connection) do
|
8
8
|
mock(::ActiveRecord::ConnectionAdapters::AbstractAdapter, :tables => ["Test"], :columns => columns)
|
9
9
|
end
|
10
10
|
let(:columns) { [mock(Column)] }
|
11
11
|
|
12
12
|
before do
|
13
|
-
::ActiveRecord::Base.stub(:connection
|
13
|
+
::ActiveRecord::Base.stub(:connection => connection)
|
14
14
|
Table.stub(:new => table)
|
15
15
|
end
|
16
16
|
|
@@ -3,13 +3,14 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
3
3
|
module ConventionalModels
|
4
4
|
describe ConventionalModels do
|
5
5
|
let(:config) { mock(Config) }
|
6
|
-
let(:generated_code) {
|
6
|
+
let(:generated_code) { "class TestCode; end" }
|
7
7
|
let(:database) { mock(Database, :code => generated_code, :apply_conventions => nil) }
|
8
8
|
|
9
9
|
before do
|
10
10
|
Config.stub(:new => config)
|
11
11
|
Database.stub(:new => database)
|
12
12
|
ConventionalModels.stub(:run_code)
|
13
|
+
ConventionalModels.class_eval { @@model_code = [] }
|
13
14
|
end
|
14
15
|
|
15
16
|
describe ".configure" do
|
data/spec/spec_helper.rb
CHANGED
@@ -1,12 +1,10 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require 'bundler'
|
3
|
-
Bundler.setup(:specs)
|
2
|
+
require 'bundler/setup'
|
4
3
|
|
5
4
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
6
5
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
7
6
|
require 'conventional_models'
|
8
|
-
require '
|
9
|
-
require 'spec/autorun'
|
7
|
+
require 'rspec'
|
10
8
|
|
11
|
-
|
9
|
+
RSpec.configure do |config|
|
12
10
|
end
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: conventional_models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 2
|
8
|
-
- 2
|
9
|
-
version: 0.2.2
|
4
|
+
prerelease:
|
5
|
+
version: 0.3.0
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Steve Hodgkiss
|
@@ -14,34 +10,28 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date:
|
13
|
+
date: 2011-03-02 00:00:00 +00:00
|
18
14
|
default_executable: cmconsole
|
19
15
|
dependencies:
|
20
16
|
- !ruby/object:Gem::Dependency
|
21
17
|
name: rspec
|
22
18
|
prerelease: false
|
23
19
|
requirement: &id001 !ruby/object:Gem::Requirement
|
20
|
+
none: false
|
24
21
|
requirements:
|
25
22
|
- - ">="
|
26
23
|
- !ruby/object:Gem::Version
|
27
|
-
|
28
|
-
- 1
|
29
|
-
- 3
|
30
|
-
- 0
|
31
|
-
version: 1.3.0
|
24
|
+
version: "2.3"
|
32
25
|
type: :development
|
33
26
|
version_requirements: *id001
|
34
27
|
- !ruby/object:Gem::Dependency
|
35
28
|
name: cucumber
|
36
29
|
prerelease: false
|
37
30
|
requirement: &id002 !ruby/object:Gem::Requirement
|
31
|
+
none: false
|
38
32
|
requirements:
|
39
33
|
- - ">="
|
40
34
|
- !ruby/object:Gem::Version
|
41
|
-
segments:
|
42
|
-
- 0
|
43
|
-
- 6
|
44
|
-
- 4
|
45
35
|
version: 0.6.4
|
46
36
|
type: :development
|
47
37
|
version_requirements: *id002
|
@@ -49,13 +39,10 @@ dependencies:
|
|
49
39
|
name: aruba
|
50
40
|
prerelease: false
|
51
41
|
requirement: &id003 !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
52
43
|
requirements:
|
53
44
|
- - ">="
|
54
45
|
- !ruby/object:Gem::Version
|
55
|
-
segments:
|
56
|
-
- 0
|
57
|
-
- 1
|
58
|
-
- 7
|
59
46
|
version: 0.1.7
|
60
47
|
type: :development
|
61
48
|
version_requirements: *id003
|
@@ -63,39 +50,68 @@ dependencies:
|
|
63
50
|
name: activerecord
|
64
51
|
prerelease: false
|
65
52
|
requirement: &id004 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
66
54
|
requirements:
|
67
55
|
- - ">="
|
68
56
|
- !ruby/object:Gem::Version
|
69
|
-
segments:
|
70
|
-
- 2
|
71
|
-
- 3
|
72
|
-
- 5
|
73
57
|
version: 2.3.5
|
74
58
|
type: :runtime
|
75
59
|
version_requirements: *id004
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: rdoc
|
62
|
+
prerelease: false
|
63
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
64
|
+
none: false
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: "0"
|
69
|
+
type: :runtime
|
70
|
+
version_requirements: *id005
|
76
71
|
description: Generate ActiveRecord models automatically with basic relationships based on conventions.
|
77
72
|
email: steve@hodgkiss.me.uk
|
78
73
|
executables:
|
79
74
|
- cmconsole
|
80
75
|
extensions: []
|
81
76
|
|
82
|
-
extra_rdoc_files:
|
77
|
+
extra_rdoc_files: []
|
78
|
+
|
79
|
+
files:
|
80
|
+
- .document
|
81
|
+
- .gitignore
|
82
|
+
- .rspec
|
83
|
+
- Gemfile
|
84
|
+
- Gemfile.lock
|
83
85
|
- LICENSE
|
84
86
|
- README.rdoc
|
85
|
-
|
87
|
+
- Rakefile
|
88
|
+
- bin/cmconsole
|
89
|
+
- conventional_models.gemspec
|
90
|
+
- features/cmconsole.feature
|
91
|
+
- features/conventional_models.feature
|
92
|
+
- features/multiple_databases.feature
|
93
|
+
- features/output_model_code.feature
|
94
|
+
- features/step_definitions/cmconsole_steps.rb
|
95
|
+
- features/step_definitions/conventional_models_steps.rb
|
96
|
+
- features/step_definitions/multiple_databases.rb
|
97
|
+
- features/step_definitions/output_model_code_steps.rb
|
98
|
+
- features/support/env.rb
|
99
|
+
- lib/conventional_models.rb
|
86
100
|
- lib/conventional_models/active_record_base_model_for.rb
|
87
101
|
- lib/conventional_models/cli.rb
|
88
102
|
- lib/conventional_models/column.rb
|
89
103
|
- lib/conventional_models/config.rb
|
90
104
|
- lib/conventional_models/database.rb
|
91
|
-
- lib/conventional_models/option_parser.rb
|
92
105
|
- lib/conventional_models/options.rb
|
93
106
|
- lib/conventional_models/table.rb
|
94
107
|
- lib/conventional_models/version.rb
|
95
|
-
-
|
96
|
-
-
|
97
|
-
-
|
98
|
-
-
|
108
|
+
- spec/conventional_models/cli_spec.rb
|
109
|
+
- spec/conventional_models/config_spec.rb
|
110
|
+
- spec/conventional_models/database_spec.rb
|
111
|
+
- spec/conventional_models/options_spec.rb
|
112
|
+
- spec/conventional_models/table_spec.rb
|
113
|
+
- spec/conventional_models_spec.rb
|
114
|
+
- spec/spec_helper.rb
|
99
115
|
has_rdoc: true
|
100
116
|
homepage: http://github.com/stevehodgkiss/conventional_models
|
101
117
|
licenses: []
|
@@ -106,37 +122,25 @@ rdoc_options: []
|
|
106
122
|
require_paths:
|
107
123
|
- lib
|
108
124
|
required_ruby_version: !ruby/object:Gem::Requirement
|
125
|
+
none: false
|
109
126
|
requirements:
|
110
127
|
- - ">="
|
111
128
|
- !ruby/object:Gem::Version
|
112
|
-
segments:
|
113
|
-
- 0
|
114
129
|
version: "0"
|
115
130
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
|
+
none: false
|
116
132
|
requirements:
|
117
133
|
- - ">="
|
118
134
|
- !ruby/object:Gem::Version
|
119
|
-
|
120
|
-
- 1
|
121
|
-
- 3
|
122
|
-
- 6
|
123
|
-
version: 1.3.6
|
135
|
+
version: "0"
|
124
136
|
requirements: []
|
125
137
|
|
126
138
|
rubyforge_project: conventional_models
|
127
|
-
rubygems_version: 1.
|
139
|
+
rubygems_version: 1.5.2
|
128
140
|
signing_key:
|
129
141
|
specification_version: 3
|
130
142
|
summary: Generate ActiveRecord models. For lazy people.
|
131
143
|
test_files:
|
132
|
-
- spec/conventional_models/cli_spec.rb
|
133
|
-
- spec/conventional_models/config_spec.rb
|
134
|
-
- spec/conventional_models/database_spec.rb
|
135
|
-
- spec/conventional_models/option_parser_spec.rb
|
136
|
-
- spec/conventional_models/options_spec.rb
|
137
|
-
- spec/conventional_models/table_spec.rb
|
138
|
-
- spec/conventional_models_spec.rb
|
139
|
-
- spec/spec_helper.rb
|
140
144
|
- features/cmconsole.feature
|
141
145
|
- features/conventional_models.feature
|
142
146
|
- features/multiple_databases.feature
|
@@ -146,5 +150,10 @@ test_files:
|
|
146
150
|
- features/step_definitions/multiple_databases.rb
|
147
151
|
- features/step_definitions/output_model_code_steps.rb
|
148
152
|
- features/support/env.rb
|
149
|
-
-
|
150
|
-
-
|
153
|
+
- spec/conventional_models/cli_spec.rb
|
154
|
+
- spec/conventional_models/config_spec.rb
|
155
|
+
- spec/conventional_models/database_spec.rb
|
156
|
+
- spec/conventional_models/options_spec.rb
|
157
|
+
- spec/conventional_models/table_spec.rb
|
158
|
+
- spec/conventional_models_spec.rb
|
159
|
+
- spec/spec_helper.rb
|
@@ -1,50 +0,0 @@
|
|
1
|
-
require 'optparse'
|
2
|
-
require 'rdoc/usage'
|
3
|
-
require 'ostruct'
|
4
|
-
require 'date'
|
5
|
-
|
6
|
-
module ConventionalModels
|
7
|
-
class OptionParser
|
8
|
-
|
9
|
-
attr_reader :options
|
10
|
-
|
11
|
-
def initialize(arguments)
|
12
|
-
@arguments = arguments
|
13
|
-
|
14
|
-
@options = Options.new
|
15
|
-
|
16
|
-
@parsed_options = true
|
17
|
-
parse
|
18
|
-
end
|
19
|
-
|
20
|
-
def parsed_options?
|
21
|
-
@parsed_options
|
22
|
-
end
|
23
|
-
|
24
|
-
def parse
|
25
|
-
opts = ::OptionParser.new
|
26
|
-
opts.on('-v', '--version') { @options.output_version = true }
|
27
|
-
opts.on('-h', '--help') { @options.output_help = true }
|
28
|
-
opts.on('-s', '--skip-configure') { @options.skip_configure = true }
|
29
|
-
opts.on('-c', '--config FILE') { |file| @options.config = file }
|
30
|
-
opts.on('-e', '--environment ENV') { |env| @options.environment = env }
|
31
|
-
opts.on('-V', '--verbose') { |env| @options.verbose = true }
|
32
|
-
|
33
|
-
opts.parse!(@arguments) rescue @parsed_options = false
|
34
|
-
end
|
35
|
-
|
36
|
-
protected
|
37
|
-
def output_help
|
38
|
-
output_version
|
39
|
-
RDoc::usage()
|
40
|
-
end
|
41
|
-
|
42
|
-
def output_usage
|
43
|
-
RDoc::usage('usage')
|
44
|
-
end
|
45
|
-
|
46
|
-
def output_version
|
47
|
-
puts "ConventionalModels version #{ConventionalModels::VERSION}"
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module ConventionalModels
|
4
|
-
describe OptionParser do
|
5
|
-
def options_for(args)
|
6
|
-
@option_parser = OptionParser.new(args)
|
7
|
-
@option_parser.options
|
8
|
-
end
|
9
|
-
|
10
|
-
context "parsing" do
|
11
|
-
it "accepts a database config file" do
|
12
|
-
options_for(["-c", "config/db.yml"]).config.should == "config/db.yml"
|
13
|
-
options_for(["--config", "config/db.yml"]).config.should == "config/db.yml"
|
14
|
-
end
|
15
|
-
|
16
|
-
it "accepts an environment flag" do
|
17
|
-
options_for(["-e", "production"]).environment.should == "production"
|
18
|
-
options_for(["--environment", "production"]).environment.should == "production"
|
19
|
-
end
|
20
|
-
|
21
|
-
it "accepts a skip configure flag" do
|
22
|
-
options_for(["-s"]).skip_configure.should == true
|
23
|
-
options_for(["--skip-configure"]).skip_configure.should == true
|
24
|
-
end
|
25
|
-
|
26
|
-
it "accepts an output version flag" do
|
27
|
-
options_for(["-v"]).output_version.should == true
|
28
|
-
options_for(["--version"]).output_version.should == true
|
29
|
-
end
|
30
|
-
|
31
|
-
it "accepts an output help flag" do
|
32
|
-
options_for(["-h"]).output_help.should == true
|
33
|
-
options_for(["--help"]).output_help.should == true
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
context "invalid arguments" do
|
38
|
-
it "should set parsed_options? to false" do
|
39
|
-
options_for(["--boobs"])
|
40
|
-
@option_parser.parsed_options?.should == false
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|