buildr-iidea 0.0.9 → 0.0.10

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.
@@ -1,105 +1,105 @@
1
- module Buildr
2
- module IntellijIdea
3
- class IdeaProject < IdeaFile
4
- attr_accessor :vcs
5
- attr_accessor :extra_modules
6
- attr_writer :jdk_version
7
-
8
- def initialize(buildr_project)
9
- @buildr_project = buildr_project
10
- @vcs = detect_vcs
11
- @extra_modules = []
12
- end
13
-
14
- def jdk_version
15
- @jdk_version ||= buildr_project.compile.options.source || "1.6"
16
- end
17
-
18
- protected
19
-
20
- def extension
21
- "ipr"
22
- end
23
-
24
- def detect_vcs
25
- if File.directory?(buildr_project._('.svn'))
26
- "svn"
27
- elsif File.directory?(buildr_project._('.git'))
28
- "Git"
29
- end
30
- end
31
-
32
- def base_document
33
- target = StringIO.new
34
- Builder::XmlMarkup.new(:target => target).project(:version => "4", :relativePaths => "false")
35
- REXML::Document.new(target.string)
36
- end
37
-
38
- def default_components
39
- [
40
- lambda { modules_component },
41
- vcs_component
42
- ]
43
- end
44
-
45
- def initial_components
46
- [
47
- lambda { project_root_manager_component },
48
- lambda { project_details_component }
49
- ]
50
- end
51
-
52
- def project_root_manager_component
53
- attribs = {"version" => "2",
54
- "assert-keyword" => "true",
55
- "jdk-15" => "true",
56
- "project-jdk-name" => self.jdk_version,
57
- "project-jdk-type" => "JavaSDK",
58
- "languageLevel" => "JDK_#{self.jdk_version.gsub('.','_')}" }
59
- create_component("ProjectRootManager",attribs) do |xml|
60
- xml.output("url" => "file://$PROJECT_DIR$/out")
61
- end
62
- end
63
-
64
- def project_details_component
65
- create_component("ProjectDetails") do |xml|
66
- xml.option("name" => "projectName", "value" => self.name )
67
- end
68
- end
69
-
70
- def modules_component
71
- create_component("ProjectModuleManager") do |xml|
72
- xml.modules do
73
- buildr_project.projects.select { |subp| subp.iml? }.each do |subproject|
74
- module_path = subproject.base_dir.gsub(/^#{buildr_project.base_dir}\//, '')
75
- path = "#{module_path}/#{subproject.iml.name}.iml"
76
- attribs = { :fileurl => "file://$PROJECT_DIR$/#{path}", :filepath => "$PROJECT_DIR$/#{path}" }
77
- if subproject.iml.group == true
78
- attribs[:group] = subproject.parent.name.gsub(':', '/')
79
- elsif !subproject.iml.group.nil?
80
- attribs[:group] = subproject.group.to_s
81
- end
82
- xml.module attribs
83
- end
84
- self.extra_modules.each do |iml_file|
85
- xml.module :fileurl => "file://$PROJECT_DIR$/#{iml_file}",
86
- :filepath => "$PROJECT_DIR$/#{iml_file}"
87
- end
88
- if buildr_project.iml?
89
- xml.module :fileurl => "file://$PROJECT_DIR$/#{buildr_project.iml.name}.iml",
90
- :filepath => "$PROJECT_DIR$/#{buildr_project.iml.name}.iml"
91
- end
92
- end
93
- end
94
- end
95
-
96
- def vcs_component
97
- if vcs
98
- create_component("VcsDirectoryMappings") do |xml|
99
- xml.mapping :directory => "", :vcs => vcs
100
- end
101
- end
102
- end
103
- end
104
- end
105
- end
1
+ module Buildr
2
+ module IntellijIdea
3
+ class IdeaProject < IdeaFile
4
+ attr_accessor :vcs
5
+ attr_accessor :extra_modules
6
+ attr_writer :jdk_version
7
+
8
+ def initialize(buildr_project)
9
+ @buildr_project = buildr_project
10
+ @vcs = detect_vcs
11
+ @extra_modules = []
12
+ end
13
+
14
+ def jdk_version
15
+ @jdk_version ||= buildr_project.compile.options.source || "1.6"
16
+ end
17
+
18
+ protected
19
+
20
+ def extension
21
+ "ipr"
22
+ end
23
+
24
+ def detect_vcs
25
+ if File.directory?(buildr_project._('.svn'))
26
+ "svn"
27
+ elsif File.directory?(buildr_project._('.git'))
28
+ "Git"
29
+ end
30
+ end
31
+
32
+ def base_document
33
+ target = StringIO.new
34
+ Builder::XmlMarkup.new(:target => target).project(:version => "4", :relativePaths => "false")
35
+ REXML::Document.new(target.string)
36
+ end
37
+
38
+ def default_components
39
+ [
40
+ lambda { modules_component },
41
+ vcs_component
42
+ ]
43
+ end
44
+
45
+ def initial_components
46
+ [
47
+ lambda { project_root_manager_component },
48
+ lambda { project_details_component }
49
+ ]
50
+ end
51
+
52
+ def project_root_manager_component
53
+ attribs = {"version" => "2",
54
+ "assert-keyword" => "true",
55
+ "jdk-15" => "true",
56
+ "project-jdk-name" => self.jdk_version,
57
+ "project-jdk-type" => "JavaSDK",
58
+ "languageLevel" => "JDK_#{self.jdk_version.gsub('.','_')}" }
59
+ create_component("ProjectRootManager",attribs) do |xml|
60
+ xml.output("url" => "file://$PROJECT_DIR$/out")
61
+ end
62
+ end
63
+
64
+ def project_details_component
65
+ create_component("ProjectDetails") do |xml|
66
+ xml.option("name" => "projectName", "value" => self.name )
67
+ end
68
+ end
69
+
70
+ def modules_component
71
+ create_component("ProjectModuleManager") do |xml|
72
+ xml.modules do
73
+ buildr_project.projects.select { |subp| subp.iml? }.each do |subproject|
74
+ module_path = subproject.base_dir.gsub(/^#{buildr_project.base_dir}\//, '')
75
+ path = "#{module_path}/#{subproject.iml.name}.iml"
76
+ attribs = { :fileurl => "file://$PROJECT_DIR$/#{path}", :filepath => "$PROJECT_DIR$/#{path}" }
77
+ if subproject.iml.group == true
78
+ attribs[:group] = subproject.parent.name.gsub(':', '/')
79
+ elsif !subproject.iml.group.nil?
80
+ attribs[:group] = subproject.group.to_s
81
+ end
82
+ xml.module attribs
83
+ end
84
+ self.extra_modules.each do |iml_file|
85
+ xml.module :fileurl => "file://$PROJECT_DIR$/#{iml_file}",
86
+ :filepath => "$PROJECT_DIR$/#{iml_file}"
87
+ end
88
+ if buildr_project.iml?
89
+ xml.module :fileurl => "file://$PROJECT_DIR$/#{buildr_project.iml.name}.iml",
90
+ :filepath => "$PROJECT_DIR$/#{buildr_project.iml.name}.iml"
91
+ end
92
+ end
93
+ end
94
+ end
95
+
96
+ def vcs_component
97
+ if vcs
98
+ create_component("VcsDirectoryMappings") do |xml|
99
+ xml.mapping :directory => "", :vcs => vcs
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end
105
+ end
@@ -1,108 +1,108 @@
1
- require 'stringio'
2
-
3
- module Buildr
4
- module IntellijIdea
5
- module ProjectExtension
6
-
7
- include Extension
8
-
9
- first_time do
10
- desc "Generate Intellij IDEA artifacts for all projects"
11
- Project.local_task "iidea:generate" => "artifacts"
12
-
13
- desc "Delete the generated Intellij IDEA artifacts"
14
- Project.local_task "iidea:clean"
15
-
16
- # Remove the old idea tasks if they exist. Either could depending on the names
17
- # selected for the IDEA project files by iidea extension and thus have been removed.
18
- task_list = Rake.application.instance_variable_get('@tasks')
19
- task_list.delete("idea")
20
- task_list.delete("idea7x")
21
- task_list.delete("idea7x:clean")
22
- end
23
-
24
- before_define do |project|
25
- project.recursive_task("iidea:generate")
26
- project.recursive_task("iidea:clean")
27
- end
28
-
29
- after_define do |project|
30
- iidea = project.task("iidea:generate")
31
-
32
- files = [
33
- (project.iml if project.iml?),
34
- (project.ipr if project.ipr?)
35
- ].compact
36
-
37
- files.each do |ideafile|
38
- module_dir = File.dirname(ideafile.filename)
39
- # Need to clear the actions else the extension included as part of buildr will run
40
- file(ideafile.filename).clear_actions
41
- directory(module_dir)
42
- iidea.enhance [ file(ideafile.filename) ]
43
- file(ideafile.filename => [Buildr.application.buildfile, module_dir]) do |task|
44
- info "Writing #{task.name}"
45
- t = Tempfile.open("buildr-iidea")
46
- temp_filename = t.path
47
- t.close!
48
- File.open(temp_filename, "w") do |f|
49
- ideafile.write f
50
- end
51
- mv temp_filename, ideafile.filename
52
- end
53
- end
54
-
55
- project.task("iidea:clean") do
56
- files.each do |f|
57
- info "Removing #{f.filename}" if File.exist?(f.filename)
58
- rm_rf f.filename
59
- end
60
- end
61
- end
62
-
63
- def ipr
64
- if ipr?
65
- @ipr ||= IdeaProject.new(self)
66
- else
67
- raise "Only the root project has an IPR"
68
- end
69
- end
70
-
71
- def ipr?
72
- !@no_ipr && self.parent.nil?
73
- end
74
-
75
- def iml
76
- if iml?
77
- unless @iml
78
- inheritable_iml_source = self.parent
79
- while inheritable_iml_source && !inheritable_iml_source.iml?
80
- inheritable_iml_source = inheritable_iml_source.parent;
81
- end
82
- @iml = inheritable_iml_source ? inheritable_iml_source.iml.clone : IdeaModule.new
83
- @iml.buildr_project = self
84
- end
85
- return @iml
86
- else
87
- raise "IML generation is disabled for #{self.name}"
88
- end
89
- end
90
-
91
- def no_ipr
92
- @no_ipr = true
93
- end
94
-
95
- def no_iml
96
- @has_iml = false
97
- end
98
-
99
- def iml?
100
- @has_iml = @has_iml.nil? ? true : @has_iml
101
- end
102
- end
103
- end
104
- end
105
-
106
- class Buildr::Project
107
- include Buildr::IntellijIdea::ProjectExtension
108
- end
1
+ require 'stringio'
2
+
3
+ module Buildr
4
+ module IntellijIdea
5
+ module ProjectExtension
6
+
7
+ include Extension
8
+
9
+ first_time do
10
+ desc "Generate Intellij IDEA artifacts for all projects"
11
+ Project.local_task "iidea:generate" => "artifacts"
12
+
13
+ desc "Delete the generated Intellij IDEA artifacts"
14
+ Project.local_task "iidea:clean"
15
+
16
+ # Remove the old idea tasks if they exist. Either could depending on the names
17
+ # selected for the IDEA project files by iidea extension and thus have been removed.
18
+ task_list = Rake.application.instance_variable_get('@tasks')
19
+ task_list.delete("idea")
20
+ task_list.delete("idea7x")
21
+ task_list.delete("idea7x:clean")
22
+ end
23
+
24
+ before_define do |project|
25
+ project.recursive_task("iidea:generate")
26
+ project.recursive_task("iidea:clean")
27
+ end
28
+
29
+ after_define do |project|
30
+ iidea = project.task("iidea:generate")
31
+
32
+ files = [
33
+ (project.iml if project.iml?),
34
+ (project.ipr if project.ipr?)
35
+ ].compact
36
+
37
+ files.each do |ideafile|
38
+ module_dir = File.dirname(ideafile.filename)
39
+ # Need to clear the actions else the extension included as part of buildr will run
40
+ file(ideafile.filename).clear_actions
41
+ directory(module_dir)
42
+ iidea.enhance [ file(ideafile.filename) ]
43
+ file(ideafile.filename => [Buildr.application.buildfile, module_dir]) do |task|
44
+ info "Writing #{task.name}"
45
+ t = Tempfile.open("buildr-iidea")
46
+ temp_filename = t.path
47
+ t.close!
48
+ File.open(temp_filename, "w") do |f|
49
+ ideafile.write f
50
+ end
51
+ mv temp_filename, ideafile.filename
52
+ end
53
+ end
54
+
55
+ project.task("iidea:clean") do
56
+ files.each do |f|
57
+ info "Removing #{f.filename}" if File.exist?(f.filename)
58
+ rm_rf f.filename
59
+ end
60
+ end
61
+ end
62
+
63
+ def ipr
64
+ if ipr?
65
+ @ipr ||= IdeaProject.new(self)
66
+ else
67
+ raise "Only the root project has an IPR"
68
+ end
69
+ end
70
+
71
+ def ipr?
72
+ !@no_ipr && self.parent.nil?
73
+ end
74
+
75
+ def iml
76
+ if iml?
77
+ unless @iml
78
+ inheritable_iml_source = self.parent
79
+ while inheritable_iml_source && !inheritable_iml_source.iml?
80
+ inheritable_iml_source = inheritable_iml_source.parent;
81
+ end
82
+ @iml = inheritable_iml_source ? inheritable_iml_source.iml.clone : IdeaModule.new
83
+ @iml.buildr_project = self
84
+ end
85
+ return @iml
86
+ else
87
+ raise "IML generation is disabled for #{self.name}"
88
+ end
89
+ end
90
+
91
+ def no_ipr
92
+ @no_ipr = true
93
+ end
94
+
95
+ def no_iml
96
+ @has_iml = false
97
+ end
98
+
99
+ def iml?
100
+ @has_iml = @has_iml.nil? ? true : @has_iml
101
+ end
102
+ end
103
+ end
104
+ end
105
+
106
+ class Buildr::Project
107
+ include Buildr::IntellijIdea::ProjectExtension
108
+ end
@@ -1,11 +1,11 @@
1
- module Buildr
2
- module IntellijIdea
3
- class Version
4
- MAJOR = "0"
5
- MINOR = "0"
6
- MICRO = "9"
7
-
8
- STRING = "#{MAJOR}.#{MINOR}.#{MICRO}"
9
- end
10
- end
1
+ module Buildr
2
+ module IntellijIdea
3
+ class Version
4
+ MAJOR = "0"
5
+ MINOR = "0"
6
+ MICRO = "10"
7
+
8
+ STRING = "#{MAJOR}.#{MINOR}.#{MICRO}"
9
+ end
10
+ end
11
11
  end
@@ -1,6 +1,6 @@
1
- require 'buildr'
2
- require 'buildr/intellij_idea/version'
3
- require 'buildr/intellij_idea/idea_file'
4
- require 'buildr/intellij_idea/idea_module'
5
- require 'buildr/intellij_idea/idea_project'
6
- require 'buildr/intellij_idea/project_extension'
1
+ require 'buildr'
2
+ require 'buildr/intellij_idea/version'
3
+ require 'buildr/intellij_idea/idea_file'
4
+ require 'buildr/intellij_idea/idea_module'
5
+ require 'buildr/intellij_idea/idea_project'
6
+ require 'buildr/intellij_idea/project_extension'