Class: Buildr::IntellijIdea::IdeaModule

Inherits:
IdeaFile
  • Object
show all
Defined in:
lib/buildr/intellij_idea/idea_module.rb

Constant Summary collapse

DEFAULT_TYPE =
"JAVA_MODULE"
DEFAULT_LOCAL_REPOSITORY_ENV_OVERRIDE =
"MAVEN_REPOSITORY"

Constants inherited from IdeaFile

Buildr::IntellijIdea::IdeaFile::DEFAULT_SUFFIX

Instance Attribute Summary collapse

Attributes inherited from IdeaFile

#buildr_project, #id, #suffix, #template

Instance Method Summary collapse

Methods inherited from IdeaFile

#add_component, #filename, #write

Constructor Details

#initializeIdeaModule

Returns a new instance of IdeaModule.



12
13
14
15
# File 'lib/buildr/intellij_idea/idea_module.rb', line 12

def initialize
  @type = DEFAULT_TYPE
  @local_repository_env_override = DEFAULT_LOCAL_REPOSITORY_ENV_OVERRIDE
end

Instance Attribute Details

#facetsObject (readonly)

Returns the value of attribute facets.



10
11
12
# File 'lib/buildr/intellij_idea/idea_module.rb', line 10

def facets
  @facets
end

#groupObject

Returns the value of attribute group.



9
10
11
# File 'lib/buildr/intellij_idea/idea_module.rb', line 9

def group
  @group
end

#local_repository_env_overrideObject

Returns the value of attribute local_repository_env_override.



8
9
10
# File 'lib/buildr/intellij_idea/idea_module.rb', line 8

def local_repository_env_override
  @local_repository_env_override
end

#typeObject

Returns the value of attribute type.



7
8
9
# File 'lib/buildr/intellij_idea/idea_module.rb', line 7

def type
  @type
end

Instance Method Details

#add_facet(name, type) ⇒ Object



85
86
87
88
89
90
91
# File 'lib/buildr/intellij_idea/idea_module.rb', line 85

def add_facet(name, type)
  target = StringIO.new
  Builder::XmlMarkup.new(:target => target, :indent => 2).facet(:name => name, :type => type) do |xml|
    yield xml if block_given?
  end
  self.facets << REXML::Document.new(target.string).root
end

#base_directoryObject



81
82
83
# File 'lib/buildr/intellij_idea/idea_module.rb', line 81

def base_directory
  buildr_project.path_to
end

#buildr_project=(buildr_project) ⇒ Object



17
18
19
20
21
22
# File 'lib/buildr/intellij_idea/idea_module.rb', line 17

def buildr_project=(buildr_project)
  @id = nil
  @facets = []
  @skip_content = false
  @buildr_project = buildr_project
end

#excluded_directoriesObject



42
43
44
45
46
47
48
49
50
# File 'lib/buildr/intellij_idea/idea_module.rb', line 42

def excluded_directories
  @excluded_directories ||= [
      buildr_project.resources.target,
      buildr_project.test.resources.target,
      buildr_project.path_to(:target, :main),
      buildr_project.path_to(:target, :test),
      buildr_project.path_to(:reports)
  ].flatten.compact
end

#extensionObject



24
25
26
# File 'lib/buildr/intellij_idea/idea_module.rb', line 24

def extension
  "iml"
end

#main_output_dirObject



52
53
54
# File 'lib/buildr/intellij_idea/idea_module.rb', line 52

def main_output_dir
  buildr_project.compile.target || buildr_project.path_to(:target, :main, 'idea')
end

#main_source_directoriesObject



28
29
30
31
32
33
# File 'lib/buildr/intellij_idea/idea_module.rb', line 28

def main_source_directories
  @main_source_directories ||= [
      buildr_project.compile.sources,
      buildr_project.resources.sources
  ].flatten.compact
end

#resourcesObject



60
61
62
# File 'lib/buildr/intellij_idea/idea_module.rb', line 60

def resources
  [buildr_project.test.resources.target, buildr_project.resources.target].compact
end

#skip_content!Object



97
98
99
# File 'lib/buildr/intellij_idea/idea_module.rb', line 97

def skip_content!
  @skip_content = true
end

#skip_content?Boolean

Returns:

  • (Boolean)


93
94
95
# File 'lib/buildr/intellij_idea/idea_module.rb', line 93

def skip_content?
  !!@skip_content
end

#test_dependenciesObject



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/buildr/intellij_idea/idea_module.rb', line 64

def test_dependencies
  main_dependencies_paths = buildr_project.compile.dependencies.map(&:to_s)
  target_dir = buildr_project.compile.target.to_s
  buildr_project.test.compile.dependencies.select{|d| d.to_s != target_dir}.collect do |d|
    dependency_path = d.to_s
    export = main_dependencies_paths.include?(dependency_path)
    source_path = nil
    if d.respond_to?(:to_spec_hash)
      source_spec = d.to_spec_hash.merge(:classifier => 'sources')
      source_path = Buildr.artifact(source_spec).to_s
      source_path = nil unless File.exist?(source_path)
    end
    [dependency_path, export, source_path]
  end

end

#test_output_dirObject



56
57
58
# File 'lib/buildr/intellij_idea/idea_module.rb', line 56

def test_output_dir
  buildr_project.test.compile.target || buildr_project.path_to(:target, :test, 'idea')
end

#test_source_directoriesObject



35
36
37
38
39
40
# File 'lib/buildr/intellij_idea/idea_module.rb', line 35

def test_source_directories
  @test_source_directories ||= [
      buildr_project.test.compile.sources,
      buildr_project.test.resources.sources
  ].flatten.compact
end