hive-toolbelt 1.0.0 → 2.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.
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