ritsu 0.7.0 → 0.7.1

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.
Files changed (89) hide show
  1. data/README.md +95 -95
  2. data/bin/define_cpp_string +54 -54
  3. data/bin/ritsu +31 -31
  4. data/lib/ritsu.rb +16 -16
  5. data/lib/ritsu/block.rb +258 -258
  6. data/lib/ritsu/ext/cuda.rb +5 -5
  7. data/lib/ritsu/ext/cuda/external_library.rb +15 -15
  8. data/lib/ritsu/ext/cuda/project.rb +31 -31
  9. data/lib/ritsu/ext/cuda/src_files/cu_file.rb +46 -46
  10. data/lib/ritsu/ext/cuda/src_files/target_cmake_lists.rb +110 -110
  11. data/lib/ritsu/ext/cuda/target.rb +16 -16
  12. data/lib/ritsu/ext/cuda/targets/library.rb +16 -16
  13. data/lib/ritsu/ext/fake_install.rb +2 -2
  14. data/lib/ritsu/ext/fake_install/project.rb +16 -16
  15. data/lib/ritsu/ext/fake_install/src_files/project_cmake_lists.rb +45 -45
  16. data/lib/ritsu/ext/glsl.rb +1 -1
  17. data/lib/ritsu/ext/glsl/src_files/frag_file.rb +70 -70
  18. data/lib/ritsu/ext/glsl/src_files/vert_file.rb +70 -70
  19. data/lib/ritsu/ext/qt.rb +4 -4
  20. data/lib/ritsu/ext/qt/project.rb +47 -47
  21. data/lib/ritsu/ext/qt/src_files/header_file.rb +60 -60
  22. data/lib/ritsu/ext/qt/src_files/target_cmake_lists.rb +106 -106
  23. data/lib/ritsu/ext/qt/src_files/ui_file.rb +46 -46
  24. data/lib/ritsu/ext/test_case.rb +19 -19
  25. data/lib/ritsu/external_library.rb +46 -46
  26. data/lib/ritsu/project.rb +93 -93
  27. data/lib/ritsu/project_generator.rb +33 -33
  28. data/lib/ritsu/project_generators/default_generator.rb +72 -72
  29. data/lib/ritsu/project_generators/default_generator_files/Thorfile.erb +8 -8
  30. data/lib/ritsu/project_generators/default_generator_files/meta/project.rb.erb +10 -10
  31. data/lib/ritsu/src_file.rb +79 -79
  32. data/lib/ritsu/src_files.rb +12 -12
  33. data/lib/ritsu/src_files/cpp_file.rb +43 -43
  34. data/lib/ritsu/src_files/executable_cmake_lists.rb +39 -39
  35. data/lib/ritsu/src_files/header_file.rb +60 -60
  36. data/lib/ritsu/src_files/project_cmake_lists.rb +133 -133
  37. data/lib/ritsu/src_files/project_config_header_file.rb +14 -14
  38. data/lib/ritsu/src_files/project_config_header_template_file.rb +44 -44
  39. data/lib/ritsu/src_files/shared_library_cmake_lists.rb +39 -39
  40. data/lib/ritsu/src_files/static_library_cmake_lists.rb +39 -39
  41. data/lib/ritsu/src_files/target_cmake_lists.rb +189 -189
  42. data/lib/ritsu/src_files/templated_src_file.rb +47 -47
  43. data/lib/ritsu/src_files/unit.rb +32 -32
  44. data/lib/ritsu/target.rb +154 -154
  45. data/lib/ritsu/targets.rb +3 -3
  46. data/lib/ritsu/targets/executable.rb +44 -44
  47. data/lib/ritsu/targets/library.rb +29 -29
  48. data/lib/ritsu/targets/shared_library.rb +38 -38
  49. data/lib/ritsu/targets/static_library.rb +32 -32
  50. data/lib/ritsu/template.rb +68 -68
  51. data/lib/ritsu/template_policies.rb +132 -132
  52. data/lib/ritsu/test_helpers.rb +123 -123
  53. data/lib/ritsu/thors/default_thor.rb +1 -1
  54. data/lib/ritsu/utility.rb +7 -7
  55. data/lib/ritsu/utility/accessors.rb +29 -29
  56. data/lib/ritsu/utility/check_upon_add_set.rb +34 -34
  57. data/lib/ritsu/utility/file_robot.rb +128 -128
  58. data/lib/ritsu/utility/files.rb +12 -12
  59. data/lib/ritsu/utility/instance_dependencies.rb +112 -112
  60. data/lib/ritsu/utility/instance_set.rb +28 -28
  61. data/lib/ritsu/utility/platform.rb +20 -20
  62. data/lib/ritsu/utility/simple_io.rb +64 -64
  63. data/lib/ritsu/utility/single_instance.rb +33 -33
  64. data/lib/ritsu/utility/strings.rb +40 -40
  65. data/test/ritsu/block_test.rb +196 -196
  66. data/test/ritsu/ext/cuda/src_files/cuda_static_library_cmake_lists_test.rb +63 -63
  67. data/test/ritsu/external_library_test.rb +41 -41
  68. data/test/ritsu/project_generators/default_generator_test.rb +34 -34
  69. data/test/ritsu/project_test.rb +127 -127
  70. data/test/ritsu/src_file_test.rb +69 -69
  71. data/test/ritsu/src_files/cpp_file_test.rb +42 -42
  72. data/test/ritsu/src_files/executable_cmake_lists_test.rb +92 -92
  73. data/test/ritsu/src_files/header_file_test.rb +57 -57
  74. data/test/ritsu/src_files/project_cmake_lists_test.rb +159 -159
  75. data/test/ritsu/src_files/shared_library_cmake_lists_test.rb +54 -54
  76. data/test/ritsu/src_files/static_library_cmake_lists_test.rb +54 -54
  77. data/test/ritsu/src_files/target_cmake_lists_test.rb +15 -15
  78. data/test/ritsu/target_test.rb +105 -105
  79. data/test/ritsu/targets/executable_test.rb +10 -10
  80. data/test/ritsu/targets/shared_library_test.rb +10 -10
  81. data/test/ritsu/targets/static_library_test.rb +10 -10
  82. data/test/ritsu/utility/accessors_test.rb +14 -14
  83. data/test/ritsu/utility/check_upon_add_set_test.rb +31 -31
  84. data/test/ritsu/utility/file_robot_test.rb +175 -175
  85. data/test/ritsu/utility/strings_test.rb +28 -28
  86. data/test/test_helpers.rb +3 -3
  87. metadata +72 -124
  88. data/Thorfile +0 -104
  89. data/VERSION +0 -1
@@ -1,9 +1,9 @@
1
- # enconding: utf-8
2
-
3
- require 'rubygems'
4
- require 'thor'
5
- require 'ritsu'
6
- require File.expand_path(File.dirname(__FILE__) + "/meta/project.rb")
7
-
8
- class <%= @project_name.camelize %> < Ritsu::Thors::DefaultThor
1
+ # enconding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'thor'
5
+ require 'ritsu'
6
+ require File.expand_path(File.dirname(__FILE__) + "/meta/project.rb")
7
+
8
+ class <%= @project_name.camelize %> < Ritsu::Thors::DefaultThor
9
9
  end
@@ -1,10 +1,10 @@
1
- require 'rubygems'
2
- require 'ritsu'
3
-
4
- Ritsu::Project.create('<%= @project_name %>') do |p|
5
-
6
- ##################
7
- # YOUR CODE HERE #
8
- ##################
9
-
10
- end
1
+ require 'rubygems'
2
+ require 'ritsu'
3
+
4
+ Ritsu::Project.create('<%= @project_name %>') do |p|
5
+
6
+ ##################
7
+ # YOUR CODE HERE #
8
+ ##################
9
+
10
+ end
@@ -1,80 +1,80 @@
1
- require 'rubygems'
2
- require 'active_support'
3
- require File.expand_path(File.dirname(__FILE__) + '/utility/instance_set')
4
- require File.expand_path(File.dirname(__FILE__) + '/utility/file_robot')
5
-
6
- module Ritsu
7
- class SrcFile
8
- include Ritsu::Utility::InstanceSet
9
- include Ritsu::Utility
10
-
11
- attr_reader :src_path
12
- attr_reader :owner
13
-
14
- def self.is_valid_src_path?(p)
15
- p =~ /^[A-Za-z0-9_.][A-Za-z0-9_.\-\/]*$/
16
- end
17
-
18
- def initialize(src_path, owner)
19
- if !(self.class.is_valid_src_path?(src_path))
20
- raise ArgumentError.new("'#{src_path}' is not a valid source path")
21
- end
22
-
23
- @src_path = src_path
24
- @owner = owner
25
-
26
- SrcFile.instances << self
27
- @owner.src_files << self
28
- end
29
-
30
- def base_name
31
- File.basename(src_path)
32
- end
33
-
34
- def self.validate_instance(instance)
35
- if instances.select { |x| x.src_path == instance.src_path }.length > 0
36
- raise ArgumentError.new("source file with path '#{instance.src_path}' already exists")
37
- end
38
- end
39
-
40
- def project
41
- owner.project
42
- end
43
-
44
- def abs_path
45
- File.expand_path(project.project_dir + "/src/" + src_path)
46
- end
47
-
48
- def create
49
- FileRobot.create_file(abs_path, "\n")
50
- end
51
-
52
- def update
53
- if !File.exists?(abs_path)
54
- create
55
- else
56
- update_content
57
- end
58
- end
59
-
60
- def update_content
61
- end
62
-
63
- def remove
64
- FileRobot.remove_file(abs_path)
65
- end
66
-
67
- def include_in_source_files?
68
- return true
69
- end
70
-
71
- def self.find_by_src_path(src_path)
72
- instances.each do |instance|
73
- if instance.src_path == src_path
74
- return instance
75
- end
76
- end
77
- nil
78
- end
79
- end
1
+ require 'rubygems'
2
+ require 'active_support'
3
+ require File.expand_path(File.dirname(__FILE__) + '/utility/instance_set')
4
+ require File.expand_path(File.dirname(__FILE__) + '/utility/file_robot')
5
+
6
+ module Ritsu
7
+ class SrcFile
8
+ include Ritsu::Utility::InstanceSet
9
+ include Ritsu::Utility
10
+
11
+ attr_reader :src_path
12
+ attr_reader :owner
13
+
14
+ def self.is_valid_src_path?(p)
15
+ p =~ /^[A-Za-z0-9_.][A-Za-z0-9_.\-\/]*$/
16
+ end
17
+
18
+ def initialize(src_path, owner)
19
+ if !(self.class.is_valid_src_path?(src_path))
20
+ raise ArgumentError.new("'#{src_path}' is not a valid source path")
21
+ end
22
+
23
+ @src_path = src_path
24
+ @owner = owner
25
+
26
+ SrcFile.instances << self
27
+ @owner.src_files << self
28
+ end
29
+
30
+ def base_name
31
+ File.basename(src_path)
32
+ end
33
+
34
+ def self.validate_instance(instance)
35
+ if instances.select { |x| x.src_path == instance.src_path }.length > 0
36
+ raise ArgumentError.new("source file with path '#{instance.src_path}' already exists")
37
+ end
38
+ end
39
+
40
+ def project
41
+ owner.project
42
+ end
43
+
44
+ def abs_path
45
+ File.expand_path(project.project_dir + "/src/" + src_path)
46
+ end
47
+
48
+ def create
49
+ FileRobot.create_file(abs_path, "\n")
50
+ end
51
+
52
+ def update
53
+ if !File.exists?(abs_path)
54
+ create
55
+ else
56
+ update_content
57
+ end
58
+ end
59
+
60
+ def update_content
61
+ end
62
+
63
+ def remove
64
+ FileRobot.remove_file(abs_path)
65
+ end
66
+
67
+ def include_in_source_files?
68
+ return true
69
+ end
70
+
71
+ def self.find_by_src_path(src_path)
72
+ instances.each do |instance|
73
+ if instance.src_path == src_path
74
+ return instance
75
+ end
76
+ end
77
+ nil
78
+ end
79
+ end
80
80
  end
@@ -1,13 +1,13 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/src_files/project_cmake_lists')
2
-
3
- require File.expand_path(File.dirname(__FILE__) + '/src_files/templated_src_file')
4
-
5
- require File.expand_path(File.dirname(__FILE__) + '/src_files/cpp_file')
6
- require File.expand_path(File.dirname(__FILE__) + '/src_files/header_file')
7
- require File.expand_path(File.dirname(__FILE__) + '/src_files/target_cmake_lists')
8
- require File.expand_path(File.dirname(__FILE__) + '/src_files/executable_cmake_lists')
9
- require File.expand_path(File.dirname(__FILE__) + '/src_files/shared_library_cmake_lists')
10
- require File.expand_path(File.dirname(__FILE__) + '/src_files/static_library_cmake_lists')
11
- require File.expand_path(File.dirname(__FILE__) + '/src_files/project_config_header_file')
12
- require File.expand_path(File.dirname(__FILE__) + '/src_files/project_config_header_template_file')
1
+ require File.expand_path(File.dirname(__FILE__) + '/src_files/project_cmake_lists')
2
+
3
+ require File.expand_path(File.dirname(__FILE__) + '/src_files/templated_src_file')
4
+
5
+ require File.expand_path(File.dirname(__FILE__) + '/src_files/cpp_file')
6
+ require File.expand_path(File.dirname(__FILE__) + '/src_files/header_file')
7
+ require File.expand_path(File.dirname(__FILE__) + '/src_files/target_cmake_lists')
8
+ require File.expand_path(File.dirname(__FILE__) + '/src_files/executable_cmake_lists')
9
+ require File.expand_path(File.dirname(__FILE__) + '/src_files/shared_library_cmake_lists')
10
+ require File.expand_path(File.dirname(__FILE__) + '/src_files/static_library_cmake_lists')
11
+ require File.expand_path(File.dirname(__FILE__) + '/src_files/project_config_header_file')
12
+ require File.expand_path(File.dirname(__FILE__) + '/src_files/project_config_header_template_file')
13
13
  require File.expand_path(File.dirname(__FILE__) + "/src_files/unit")
@@ -1,44 +1,44 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../src_file')
2
- require File.expand_path(File.dirname(__FILE__) + '/../project')
3
- require File.expand_path(File.dirname(__FILE__) + '/../utility/instance_set')
4
-
5
- module Ritsu
6
- module SrcFiles
7
- class CppFile < Ritsu::SrcFile
8
- def initialize(src_path, owner)
9
- super(src_path, owner)
10
- end
11
-
12
- def header_file?
13
- false
14
- end
15
-
16
- def cpp_file?
17
- true
18
- end
19
- end
20
-
21
- module AddCppFile
22
- def add_cpp_file(path, options={})
23
- src_path = compute_src_path(path, options)
24
- CppFile.new(src_path, self)
25
- end
26
-
27
- def add_cpp_files(*paths)
28
- paths.each do |path|
29
- add_cpp_file(path)
30
- end
31
- end
32
- end
33
- end
34
- end
35
-
36
- module Ritsu
37
- class Target
38
- include Ritsu::SrcFiles::AddCppFile
39
- end
40
-
41
- class Project
42
- include Ritsu::SrcFiles::AddCppFile
43
- end
1
+ require File.expand_path(File.dirname(__FILE__) + '/../src_file')
2
+ require File.expand_path(File.dirname(__FILE__) + '/../project')
3
+ require File.expand_path(File.dirname(__FILE__) + '/../utility/instance_set')
4
+
5
+ module Ritsu
6
+ module SrcFiles
7
+ class CppFile < Ritsu::SrcFile
8
+ def initialize(src_path, owner)
9
+ super(src_path, owner)
10
+ end
11
+
12
+ def header_file?
13
+ false
14
+ end
15
+
16
+ def cpp_file?
17
+ true
18
+ end
19
+ end
20
+
21
+ module AddCppFile
22
+ def add_cpp_file(path, options={})
23
+ src_path = compute_src_path(path, options)
24
+ CppFile.new(src_path, self)
25
+ end
26
+
27
+ def add_cpp_files(*paths)
28
+ paths.each do |path|
29
+ add_cpp_file(path)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+
36
+ module Ritsu
37
+ class Target
38
+ include Ritsu::SrcFiles::AddCppFile
39
+ end
40
+
41
+ class Project
42
+ include Ritsu::SrcFiles::AddCppFile
43
+ end
44
44
  end
@@ -1,40 +1,40 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../src_files/target_cmake_lists')
2
-
3
- module Ritsu
4
- module SrcFiles
5
- class ExecutableCmakeLists < TargetCmakeLists
6
- class ExecutableTemplate < Ritsu::Template
7
- attr_accessor :target
8
- attr_accessor :parent
9
-
10
- def initialize(target, parent)
11
- super("ExecutableCmakeLists -- #{target.name} -- Executable")
12
- @target = target
13
- @parent = parent
14
- end
15
-
16
- def update_block(block, options={})
17
- block.contents.clear
18
- block.contents << "ADD_EXECUTABLE(#{@target.name} ${#{@parent.source_files_template.src_files_var_name}})"
19
- end
20
- end
21
-
22
- class Template < Ritsu::SrcFiles::TargetCmakeLists::Template
23
- def initialize(target, options={})
24
- super(target, "ExecutableCmakeLists -- #{target.name}")
25
-
26
- position_to_insert = contents.index(dependencies_template)
27
- contents.insert(position_to_insert, ExecutableTemplate.new(target, self))
28
- contents.insert(position_to_insert+1, "")
29
- end
30
- end
31
-
32
- def initialize(target)
33
- super(target)
34
- self.template = Template.new(target,
35
- :block_start_prefix => '##<<',
36
- :block_end_prefix => '##>>')
37
- end
38
- end
39
- end
1
+ require File.expand_path(File.dirname(__FILE__) + '/../src_files/target_cmake_lists')
2
+
3
+ module Ritsu
4
+ module SrcFiles
5
+ class ExecutableCmakeLists < TargetCmakeLists
6
+ class ExecutableTemplate < Ritsu::Template
7
+ attr_accessor :target
8
+ attr_accessor :parent
9
+
10
+ def initialize(target, parent)
11
+ super("ExecutableCmakeLists -- #{target.name} -- Executable")
12
+ @target = target
13
+ @parent = parent
14
+ end
15
+
16
+ def update_block(block, options={})
17
+ block.contents.clear
18
+ block.contents << "ADD_EXECUTABLE(#{@target.name} ${#{@parent.source_files_template.src_files_var_name}})"
19
+ end
20
+ end
21
+
22
+ class Template < Ritsu::SrcFiles::TargetCmakeLists::Template
23
+ def initialize(target, options={})
24
+ super(target, "ExecutableCmakeLists -- #{target.name}")
25
+
26
+ position_to_insert = contents.index(dependencies_template)
27
+ contents.insert(position_to_insert, ExecutableTemplate.new(target, self))
28
+ contents.insert(position_to_insert+1, "")
29
+ end
30
+ end
31
+
32
+ def initialize(target)
33
+ super(target)
34
+ self.template = Template.new(target,
35
+ :block_start_prefix => '##<<',
36
+ :block_end_prefix => '##>>')
37
+ end
38
+ end
39
+ end
40
40
  end
@@ -1,61 +1,61 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../src_file')
2
- require File.expand_path(File.dirname(__FILE__) + '/../project')
3
- require File.expand_path(File.dirname(__FILE__) + '/../utility/instance_set')
4
- require File.expand_path(File.dirname(__FILE__) + '/../utility/file_robot')
5
-
6
- module Ritsu
7
- module SrcFiles
8
- class HeaderFile < Ritsu::SrcFile
9
- def initialize(src_path, owner)
10
- super(src_path, owner)
11
- end
12
-
13
- def create
14
- Ritsu::Utility::FileRobot.create_file(abs_path,
15
- "#ifndef #{include_guard}\n" +
16
- "#define #{include_guard}\n" +
17
- "\n" +
18
- "////////////////////\n" +
19
- "// YOUR CODE HERE //\n" +
20
- "////////////////////\n" +
21
- "\n" +
22
- "#endif\n")
23
- end
24
-
25
- def include_guard
26
- '__' + project.name.underscore.upcase + '_' + src_path.gsub(/[.\/]+/,'_').upcase + '__'
27
- end
28
-
29
- def header_file?
30
- true
31
- end
32
-
33
- def cpp_file?
34
- false
35
- end
36
- end
37
-
38
- module AddHeaderFile
39
- def add_header_file(path, options={})
40
- src_path = compute_src_path(path, options)
41
- HeaderFile.new(src_path, self)
42
- end
43
-
44
- def add_header_files(*paths)
45
- paths.each do |path|
46
- add_header_file(path)
47
- end
48
- end
49
- end
50
- end
51
- end
52
-
53
- module Ritsu
54
- class Target
55
- include Ritsu::SrcFiles::AddHeaderFile
56
- end
57
-
58
- class Project
59
- include Ritsu::SrcFiles::AddHeaderFile
60
- end
1
+ require File.expand_path(File.dirname(__FILE__) + '/../src_file')
2
+ require File.expand_path(File.dirname(__FILE__) + '/../project')
3
+ require File.expand_path(File.dirname(__FILE__) + '/../utility/instance_set')
4
+ require File.expand_path(File.dirname(__FILE__) + '/../utility/file_robot')
5
+
6
+ module Ritsu
7
+ module SrcFiles
8
+ class HeaderFile < Ritsu::SrcFile
9
+ def initialize(src_path, owner)
10
+ super(src_path, owner)
11
+ end
12
+
13
+ def create
14
+ Ritsu::Utility::FileRobot.create_file(abs_path,
15
+ "#ifndef #{include_guard}\n" +
16
+ "#define #{include_guard}\n" +
17
+ "\n" +
18
+ "////////////////////\n" +
19
+ "// YOUR CODE HERE //\n" +
20
+ "////////////////////\n" +
21
+ "\n" +
22
+ "#endif\n")
23
+ end
24
+
25
+ def include_guard
26
+ '__' + project.name.underscore.upcase + '_' + src_path.gsub(/[.\/]+/,'_').upcase + '__'
27
+ end
28
+
29
+ def header_file?
30
+ true
31
+ end
32
+
33
+ def cpp_file?
34
+ false
35
+ end
36
+ end
37
+
38
+ module AddHeaderFile
39
+ def add_header_file(path, options={})
40
+ src_path = compute_src_path(path, options)
41
+ HeaderFile.new(src_path, self)
42
+ end
43
+
44
+ def add_header_files(*paths)
45
+ paths.each do |path|
46
+ add_header_file(path)
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+
53
+ module Ritsu
54
+ class Target
55
+ include Ritsu::SrcFiles::AddHeaderFile
56
+ end
57
+
58
+ class Project
59
+ include Ritsu::SrcFiles::AddHeaderFile
60
+ end
61
61
  end