maven_pom 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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: