mvn_plugin_config 1.0.0

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.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MjJhMGVmYmM3NTU2YjYyNzNkYWZkNmYzMmQ2NDQ5ODdjYTQzM2JkZQ==
5
+ data.tar.gz: !binary |-
6
+ MTRlMzI0NzA0ZjVjNGY3OGFlNWVjODA0MTRhNjM4ZWNlMDNlMTI0Yg==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ MDE2ZTcwNzcwZWJlMmMzNDBkMmRhMWYzNmE4NTAwNjYzMzY5NTljYTI5YWU5
10
+ ZjNlOGY3M2ZhZGQyYjI5OGQ0ODg4ODFjM2FlZDI2OWYyNWYyNTBlMDBkOGNk
11
+ NGI1OWE0OTkyNjRkYzE5OGE5YTJlMzdkMWQzNmQ2MTU4YmExNDY=
12
+ data.tar.gz: !binary |-
13
+ NzRkNGQyYTk1MDc1NDJkMWE2NjRiYmIyZDJiZjNiOGZiYzZlZmY3YTZmODg2
14
+ NzIwNWVjZTlhMzFjYjc2MWVlY2FlMTZkOWFhMDA4OWE5NmM4YjVlMjVjNWJl
15
+ N2VjYjNkOWFjZjI0MjY5MzBjY2VlM2E0ZDE0NTFjOTk2NTcyMzg=
@@ -0,0 +1,4 @@
1
+ .idea
2
+ *.gem
3
+ pkg
4
+ .sass-cache
@@ -0,0 +1 @@
1
+ mvn_plugin_config
@@ -0,0 +1 @@
1
+ 1.9.3
data/CHANGES ADDED
@@ -0,0 +1,5 @@
1
+ = mvn_plugin_config Changelog
2
+
3
+ == Version 1.0.0
4
+
5
+ * Initial release.
data/Gemfile ADDED
@@ -0,0 +1,24 @@
1
+ source "https://rubygems.org"
2
+
3
+ group :default do
4
+ gem "sinatra"
5
+
6
+ gem "nokogiri"
7
+ gem "haml"
8
+ gem "sass"
9
+
10
+ gem "zip"
11
+ gem "launchy"
12
+ gem "vegas"
13
+ end
14
+
15
+ group :development do
16
+ gem "gemspec_deps_gen"
17
+ gem "gemcutter"
18
+ end
19
+
20
+ group :test do
21
+ gem "mocha", :require => false
22
+ gem "rspec"
23
+ end
24
+
@@ -0,0 +1,54 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ addressable (2.3.5)
5
+ diff-lcs (1.2.4)
6
+ file_utils (1.0.7)
7
+ gemcutter (0.7.1)
8
+ gemspec_deps_gen (1.1.2)
9
+ bundler
10
+ file_utils
11
+ haml (4.0.3)
12
+ tilt
13
+ launchy (2.3.0)
14
+ addressable (~> 2.3)
15
+ metaclass (0.0.1)
16
+ mocha (0.14.0)
17
+ metaclass (~> 0.0.1)
18
+ nokogiri (1.5.10)
19
+ rack (1.5.2)
20
+ rack-protection (1.5.0)
21
+ rack
22
+ rspec (2.14.1)
23
+ rspec-core (~> 2.14.0)
24
+ rspec-expectations (~> 2.14.0)
25
+ rspec-mocks (~> 2.14.0)
26
+ rspec-core (2.14.5)
27
+ rspec-expectations (2.14.2)
28
+ diff-lcs (>= 1.1.3, < 2.0)
29
+ rspec-mocks (2.14.3)
30
+ sass (3.2.10)
31
+ sinatra (1.4.3)
32
+ rack (~> 1.4)
33
+ rack-protection (~> 1.4)
34
+ tilt (~> 1.3, >= 1.3.4)
35
+ tilt (1.4.1)
36
+ vegas (0.1.11)
37
+ rack (>= 1.0.0)
38
+ zip (2.0.2)
39
+
40
+ PLATFORMS
41
+ ruby
42
+
43
+ DEPENDENCIES
44
+ gemcutter
45
+ gemspec_deps_gen
46
+ haml
47
+ launchy
48
+ mocha
49
+ nokogiri
50
+ rspec
51
+ sass
52
+ sinatra
53
+ vegas
54
+ zip
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Alexander Shvets
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,40 @@
1
+ # MvnPluginConfig - Opens list of maven plugins in browser's window.
2
+
3
+ ## Installation
4
+
5
+ Install gem from command line:
6
+
7
+ ```bash
8
+ gem install mvn_plugin_config
9
+ ```
10
+
11
+ or add this line to to your Gemfile:
12
+
13
+ ```ruby
14
+ gem "mvn_plugin_config"
15
+ ```
16
+
17
+ and then execute:
18
+
19
+ ```bash
20
+ bundle
21
+ ```
22
+
23
+ ## Usage
24
+
25
+ Use it:
26
+
27
+ ```bash
28
+ mvn-plugin-config
29
+ ```
30
+
31
+ It will start sinatra application on port 5678 and load start page in the browser.
32
+
33
+
34
+ ## Contributing
35
+
36
+ 1. Fork it
37
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
38
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
39
+ 4. Push to the branch (`git push origin my-new-feature`)
40
+ 5. Create new Pull Request
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env rake
2
+
3
+ $LOAD_PATH.unshift File.expand_path("lib", File.dirname(__FILE__))
4
+
5
+ require "rspec/core/rake_task"
6
+ require "mvn_plugin_config/version"
7
+ require "gemspec_deps_gen/gemspec_deps_gen"
8
+
9
+ version = MvnPluginConfig::VERSION
10
+ project_name = File.basename(Dir.pwd)
11
+
12
+ task :gen do
13
+ generator = GemspecDepsGen.new
14
+
15
+ generator.generate_dependencies "spec", "#{project_name}.gemspec.erb", "#{project_name}.gemspec"
16
+ end
17
+
18
+ task :build => :gen do
19
+ system "gem build #{project_name}.gemspec"
20
+ end
21
+
22
+ task :install do
23
+ system "gem install #{project_name}-#{version}.gem"
24
+ end
25
+
26
+ task :uninstall do
27
+ system "gem uninstall #{project_name}"
28
+ end
29
+
30
+ task :release => :build do
31
+ system "gem push #{project_name}-#{version}.gem"
32
+ end
33
+
34
+ RSpec::Core::RakeTask.new do |task|
35
+ task.pattern = 'spec/**/*_spec.rb'
36
+ task.verbose = false
37
+ end
38
+
39
+ task :fix_debug do
40
+ system "mkdir -p $GEM_HOME/gems/debugger-ruby_core_source-1.2.3/lib"
41
+ system "cp -R ~/debugger-ruby_core_source/lib $GEM_HOME/gems/debugger-ruby_core_source-1.2.3"
42
+ end
43
+
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ $:.unshift(File::join(File::dirname(File::dirname(__FILE__)), "lib"))
5
+
6
+ require 'mvn_plugin_config'
7
+
8
+ trap('INT') { puts "Program was interrupted..."; exit }
9
+
10
+ require 'vegas'
11
+
12
+ Vegas::Runner.new(MvnPluginConfig::App, 'mvn_plugin_config')
13
+
@@ -0,0 +1,6 @@
1
+ @ECHO OFF
2
+ IF NOT "%~f0" == "~f0" GOTO :WinNT
3
+ @"ruby.exe" "C:/Ruby/ruby-1.9.1/bin/mvn-plugin-config" %1 %2 %3 %4 %5 %6 %7 %8 %9
4
+ GOTO :EOF
5
+ :WinNT
6
+ @"ruby.exe" "%~dpn0" %*
@@ -0,0 +1,20 @@
1
+ # To use with thin
2
+ # thin start -p PORT -R config.ru
3
+ require File.join(File.dirname(__FILE__), 'lib', 'mvn_plugin_config')
4
+
5
+ trap(:INT) { exit }
6
+
7
+ app = Rack::Builder.new {
8
+ use Rack::CommonLogger
9
+ run MvnPluginConfig::App
10
+ }.to_app
11
+
12
+ run app
13
+
14
+ #require 'vegas'
15
+ #
16
+ #Vegas::Runner.new(MvnPluginConfig::App, 'mvn_plugin_config')
17
+
18
+ #require 'launchy'
19
+ #
20
+ #Launchy.open("http://localhost:9292", :application => MvnPluginConfig::App)
@@ -0,0 +1,7 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+
4
+ require 'haml'
5
+ require 'sass'
6
+
7
+ require 'mvn_plugin_config/app'
@@ -0,0 +1,138 @@
1
+ require 'rubygems' unless RUBY_VERSION =~ /1.9.*/
2
+
3
+ require 'sinatra/base'
4
+ require 'haml'
5
+ require 'sass'
6
+ require 'zip/zip'
7
+ require 'nokogiri'
8
+
9
+ $:.unshift(File.expand_path(File.join(File.dirname(__FILE__))))
10
+
11
+ require 'partial'
12
+ require 'directory_scanner'
13
+ require 'plugin_info'
14
+ require 'mojo_info'
15
+
16
+ module MvnPluginConfig
17
+ class App < Sinatra::Base
18
+ MAVEN_REPOSITORY = "#{ENV['HOME']}/.m2/repository"
19
+
20
+ set :haml, {:format => :html5, :attr_wrapper => '"'}
21
+ set :views, "#{File.expand_path(File.dirname(__FILE__))}/../../views"
22
+ set :public_dir, "#{File.expand_path(File.dirname(__FILE__))}/../../public"
23
+
24
+ # get '/javascripts/*' do
25
+ # open("#{File.dirname(__FILE__)}/../public/javascripts/#{params[:splat]}")
26
+ # end
27
+
28
+ get '/stylesheet.css' do
29
+ headers 'Content-Type' => 'text/css; charset=utf-8'
30
+ sass :stylesheet
31
+ end
32
+
33
+ get '/' do
34
+ if File.exist? MAVEN_REPOSITORY
35
+ haml :index, :locals => {:plugins => collect_plugins_info}
36
+ else
37
+ haml :no_maven_repo
38
+ end
39
+ end
40
+
41
+ get '/*:*:*' do
42
+ plugin_file_content = plugin_file_content(params[:splat][0], params[:splat][1], params[:splat][2])
43
+
44
+ haml :description, :locals => {:mojos => collect_mojos_info(plugin_file_content)}
45
+ end
46
+
47
+ private
48
+
49
+ def jar_file_name group_id, artifact_id, version
50
+ "#{MAVEN_REPOSITORY}/#{group_id.gsub('.', '/')}/#{artifact_id}/#{version}/#{artifact_id}-#{version}.jar"
51
+ end
52
+
53
+ def plugin_file_content group_id, artifact_id, version
54
+ plugin_file_content = nil
55
+
56
+ jar_file_name = jar_file_name(group_id, artifact_id, version)
57
+
58
+ Zip::ZipInputStream.open(jar_file_name) do |zis|
59
+ done = false
60
+ while (not done) do
61
+ entry = zis.get_next_entry
62
+ if entry.name == "META-INF/maven/plugin.xml"
63
+ plugin_file_content = zis.read
64
+ done = true
65
+ end
66
+ end
67
+ end
68
+
69
+ plugin_file_content
70
+ end
71
+
72
+ def collect_plugins_info
73
+ plugins = []
74
+
75
+ scanner = DirectoryScanner.new
76
+
77
+ scanner.on_dir do |file, path|
78
+ if file =~ /-plugin$/
79
+ directories = scanner.directories_in_parent(path)
80
+
81
+ directories.each do |version|
82
+ group_id = path[MAVEN_REPOSITORY.length+1..path.length-file.length-2].gsub('/', '.')
83
+ artifact_id = file.gsub('/', '.')
84
+
85
+ jar_file_name = jar_file_name(group_id, artifact_id, version)
86
+
87
+ plugins << PluginInfo.new(group_id, artifact_id, version) if File.exist?(jar_file_name)
88
+ end
89
+ end
90
+ end
91
+
92
+ scanner.scan_subtree(MAVEN_REPOSITORY)
93
+
94
+ plugins
95
+ end
96
+
97
+ def collect_mojos_info content
98
+ mojos = []
99
+
100
+ doc = Nokogiri::XML(content)
101
+
102
+ doc.xpath('//mojos/mojo').each do |node|
103
+ goal = node.xpath('goal')
104
+ description = node.xpath('description')
105
+
106
+ parameters = collect_parameters(node.xpath('parameters'))
107
+ configuration = node.xpath('configuration')
108
+
109
+ mojos << MojoInfo.new(goal, description, parameters, configuration)
110
+ end
111
+
112
+ mojos
113
+ end
114
+
115
+ def collect_parameters(node)
116
+ parameters = []
117
+
118
+ node.children.each do |param_node|
119
+ if param_node.name == 'parameter'
120
+ parameter = {:name => param_node.xpath('name'), :type => param_node.xpath('type'),
121
+ :required => param_node.xpath('required'), :editable => param_node.xpath('editable'),
122
+ :description => param_node.xpath('description')}
123
+ parameters << parameter
124
+ end
125
+ end
126
+
127
+ parameters
128
+ end
129
+
130
+ helpers do
131
+ include Partial
132
+ include Rack::Utils
133
+
134
+ alias_method :h, :escape_html
135
+ end
136
+ end
137
+ end
138
+
@@ -0,0 +1,48 @@
1
+ class DirectoryScanner
2
+
3
+ def initialize
4
+ @fileAction = nil
5
+ @dirAction = nil
6
+ end
7
+
8
+ def on_file(&action)
9
+ @fileAction = action
10
+ end
11
+
12
+ def on_dir(&action)
13
+ @dirAction = action
14
+ end
15
+
16
+ def directories_in_parent(parentPath)
17
+ directories = []
18
+ Dir.open(parentPath) do |dir|
19
+ for file in dir
20
+ next if file == '.';
21
+ next if file == '..';
22
+ path = parentPath + File::Separator + file
23
+ if File.directory? path
24
+ directories << file
25
+ end
26
+ end
27
+ end
28
+
29
+ directories
30
+ end
31
+
32
+ def scan_subtree(parentPath)
33
+ Dir.open(parentPath) do |dir|
34
+ for file in dir
35
+ next if file == '.';
36
+ next if file == '..';
37
+ path = parentPath + File::Separator + file
38
+ if File.directory? path
39
+ @dirAction.call(file, path) unless @dirAction.nil?
40
+ scan_subtree(path)
41
+ else
42
+ @fileAction.call(file, path) unless @fileAction.nil?
43
+ end
44
+ end
45
+ end
46
+ end
47
+
48
+ end
@@ -0,0 +1,2 @@
1
+ class MojoInfo < Struct.new(:goal, :description, :parameters, :configuration)
2
+ end
@@ -0,0 +1,16 @@
1
+ module Partial
2
+ def partial(template, *args)
3
+ template_array = template.to_s.split('/')
4
+ template = template_array[0..-2].join('/') + "/_#{template_array[-1]}"
5
+ options = args.last.is_a?(Hash) ? args.pop : {}
6
+ options.merge!(:layout => false)
7
+ if collection = options.delete(:collection) then
8
+ collection.inject([]) do |buffer, member|
9
+ buffer << haml(:"#{template}", options.merge(:layout =>
10
+ false, :locals => {template_array[-1].to_sym => member}))
11
+ end.join("\n")
12
+ else
13
+ haml(:"#{template}", options)
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,7 @@
1
+ class PluginInfo < Struct.new(:group_id, :artifact_id, :version)
2
+
3
+ def full_name
4
+ "#{group_id}:#{artifact_id}:#{version}"
5
+ end
6
+
7
+ end
@@ -0,0 +1,3 @@
1
+ class MvnPluginConfig
2
+ VERSION = "1.0.0"
3
+ end
@@ -0,0 +1,3 @@
1
+ require 'lib/mvn_plugin_config/app'
2
+
3
+ Rack::Handler::Mongrel.run App.new, :Port => 4567
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require File.expand_path(File.dirname(__FILE__) + '/lib/mvn_plugin_config/version')
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "mvn_plugin_config"
7
+ spec.summary = %q{Opens list of maven plugins in browser's window.}
8
+ spec.description = %q{Opens list of maven plugins in browser's window with the ability to see configuration for each of plugins.}
9
+ spec.email = "alexander.shvets@gmail.com"
10
+ spec.authors = ["Alexander Shvets"]
11
+ spec.homepage = "http://github.com/shvets/mvn_plugin_config"
12
+
13
+ spec.files = `git ls-files`.split($\)
14
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
15
+ spec.bindir = "bin"
16
+ spec.executables = ['mvn-plugin-config']
17
+ spec.require_paths = ["lib"]
18
+ spec.version = MvnPluginConfig::VERSION
19
+ spec.license = "MIT"
20
+
21
+ <%= project_dependencies %>
22
+ end
23
+
24
+
@@ -0,0 +1,31 @@
1
+ %table#browse_mojos{:border => "0"}
2
+ - mojos.each do |mojo_info|
3
+ %tr
4
+ %td="Goal: #{mojo_info.goal}"
5
+ %tr
6
+ %td="Description: #{mojo_info.description}"
7
+ %tr
8
+ %td="Parameters:"
9
+ %tr
10
+ %td
11
+ %table{:border => "1"}
12
+ %tr
13
+ %td="Name"
14
+ %td="Type"
15
+ %td="Required"
16
+ %td="Editable"
17
+ %td="Description"
18
+
19
+ - mojo_info.parameters.each do |param|
20
+ %tr
21
+ %td=param[:name]
22
+ %td=param[:type]
23
+ %td=param[:required]
24
+ %td=param[:editable]
25
+ %td=param[:description]
26
+ %tr
27
+ %td="Configuration:"
28
+ %tr
29
+ %td
30
+ %pre=h mojo_info.configuration
31
+
@@ -0,0 +1,5 @@
1
+ %table#browse_plugins{:border => "0"}
2
+ - plugins.each do |plugin_info|
3
+ %tr
4
+ %td
5
+ %a{ :href => "/#{plugin_info.full_name}" }=plugin_info.full_name
@@ -0,0 +1,12 @@
1
+ !!!
2
+ %html
3
+ %head
4
+ %meta{:'http-equiv' => 'Content-Type', :content => 'text/html; charset=UTF-8'}
5
+ %title= "Maven Plugin Config"
6
+ %link{ :href =>"/stylesheet.css", :rel => "stylesheet", :type => "text/css", :media => "screen" }
7
+ %body
8
+ #container
9
+ %p#title=page.page_title if defined?(page.page_title)
10
+ %p
11
+
12
+ = yield
@@ -0,0 +1 @@
1
+ = "Maven repository does not exist: #{ENV['HOME']}/.m2/repository"
@@ -0,0 +1,62 @@
1
+ body
2
+ :background white
3
+ :text-align left
4
+ :font-family Monaco, Verdana
5
+ :font-size 14px
6
+ :color black
7
+ h1
8
+ :color #97bf0d
9
+ h2
10
+ :font-size 14px
11
+ :font-weight normal
12
+
13
+ #title
14
+ font-weight: bold
15
+
16
+ #channel
17
+ font-style: italic
18
+
19
+ td#name
20
+ :width 550px
21
+
22
+ #description
23
+ :width 900px
24
+
25
+ td#channel
26
+ :width 100px
27
+
28
+ tr#page_browser
29
+ :text-align center
30
+
31
+ #container
32
+ :text-align left
33
+ :margin 0 auto
34
+
35
+ #channel_items
36
+ :width 600px
37
+
38
+ #catalog_items
39
+ :width 1200px
40
+
41
+ #browse_items
42
+ :width 1200px
43
+
44
+ #items
45
+ :width 1000px
46
+
47
+ form
48
+ label
49
+ :display block
50
+ :color #fff
51
+ input
52
+ :width 450px
53
+ :padding 3px
54
+ :font-size 14px
55
+ textarea
56
+ :width 460px
57
+ :height 150px
58
+ :font-size 14px
59
+ :font-family Monaco, Verdana
60
+ :padding 3px
61
+ span
62
+ :color #fff
metadata ADDED
@@ -0,0 +1,197 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mvn_plugin_config
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Alexander Shvets
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-09-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: sinatra
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: nokogiri
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: haml
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: sass
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: zip
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: launchy
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: vegas
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: gemspec_deps_gen
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ! '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: gemcutter
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ! '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ description: Opens list of maven plugins in browser's window with the ability to see
140
+ configuration for each of plugins.
141
+ email: alexander.shvets@gmail.com
142
+ executables:
143
+ - mvn-plugin-config
144
+ extensions: []
145
+ extra_rdoc_files: []
146
+ files:
147
+ - .gitignore
148
+ - .ruby-gemset
149
+ - .ruby-version
150
+ - CHANGES
151
+ - Gemfile
152
+ - Gemfile.lock
153
+ - LICENSE
154
+ - README.md
155
+ - Rakefile
156
+ - bin/mvn-plugin-config
157
+ - bin/mvn-plugin-config.bat
158
+ - config.ru
159
+ - lib/mvn_plugin_config.rb
160
+ - lib/mvn_plugin_config/app.rb
161
+ - lib/mvn_plugin_config/directory_scanner.rb
162
+ - lib/mvn_plugin_config/mojo_info.rb
163
+ - lib/mvn_plugin_config/partial.rb
164
+ - lib/mvn_plugin_config/plugin_info.rb
165
+ - lib/mvn_plugin_config/version.rb
166
+ - lib/start.rb
167
+ - mvn_plugin_config.gemspec.erb
168
+ - views/description.haml
169
+ - views/index.haml
170
+ - views/layout.haml
171
+ - views/no_maven_repo.haml
172
+ - views/stylesheet.sass
173
+ homepage: http://github.com/shvets/mvn_plugin_config
174
+ licenses:
175
+ - MIT
176
+ metadata: {}
177
+ post_install_message:
178
+ rdoc_options: []
179
+ require_paths:
180
+ - lib
181
+ required_ruby_version: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - ! '>='
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ required_rubygems_version: !ruby/object:Gem::Requirement
187
+ requirements:
188
+ - - ! '>='
189
+ - !ruby/object:Gem::Version
190
+ version: '0'
191
+ requirements: []
192
+ rubyforge_project:
193
+ rubygems_version: 2.0.7
194
+ signing_key:
195
+ specification_version: 4
196
+ summary: Opens list of maven plugins in browser's window.
197
+ test_files: []