Class: Nem
- Inherits:
-
Object
- Object
- Nem
- Defined in:
- lib/nem.rb,
lib/nem/version.rb
Constant Summary collapse
- VERSION =
"1.0.1".freeze
Instance Method Summary collapse
- #generate ⇒ Object
-
#initialize(tty = false, *keywords) ⇒ Nem
constructor
A new instance of Nem.
- #run ⇒ Object
- #validate ⇒ Object
Constructor Details
#initialize(tty = false, *keywords) ⇒ Nem
Returns a new instance of Nem.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/nem.rb', line 6 def initialize(tty = false, *keywords) @keywords = keywords @tty = tty if @tty @gemspec_file = Dir['*.gemspec'].first unless File.file?(@gemspec_file) raise ArgumentError, "no gemspec in your current directory found" end gemspec_content = File.read(@gemspec_file) else @gemspec_file = '-' gemspec_content = $stdin.read end @gemspec = eval gemspec_content, binding, @gemspec_file end |
Instance Method Details
#generate ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/nem.rb', line 46 def generate JSON.pretty_generate( "name" => @gemspec.name, "version" => @gemspec.version, "description" => @gemspec.description, "homepage" => @gemspec.homepage, "author" => { "name" => @gemspec. || Array(@gemspec.).first, "email" => Array(@gemspec.email).first, }, "keywords" => ["nem", *@keywords], "preferGlobal" => true, "bin" => Hash[@gemspec.executables.map{ |bin| [File.basename(bin), "bin/#{File.basename(bin)}"] }], "license" => @gemspec.license ) end |
#run ⇒ Object
36 37 38 39 40 41 42 43 44 |
# File 'lib/nem.rb', line 36 def run validate if @tty File.write "package.json", generate puts "Converted #@gemspec_file to package.json" else puts generate end end |
#validate ⇒ Object
26 27 28 29 30 31 32 33 34 |
# File 'lib/nem.rb', line 26 def validate unless @gemspec.runtime_dependencies.empty? raise ArgumentError, 'dependencies are not supported' end if @gemspec.executables.empty? raise ArgumentError, "you must specify at least one executable" end end |