mvn_plugin_config 1.0.0

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