maven_pom 0.0.1 → 0.0.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.
data/README.md CHANGED
@@ -24,15 +24,17 @@ Or install it yourself as:
24
24
 
25
25
  ## Usage
26
26
 
27
- pom = MavenPom.from("path/to/some/pom.xml")
27
+ ```ruby
28
+ pom = MavenPom.from("path/to/some/pom.xml")
28
29
 
29
- pom.packaging #=> "pom"
30
- pom.parent #=> "com.example:parent"
31
- pom.key #=> "com.example:this"
32
- pom.dependencies #=> ["com.example:foo", "com.example:bar"]
30
+ pom.packaging #=> "pom"
31
+ pom.parent #=> "com.example:parent"
32
+ pom.key #=> "com.example:this"
33
+ pom.dependencies #=> ["com.example:foo", "com.example:bar"]
33
34
 
34
- # topological sort - should roughly match e.g. reactor order
35
- MavenPom.sort [pom1, pom2, pom3]
35
+ # topological sort - should roughly match e.g. reactor order
36
+ MavenPom.sort [pom1, pom2, pom3]
37
+ ```
36
38
 
37
39
 
38
40
  ## Contributing
data/lib/maven_pom.rb CHANGED
@@ -6,6 +6,10 @@ require "maven_pom/pom"
6
6
  require "maven_pom/sorter"
7
7
 
8
8
  module MavenPom
9
+ def self.all
10
+ @loaded ||= {}
11
+ end
12
+
9
13
  def self.from(path)
10
14
  Pom.new File.read(path), path
11
15
  end
data/lib/maven_pom/pom.rb CHANGED
@@ -5,6 +5,8 @@ module MavenPom
5
5
  def initialize(str, uri)
6
6
  @pom = Nokogiri.XML(str)
7
7
  @uri = uri
8
+
9
+ MavenPom.all[key] = self
8
10
  end
9
11
 
10
12
  def as_json(opts = nil)
@@ -20,6 +22,10 @@ module MavenPom
20
22
  as_json.to_json(*args)
21
23
  end
22
24
 
25
+ def inspect
26
+ "#<MavenPom::Pom:0x%x key=%s name=%s parent=%s>" % [object_id << 1, key.inspect, name.inspect, parent.inspect]
27
+ end
28
+
23
29
  def packaging
24
30
  @pom.css("project > packaging").text
25
31
  end
@@ -56,6 +62,10 @@ module MavenPom
56
62
  gid
57
63
  end
58
64
 
65
+ def parent_pom
66
+ MavenPom.all[parent]
67
+ end
68
+
59
69
  def artifact_id
60
70
  @pom.css("project > artifactId").text
61
71
  end
@@ -70,6 +80,16 @@ module MavenPom
70
80
  end
71
81
  end
72
82
 
83
+ def properties
84
+ props = {}
85
+
86
+ @pom.css("project > properties > *").each do |element|
87
+ props[element.name] = element.inner_text
88
+ end
89
+
90
+ props
91
+ end
92
+
73
93
  def dependency_name_from(node)
74
94
  gid = node.css("groupId").text
75
95
  aid = node.css("artifactId").text
@@ -1,3 +1,3 @@
1
1
  module MavenPom
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -6,10 +6,9 @@
6
6
 
7
7
  <parent>
8
8
  <groupId>com.example</groupId>
9
- <artifactId>parent</artifactId>
9
+ <artifactId>example</artifactId>
10
10
  </parent>
11
11
 
12
- <groupId>com.example</groupId>
13
12
  <artifactId>child</artifactId>
14
13
  <version>1.0.0</version>
15
14
  <packaging>pom</packaging>
@@ -9,6 +9,10 @@
9
9
  <version>1.0.0</version>
10
10
  <packaging>pom</packaging>
11
11
 
12
+ <properties>
13
+ <version.jdk>1.7</version.jdk>
14
+ </properties>
15
+
12
16
  <dependencies>
13
17
 
14
18
  <dependency>
data/spec/pom_spec.rb CHANGED
@@ -19,7 +19,8 @@ module MavenPom
19
19
  end
20
20
 
21
21
  it "knows the module's parent" do
22
- child_module.parent.should == "com.example:parent"
22
+ child_module.parent.should == pom_module.key
23
+ child_module.parent_pom.should == pom_module
23
24
  end
24
25
 
25
26
  it "knows the module's build plugins" do
@@ -43,5 +44,9 @@ module MavenPom
43
44
  it "has a key" do
44
45
  war_module.key.should == "com.example:example-war"
45
46
  end
47
+
48
+ it "can get the pom's properties" do
49
+ pom_module.properties.should == {'version.jdk' => '1.7'}
50
+ end
46
51
  end
47
52
  end
metadata CHANGED
@@ -1,79 +1,71 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: maven_pom
3
- version: !ruby/object:Gem::Version
4
- hash: 29
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 1
10
- version: 0.0.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Jari Bakken
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-01-06 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- type: :runtime
22
- requirement: &id001 !ruby/object:Gem::Requirement
12
+ date: 2012-09-03 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: nokogiri
16
+ requirement: !ruby/object:Gem::Requirement
23
17
  none: false
24
- requirements:
18
+ requirements:
25
19
  - - ~>
26
- - !ruby/object:Gem::Version
27
- hash: 3
28
- segments:
29
- - 1
30
- - 5
31
- - 0
20
+ - !ruby/object:Gem::Version
32
21
  version: 1.5.0
33
- prerelease: false
34
- name: nokogiri
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
22
  type: :runtime
38
- requirement: &id002 !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
39
25
  none: false
40
- requirements:
26
+ requirements:
41
27
  - - ~>
42
- - !ruby/object:Gem::Version
43
- hash: 15
44
- segments:
45
- - 0
46
- - 4
47
- - 0
48
- version: 0.4.0
49
- prerelease: false
28
+ - !ruby/object:Gem::Version
29
+ version: 1.5.0
30
+ - !ruby/object:Gem::Dependency
50
31
  name: rgl
51
- version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
53
- type: :development
54
- requirement: &id003 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
55
33
  none: false
56
- requirements:
34
+ requirements:
57
35
  - - ~>
58
- - !ruby/object:Gem::Version
59
- hash: 3
60
- segments:
61
- - 2
62
- - 0
63
- version: "2.0"
36
+ - !ruby/object:Gem::Version
37
+ version: 0.4.0
38
+ type: :runtime
64
39
  prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 0.4.0
46
+ - !ruby/object:Gem::Dependency
65
47
  name: rspec
66
- version_requirements: *id003
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '2.0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '2.0'
67
62
  description: Tiny library to work with Maven's pom.xml files from Ruby.
68
- email:
63
+ email:
69
64
  - jari.bakken@finn.no
70
65
  executables: []
71
-
72
66
  extensions: []
73
-
74
67
  extra_rdoc_files: []
75
-
76
- files:
68
+ files:
77
69
  - .gitignore
78
70
  - .travis.yml
79
71
  - Gemfile
@@ -94,41 +86,33 @@ files:
94
86
  - spec/spec_helper.rb
95
87
  homepage: http://github.com/finn-no/maven_pom
96
88
  licenses: []
97
-
98
89
  post_install_message:
99
90
  rdoc_options: []
100
-
101
- require_paths:
91
+ require_paths:
102
92
  - lib
103
- required_ruby_version: !ruby/object:Gem::Requirement
93
+ required_ruby_version: !ruby/object:Gem::Requirement
104
94
  none: false
105
- requirements:
106
- - - ">="
107
- - !ruby/object:Gem::Version
108
- hash: 3
109
- segments:
110
- - 0
111
- version: "0"
112
- required_rubygems_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ required_rubygems_version: !ruby/object:Gem::Requirement
113
100
  none: false
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- hash: 3
118
- segments:
119
- - 0
120
- version: "0"
101
+ requirements:
102
+ - - ! '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
121
105
  requirements: []
122
-
123
106
  rubyforge_project:
124
- rubygems_version: 1.8.10
107
+ rubygems_version: 1.8.24
125
108
  signing_key:
126
109
  specification_version: 3
127
110
  summary: Tiny library to work with Maven's pom.xml files from Ruby.
128
- test_files:
111
+ test_files:
129
112
  - spec/fixtures/child.xml
130
113
  - spec/fixtures/pom.xml
131
114
  - spec/fixtures/war.xml
132
115
  - spec/pom_spec.rb
133
116
  - spec/sorter_spec.rb
134
117
  - spec/spec_helper.rb
118
+ has_rdoc: