hive-toolbelt 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3c7c1c2827f31a895cf3c4a926b254c49f52923b
4
- data.tar.gz: af63873df27ee4aaf8d3ba5675792a5aeecdbe0a
3
+ metadata.gz: 8d6b49afa5e8f06227fc8b620720ece2b40a9fbb
4
+ data.tar.gz: c95ade148f4b030a682cd95b1ba402e39f619704
5
5
  SHA512:
6
- metadata.gz: 1f149d1426c56a68ad33b3e837f61c55dd8fc4c1415e5874e64a13c4dcef96ac7ea23eee01938644f01b24cb1432aa5b5a5d51dcc135bebab4e99365c7e95701
7
- data.tar.gz: 6f49a4f13d008eef4cb57f2827a8e9e44c38b2d307fed2c06068d0a1c95277689017a5966df8aeb4eaf393acf2b034d44fdf90ccaca85bc429d9bf1a90f4124e
6
+ metadata.gz: 69d05972959dc82561b4734d57a14a36531b47f823c15521074efe1df4c40cec167bfd45c274481c3db13764069a4ceb929cc461044964b528252d7fc59981d7
7
+ data.tar.gz: 687f25bef4af32db4622c6d99eadb656dd52dac81e08c7aa728cb4e1102cdebf7a38765bb81e4bc7142eb47ea5be3801a70d87c039ecaaa60e1f11b8c8c2272b
data/README.md CHANGED
@@ -12,6 +12,26 @@ Command Line Interface for the Hive wallet
12
12
  $ hive package # creates a .hiveapp bundle from specified or current working directory (.hidden files ignored)
13
13
  $ hive release # (TODO) bumps version, tags and pushes
14
14
 
15
+ ### hive init
16
+
17
+ $ mkdir new_app
18
+ $ cd new_app
19
+ $ hive init
20
+
21
+ `hive init` asks questions and scaffolds a Hive app. It
22
+
23
+ - creates manifest.json. Read more on [manifest configuration](https://github.com/hivewallet/hive-osx/wiki/How-to-build-a-Hive-app#wiki-manifest-file)
24
+ - creates a skeleton index.html. Read more on [index.html](https://github.com/hivewallet/hive-osx/wiki/How-to-build-a-Hive-app#wiki-index-page)
25
+ - provides a default icon
26
+ - generates basic app structure. Read more on [app structure](https://github.com/hivewallet/hive-osx/wiki/How-to-build-a-Hive-app#wiki-app-structure)
27
+ - includes a [mock Hive API](https://github.com/javgh/hiveapp-api-mock/blob/v1.0.1/hiveapp-api-mock.js) for in-browser development & testing
28
+
29
+ ### hive package
30
+
31
+ `hive package [DIR_NAME]` packages a directory into a .hiveapp bundle. `DIR_NAME` defaults to current working directory if not specified. Regardless of `DIR_NAME`, the generated `.hiveapp` bundle is always located at current working directory.
32
+
33
+ Note that the command deliberately exclude all .hidden files and directories, like `.git`, when generating the bundle.
34
+
15
35
  ## Contributing
16
36
 
17
37
  1. Fork it ( http://github.com/hivewallet/hive-toolbelt/fork )
File without changes
@@ -10,6 +10,12 @@ I18n.enforce_available_locales = false
10
10
  module Hive
11
11
  module Toolbelt
12
12
  class CLI < Thor
13
+ MANIFEST = "manifest.json"
14
+ INDEX = "index.html"
15
+ ICON = "icon.png"
16
+ README = "README.md"
17
+ LICENSE = "MIT-LICENSE.txt"
18
+
13
19
  desc "init", "scaffold a Hive app"
14
20
  def init
15
21
  config = {}
@@ -34,7 +40,7 @@ module Hive
34
40
  directory = sanitize_dir_name dir_name
35
41
  check_for_required_files directory
36
42
 
37
- bundle_name = bundle_name_from_manifest(File.join directory, 'manifest.json')
43
+ bundle_name = bundle_name_from_manifest(File.join directory, MANIFEST)
38
44
  FileUtils.rm(bundle_name) if File.exists? bundle_name
39
45
  bundle_files bundle_name, directory
40
46
 
@@ -50,11 +56,11 @@ module Hive
50
56
  def create_manifest config={}
51
57
  defaults = {
52
58
  version: "0.0.1",
53
- icon: "icon.png",
59
+ icon: ICON,
54
60
  id: id_for(config[:author], config[:name])
55
61
  }
56
62
 
57
- File.open('manifest.json', 'w') do |f|
63
+ File.open(MANIFEST, 'w') do |f|
58
64
  config[:accessedHosts] = config[:accessedHosts].split(',').map(&:strip)
59
65
  f.puts(JSON.pretty_generate config.merge(defaults))
60
66
  end
@@ -62,11 +68,11 @@ module Hive
62
68
 
63
69
  def id_for author, name
64
70
  return "" if author.blank? || name.blank?
65
- "#{author.parameterize('_')}.#{name.parameterize('_')}"
71
+ "#{author.parameterize}.#{name.parameterize}"
66
72
  end
67
73
 
68
74
  def copy_default_icon
69
- copy_file File.join('images', 'icon.png'), 'icon.png'
75
+ copy_file File.join('images', ICON), ICON
70
76
  end
71
77
 
72
78
  def copy_api_mock
@@ -75,19 +81,17 @@ module Hive
75
81
  end
76
82
 
77
83
  def create_index_html title
78
- index_filename = 'index.html'
79
- copy_file File.join('html', index_filename), index_filename
80
- gsub_file index_filename, /{{title}}/, title
84
+ copy_file File.join('html', INDEX), INDEX
85
+ gsub_file INDEX, /{{title}}/, title
81
86
  end
82
87
 
83
88
  def create_readme config
84
- readme_filename = 'README.md'
85
- copy_file readme_filename, readme_filename
86
- safe_gsub_file readme_filename, /{{name}}/, config[:name]
87
- safe_gsub_file readme_filename, /{{description}}/, config[:description]
88
- safe_gsub_file readme_filename, /{{app_id}}/, id_for(config[:author], config[:name])
89
- safe_gsub_file readme_filename, /{{repo_url}}/, config[:repo_url]
90
- safe_gsub_file readme_filename, /{{project_name}}/, project_name_from(config[:repo_url])
89
+ copy_file README, README
90
+ safe_gsub_file README, /{{name}}/, config[:name]
91
+ safe_gsub_file README, /{{description}}/, config[:description]
92
+ safe_gsub_file README, /{{app_id}}/, id_for(config[:author], config[:name])
93
+ safe_gsub_file README, /{{repo_url}}/, config[:repo_url]
94
+ safe_gsub_file README, /{{project_name}}/, project_name_from(config[:repo_url])
91
95
  end
92
96
 
93
97
  def safe_gsub_file filename, pattern, replacement
@@ -103,10 +107,9 @@ module Hive
103
107
  end
104
108
 
105
109
  def create_license author
106
- license_filename = 'LICENSE.txt'
107
- copy_file license_filename, license_filename
108
- safe_gsub_file license_filename, /{{year}}/, Time.now.year.to_s
109
- safe_gsub_file license_filename, /{{author}}/, author
110
+ copy_file LICENSE, LICENSE
111
+ safe_gsub_file LICENSE, /{{year}}/, Time.now.year.to_s
112
+ safe_gsub_file LICENSE, /{{author}}/, author
110
113
  end
111
114
 
112
115
  def create_empty_folders
@@ -122,7 +125,7 @@ module Hive
122
125
  end
123
126
 
124
127
  def check_for_required_files sanitized_dir_name
125
- %w(index.html manifest.json).each do |filename|
128
+ [INDEX, MANIFEST].each do |filename|
126
129
  if Dir.glob(File.join sanitized_dir_name, filename).empty?
127
130
  raise PackageError.new("#{filename} is required. But it's not found under #{sanitized_dir_name}")
128
131
  end
@@ -142,7 +145,7 @@ module Hive
142
145
  required = config.slice :author, :name, :version
143
146
 
144
147
  required.each do |k, v|
145
- raise PackageError.new("Please provide a value for `#{k}` field in manifest.json") if v.blank?
148
+ raise PackageError.new("Please provide a value for `#{k}` field in #{MANIFEST}") if v.blank?
146
149
  end
147
150
 
148
151
  required.values.join(' ').parameterize << '.hiveapp'
@@ -1,5 +1,5 @@
1
1
  module Hive
2
2
  module Toolbelt
3
- VERSION = "1.0.0"
3
+ VERSION = "2.0.0"
4
4
  end
5
5
  end
@@ -36,7 +36,7 @@ module Hive::Toolbelt
36
36
 
37
37
  expect(manifest["version"]).to eq("0.0.1")
38
38
  expect(manifest["icon"]).to eq("icon.png")
39
- expect(manifest["id"]).to eq("wei_lu.foo_app")
39
+ expect(manifest["id"]).to eq("wei-lu.foo-app")
40
40
  end
41
41
 
42
42
  describe 'accessedHosts' do
@@ -119,12 +119,12 @@ module Hive::Toolbelt
119
119
  it { expect(readme).to include(config[:name]) }
120
120
  it { expect(readme).to include(config[:description]) }
121
121
  it { expect(readme).to include("cd #{project_name}") }
122
- it { expect(readme).to include("ln -s ~/#{project_name}/ wei_lu.foo_app") }
122
+ it { expect(readme).to include("ln -s ~/#{project_name}/ wei-lu.foo-app") }
123
123
  it { expect(readme).to include("git clone #{config[:repo_url]}") }
124
124
  end
125
125
 
126
126
  describe '#create_license' do
127
- let(:filename) { 'LICENSE.txt' }
127
+ let(:filename) { 'MIT-LICENSE.txt' }
128
128
  let(:author) { 'Wei Lu' }
129
129
  let(:license) do
130
130
  cli.create_license author
@@ -8,7 +8,7 @@ RSpec.configure do |config|
8
8
  config.order = 'random'
9
9
 
10
10
  # clean up generated files
11
- generated_files = %w(manifest.json icon.png index.html README.md LICENSE.txt wei-lu-my-app-1-0-1.hiveapp)
11
+ generated_files = %w(manifest.json icon.png index.html README.md MIT-LICENSE.txt wei-lu-my-app-1-0-1.hiveapp)
12
12
  generated_files << File.join('javascripts', 'hiveapp-api-mock.js')
13
13
  %w(stylesheets images fonts).each do |dirname|
14
14
  generated_files << File.join(dirname, '.gitignore')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hive-toolbelt
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wei Lu
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-13 00:00:00.000000000 Z
11
+ date: 2014-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -122,7 +122,7 @@ files:
122
122
  - LICENSE.txt
123
123
  - README.md
124
124
  - Rakefile
125
- - assets/LICENSE.txt
125
+ - assets/MIT-LICENSE.txt
126
126
  - assets/README.md
127
127
  - assets/html/index.html
128
128
  - assets/images/icon.png