railroady 1.1.1 → 1.1.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d861e99e4da72666e52557b3dd4aae91be9c3810
4
- data.tar.gz: 877a3dfee6e413da3f9a7b93a9e434847675e97c
3
+ metadata.gz: 04e3747c5c99a23bc76daeb07ba2afee3688a470
4
+ data.tar.gz: df60108b7a16afdf595baa3ee61464130776f013
5
5
  SHA512:
6
- metadata.gz: 968bf68e7072cba4ab255c8b2ab1da9f880a077b5269dbc0f65abf8c1a4bf1a224345cfd278f0a51a98061381574038a68d2b1cd8c62437dbffaff8a74642b43
7
- data.tar.gz: 78b3e11854e3394ce6db8a9c6554bf807cb356ec68dd6f0075c168b3a4e1682e188f9e25cd1f31a774aba2df1a109881418003c53d6d3ee306febcc6ba406f6d
6
+ metadata.gz: 4e91ce3076f9d0a7a326d50052d50b761340786f581f02a1516b36ac6139a3f443fe7fd1b1bda72455a717103e8f6b7d820c356c0fc0def5d66ca29c70102d2e
7
+ data.tar.gz: b4debced96a4b045aaaf19ccbaba2dcb33effe84a5233c502962d3d4c775535c480d17f9ea4e518bbbd849f9c1e5cc2115ab328c96fbbebceab274d8696faede
data/README.rdoc CHANGED
@@ -1,10 +1,10 @@
1
1
  = RailRoady
2
2
 
3
- RailRoady generates Rails 3/4 model (AcitveRecord, Mongoid, Datamapper) and controller UML diagrams as cross-platform .svg files, as well as in the DOT language.
3
+ RailRoady generates Rails 3/4 model (ActiveRecord, Mongoid, Datamapper) and controller UML diagrams as cross-platform .svg files, as well as in the DOT language.
4
4
 
5
5
  Code is based on the original "railroad" gem, patched and maintained over the years. Lineage can be traced via GitHub.
6
6
 
7
- I (Preston Lee) am not trying to hijack Peter Hoeg or Javier's project, but rather create a dedicated, lean gem that can be used without major issue on Rails v3 projects. Rails v2 is not supported.
7
+ I (Preston Lee) am not trying to hijack Peter Hoeg or Javier's project, but rather create a dedicated, lean gem that can be used without major issue on Rails v3 and v4 projects. Rails v2 is not supported.
8
8
 
9
9
  = System Requirements
10
10
 
@@ -15,13 +15,19 @@ You MUST have the the following utilities available at the command line.
15
15
 
16
16
  = Mac users
17
17
 
18
- MacPorts users can install in via `sudo port install graphviz`.
19
- Brew user can install via `brew install graphviz`.
18
+ MacPorts users can install in via
19
+
20
+ sudo port install graphviz
21
+
22
+ Brew user can install via
23
+
24
+ brew install graphviz
20
25
 
21
26
  = Ubuntu users
22
27
 
23
- Ubuntu users can install in via `sudo apt-get install graphviz`.
28
+ Ubuntu users can install in via
24
29
 
30
+ sudo apt-get install graphviz
25
31
  = Usage
26
32
 
27
33
  The easiest (and recommend) usage is to include railroady as a development dependency with your Rails 3 Gemfile, like so...
@@ -34,7 +40,7 @@ The easiest (and recommend) usage is to include railroady as a development depen
34
40
 
35
41
  rake diagram:all
36
42
 
37
- This should generate four doc/*.svg files that can be opened in (most) web browsers as well as dedicate document viewers supporting the Scalable Vector Graphics format.
43
+ This should generate four doc/*.svg files that can be opened in (most) web browsers as well as dedicated document viewers supporting the Scalable Vector Graphics format.
38
44
 
39
45
  = Alternate Usage
40
46
 
@@ -57,6 +63,7 @@ Common options:
57
63
  -o, --output FILE Write diagram to file FILE
58
64
  -v, --verbose Enable verbose output
59
65
  (produce messages to STDOUT)
66
+ --alphabetize Sort methods alphabetically
60
67
 
61
68
  Models diagram options:
62
69
  -a, --all Include all models
@@ -134,7 +141,7 @@ also use Omnigraffle (on Mac OS X).
134
141
 
135
142
  = Rake Tasks
136
143
 
137
- As of Preston Lee's Rails 3 modifications, including RailRoady as a project development dependency will automatically add a set of rake tasks to your project. Sweet! (Run `rake -T` to check them out.)
144
+ As of Preston Lee's Rails 3/4 modifications, including RailRoady as a project development dependency will automatically add a set of rake tasks to your project. Sweet! (Run `rake -T` to check them out.)
138
145
 
139
146
 
140
147
  = Requirements
@@ -143,9 +150,11 @@ RailRoady has been tested with the following Ruby and Rails versions
143
150
 
144
151
  == Ruby
145
152
  * 1.9.2+
153
+ * 2.0.0+
146
154
 
147
155
  == Rails
148
156
  * 3.0.3+
157
+ * 4.0.0+
149
158
 
150
159
  There are no additional requirements (nevertheless, all your Rails application
151
160
  requirements must be installed).
data/bin/railroady CHANGED
@@ -36,11 +36,12 @@ old_dir = Dir.pwd
36
36
 
37
37
  Dir.chdir(options.root) if options.root != ''
38
38
 
39
- if options.command == 'models'
39
+ case options.command
40
+ when 'models'
40
41
  diagram = ModelsDiagram.new options
41
- elsif options.command == 'controllers'
42
+ when 'controllers'
42
43
  diagram = ControllersDiagram.new options
43
- elsif options.command == 'aasm'
44
+ when 'aasm'
44
45
  diagram = AasmDiagram.new(options)
45
46
  else
46
47
  STDERR.print "#{APP_HUMAN_NAME} v#{APP_VERSION}\n" +
@@ -13,6 +13,7 @@ class AppDiagram
13
13
  @options = options
14
14
  @graph = DiagramGraph.new
15
15
  @graph.show_label = @options.label
16
+ @graph.alphabetize = @options.alphabetize
16
17
  end
17
18
 
18
19
 
@@ -10,7 +10,8 @@ class DiagramGraph
10
10
 
11
11
  def initialize
12
12
  @diagram_type = ''
13
- @show_label = false
13
+ @show_label = false
14
+ @alphabetize = false
14
15
  @nodes = []
15
16
  @edges = []
16
17
  end
@@ -31,6 +32,10 @@ class DiagramGraph
31
32
  @show_label = value
32
33
  end
33
34
 
35
+ def alphabetize= (flag)
36
+ @alphabetize = flag
37
+ end
38
+
34
39
 
35
40
  # Generate DOT graph
36
41
  def to_dot
@@ -78,7 +83,7 @@ class DiagramGraph
78
83
  case type
79
84
  when 'model'
80
85
  options = 'shape=Mrecord, label="{' + name + '|'
81
- options += attributes.join('\l')
86
+ options += attributes.sort_by { |s| @alphabetize ? s : nil }.join('\l')
82
87
  options += '\l}"'
83
88
  when 'model-brief'
84
89
  options = ''
@@ -88,9 +93,9 @@ class DiagramGraph
88
93
  options = 'shape=box'
89
94
  when 'controller'
90
95
  options = 'shape=Mrecord, label="{' + name + '|'
91
- public_methods = attributes[:public].join('\l')
92
- protected_methods = attributes[:protected].join('\l')
93
- private_methods = attributes[:private].join('\l')
96
+ public_methods = attributes[:public].sort_by { |s| @alphabetize ? s : nil }.join('\l')
97
+ protected_methods = attributes[:protected].sort_by { |s| @alphabetize ? s : nil }.join('\l')
98
+ private_methods = attributes[:private].sort_by { |s| @alphabetize ? s : nil }.join('\l')
94
99
  options += public_methods + '\l|' + protected_methods + '\l|' +
95
100
  private_methods + '\l'
96
101
  options += '}"'
@@ -32,6 +32,7 @@ class OptionsStruct < OpenStruct
32
32
  :hide_through => false,
33
33
  :transitive => false,
34
34
  :verbose => false,
35
+ :alphabetize => false,
35
36
  :xmi => false,
36
37
  :command => '',
37
38
  :config_file => 'config/environment',
@@ -75,6 +76,9 @@ class OptionsStruct < OpenStruct
75
76
  " (for UML tools)") do |x|
76
77
  self.xmi = x
77
78
  end
79
+ opts.on("--alphabetize", "Sort methods alphabetically") do |a|
80
+ self.alphabetize = a
81
+ end
78
82
  opts.separator ""
79
83
  opts.separator "Models diagram options:"
80
84
  opts.on("-a", "--all", "Include all models",
@@ -1,3 +1,3 @@
1
1
  module RailRoady
2
- VERSION = '1.1.1'
2
+ VERSION = '1.1.2'
3
3
  end
data/railroady.gemspec CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
8
8
  spec.version = RailRoady::VERSION
9
9
  spec.authors = ["Preston Lee", "Tobias Crawley", "Peter Hoeg", "Javier Smaldone"]
10
10
  spec.description = "Ruby on Rails 3/4 model and controller UML class diagram generator. Originally based on the 'railroad' plugin and contributions of many others. (`sudo port install graphviz` before use!)"
11
- spec.email = ["conmotto@gmail.com", "tcrawley@gmail.com", "peter@hoeg.com", "p.hoeg@northwind.sg", "javier@smaldone.com.ar"]
11
+ spec.email = ["preston.lee@prestonlee.com", "tcrawley@gmail.com", "peter@hoeg.com", "p.hoeg@northwind.sg", "javier@smaldone.com.ar"]
12
12
  spec.summary = "Ruby on Rails 3/4 model and controller UML class diagram generator."
13
13
  spec.homepage = "http://github.com/preston/railroady"
14
14
  spec.license = "GPLv2"
data/tasks/railroady.rake CHANGED
@@ -1,11 +1,11 @@
1
1
  # This suite of tasks generate graphical diagrams via code analysis.
2
2
  # A UNIX-like environment is required as well as:
3
- #
3
+ #
4
4
  # * The railroady gem. (http://github.com/preston/railroady)
5
5
  # * The graphviz package which includes the `dot` and `neato` command-line utilities. MacPorts users can install in via `sudo port install graphviz`.
6
6
  # * The `sed` command-line utility, which should already be available on all sane UNIX systems.
7
7
  #
8
- # Author: Preston Lee, http://railroady.prestonlee.com
8
+ # Author: Preston Lee, http://railroady.prestonlee.com
9
9
 
10
10
  # wrap helper methods so they don't conflict w/ methods on Object
11
11
 
@@ -26,7 +26,7 @@ module RailRoady
26
26
  def self.sed
27
27
  regex = 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g'
28
28
  case RbConfig::CONFIG['host_os']
29
- when /linux|cygwin/
29
+ when /linux|cygwin|mingw/
30
30
  return "sed -r '#{regex}'"
31
31
  when /mac|darwin|bsd/
32
32
  return "sed -E '#{regex}'"
@@ -40,11 +40,18 @@ end
40
40
 
41
41
  namespace :diagram do
42
42
 
43
- @MODELS_ALL = RailRoady::RakeHelpers.full_path("models_complete.#{RailRoady::RakeHelpers.format}").freeze
44
- @MODELS_BRIEF = RailRoady::RakeHelpers.full_path("models_brief.#{RailRoady::RakeHelpers.format}").freeze
45
- @CONTROLLERS_ALL = RailRoady::RakeHelpers.full_path("controllers_complete.#{RailRoady::RakeHelpers.format}").freeze
46
- @CONTROLLERS_BRIEF = RailRoady::RakeHelpers.full_path("controllers_brief.#{RailRoady::RakeHelpers.format}").freeze
47
- @SED = RailRoady::RakeHelpers.sed
43
+ @MODELS_ALL = RailRoady::RakeHelpers.full_path("models_complete.#{RailRoady::RakeHelpers.format}").freeze
44
+ @MODELS_BRIEF = RailRoady::RakeHelpers.full_path("models_brief.#{RailRoady::RakeHelpers.format}").freeze
45
+ @CONTROLLERS_ALL = RailRoady::RakeHelpers.full_path("controllers_complete.#{RailRoady::RakeHelpers.format}").freeze
46
+ @CONTROLLERS_BRIEF = RailRoady::RakeHelpers.full_path("controllers_brief.#{RailRoady::RakeHelpers.format}").freeze
47
+ @SED = RailRoady::RakeHelpers.sed
48
+
49
+ namespace :setup do
50
+ desc 'Perform any setup needed for the gem'
51
+ task :create_new_doc_folder_if_needed do
52
+ Dir.mkdir('doc') unless File.exists?('doc')
53
+ end
54
+ end
48
55
 
49
56
  namespace :models do
50
57
 
@@ -83,6 +90,9 @@ namespace :diagram do
83
90
  end
84
91
 
85
92
  desc 'Generates all class diagrams.'
86
- task :all => ['diagram:models:complete', 'diagram:models:brief', 'diagram:controllers:complete', 'diagram:controllers:brief']
87
-
93
+ task all: ['diagram:setup:create_new_doc_folder_if_needed',
94
+ 'diagram:models:complete',
95
+ 'diagram:models:brief',
96
+ 'diagram:controllers:complete',
97
+ 'diagram:controllers:brief']
88
98
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: railroady
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Preston Lee
@@ -11,83 +11,83 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2013-07-31 00:00:00.000000000 Z
14
+ date: 2014-08-08 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler
18
18
  requirement: !ruby/object:Gem::Requirement
19
19
  requirements:
20
- - - '>='
20
+ - - ">="
21
21
  - !ruby/object:Gem::Version
22
22
  version: '0'
23
23
  type: :development
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - '>='
27
+ - - ">="
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: rake
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
- - - '>='
34
+ - - ">="
35
35
  - !ruby/object:Gem::Version
36
36
  version: '0'
37
37
  type: :development
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - '>='
41
+ - - ">="
42
42
  - !ruby/object:Gem::Version
43
43
  version: '0'
44
44
  - !ruby/object:Gem::Dependency
45
45
  name: minitest
46
46
  requirement: !ruby/object:Gem::Requirement
47
47
  requirements:
48
- - - '>='
48
+ - - ">="
49
49
  - !ruby/object:Gem::Version
50
50
  version: '0'
51
51
  type: :development
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
- - - '>='
55
+ - - ">="
56
56
  - !ruby/object:Gem::Version
57
57
  version: '0'
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: minitest-spec-context
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
- - - '>='
62
+ - - ">="
63
63
  - !ruby/object:Gem::Version
64
64
  version: '0'
65
65
  type: :development
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
- - - '>='
69
+ - - ">="
70
70
  - !ruby/object:Gem::Version
71
71
  version: '0'
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: activesupport
74
74
  requirement: !ruby/object:Gem::Requirement
75
75
  requirements:
76
- - - '>='
76
+ - - ">="
77
77
  - !ruby/object:Gem::Version
78
78
  version: '0'
79
79
  type: :development
80
80
  prerelease: false
81
81
  version_requirements: !ruby/object:Gem::Requirement
82
82
  requirements:
83
- - - '>='
83
+ - - ">="
84
84
  - !ruby/object:Gem::Version
85
85
  version: '0'
86
86
  description: Ruby on Rails 3/4 model and controller UML class diagram generator. Originally
87
87
  based on the 'railroad' plugin and contributions of many others. (`sudo port install
88
88
  graphviz` before use!)
89
89
  email:
90
- - conmotto@gmail.com
90
+ - preston.lee@prestonlee.com
91
91
  - tcrawley@gmail.com
92
92
  - peter@hoeg.com
93
93
  - p.hoeg@northwind.sg
@@ -97,7 +97,7 @@ executables:
97
97
  extensions: []
98
98
  extra_rdoc_files: []
99
99
  files:
100
- - .gitignore
100
+ - ".gitignore"
101
101
  - AUTHORS.rdoc
102
102
  - CHANGELOG.rdoc
103
103
  - Gemfile
@@ -141,17 +141,17 @@ require_paths:
141
141
  - lib
142
142
  required_ruby_version: !ruby/object:Gem::Requirement
143
143
  requirements:
144
- - - '>='
144
+ - - ">="
145
145
  - !ruby/object:Gem::Version
146
146
  version: '0'
147
147
  required_rubygems_version: !ruby/object:Gem::Requirement
148
148
  requirements:
149
- - - '>='
149
+ - - ">="
150
150
  - !ruby/object:Gem::Version
151
151
  version: '0'
152
152
  requirements: []
153
153
  rubyforge_project:
154
- rubygems_version: 2.0.3
154
+ rubygems_version: 2.2.2
155
155
  signing_key:
156
156
  specification_version: 4
157
157
  summary: Ruby on Rails 3/4 model and controller UML class diagram generator.