muvment 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +39 -0
- data/Rakefile +18 -0
- data/app/assets/javascripts/muvment.js +2 -0
- data/app/assets/javascripts/muvment.js.map +1 -0
- data/lib/muvment.rb +12 -0
- data/lib/muvment/version.rb +3 -0
- metadata +91 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: fbdd0a31ede1aa83116908c4f19edae94f52ae074b131d92c0bd14bf088b7f88
|
4
|
+
data.tar.gz: 070fee67e78f900d956a78f4de7f0f8e51bbbe947db93048111b5364ebca6f37
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: fe40ecff7151849efb0b1d3ba1ad5b7b081174a87bad8b0810dc10660c19e86b43fd07498bc9f7120edde23896f4a7f6847af8a84c671872213943fa3b91e0f4
|
7
|
+
data.tar.gz: 87a81e1fc726c26141461f04b517e7e8806eff39f6f1f8bf43971da6e979f89bf531f48af54b92cdc57bfef872c6cf7e4bc10f1f3a693e2eed74abe056aaa6f8
|
data/README.md
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
# Muvment
|
2
|
+
|
3
|
+
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/muvment`. To experiment with that code, run `bin/console` for an interactive prompt.
|
4
|
+
|
5
|
+
TODO: Delete this and the text above, and describe your gem
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem 'muvment'
|
13
|
+
```
|
14
|
+
|
15
|
+
And then execute:
|
16
|
+
|
17
|
+
$ bundle
|
18
|
+
|
19
|
+
Or install it yourself as:
|
20
|
+
|
21
|
+
$ gem install muvment
|
22
|
+
|
23
|
+
## Usage
|
24
|
+
|
25
|
+
TODO: Write usage instructions here
|
26
|
+
|
27
|
+
## Development
|
28
|
+
|
29
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
30
|
+
|
31
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
32
|
+
|
33
|
+
## Contributing
|
34
|
+
|
35
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/muvment. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
36
|
+
|
37
|
+
## Code of Conduct
|
38
|
+
|
39
|
+
Everyone interacting in the Muvment project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/muvment/blob/master/CODE_OF_CONDUCT.md).
|
data/Rakefile
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require "rspec/core/rake_task"
|
3
|
+
|
4
|
+
RSpec::Core::RakeTask.new(:spec)
|
5
|
+
|
6
|
+
task :default => :spec
|
7
|
+
|
8
|
+
namespace :wrapper do
|
9
|
+
desc 'Wrap assets into this gem'
|
10
|
+
task wrap: :clean do
|
11
|
+
cp_r '../dist/.', 'app/assets/javascripts/'
|
12
|
+
end
|
13
|
+
|
14
|
+
task :clean do
|
15
|
+
rm_rf 'app'
|
16
|
+
mkdir_p 'app/assets/javascripts'
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,2 @@
|
|
1
|
+
var muvment=function(t){var e={};function n(r){if(e[r])return e[r].exports;var s=e[r]={i:r,l:!1,exports:{}};return t[r].call(s.exports,s,s.exports,n),s.l=!0,s.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var s in t)n.d(r,s,function(e){return t[e]}.bind(null,s));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=1)}([function(t,e){function n(){}t.exports=class{constructor(t,e){this.movie=e,this.name=t,this.callbacks={end:n,start:n}}on(t,e){return this.callbacks[t]=e,this}onEnd(t){return this.on("end",t)}onEndSwitch(t,e){return this.onEnd(()=>t.switch(e))}onStart(t){return this.on("start",t)}play(t){return this.callbacks.start(),this.movie.play(t).then(this.callbacks.end.bind(this))}}},function(t,e,n){let r=n(2),s=n(3),o=n(0),i=n(4),a=n(5),u={};u.State=o,u.Scene=s,u.Clip=i,u.animation={sequence:function(t){return new r(t,(t,e)=>{let n=Promise.resolve();return t.forEach(t=>n=n.then(()=>t.play(e))),n})},oneOf:function(t){return new r(t,(t,e)=>t[Math.floor(Math.random()*t.length)].play(e))},addImage:function(t,e,n){let r=n+e+".svg";return t[e]?Promise.resolve():new Promise(n=>{a.get(r,s=>{let o=1e3*parseFloat(a(s).find("animate").attr("dur")||0,10);t[e]=new i(r,o),n()})})}},t.exports=u},function(t,e,n){let r=n(0);t.exports=class{constructor(t,e){this.clips=t,this.player=e}play(t){return this.player(this.clips,t)}asState(t){return new r(t,this)}}},function(t,e){t.exports=class{constructor(){this.states={}}addState(t){return this.currentState||(this.currentState=t),this.states[t.name]=t,this}switch(t){this.currentState=this.states[t],this.play()}play(t){this.currentState.play(t)}}},function(t,e,n){let r=n(0);t.exports=class{constructor(t,e){this.src=t,this.duration=e}play(t){return t.src=this.src,new Promise(t=>{setTimeout(t,this.duration)})}asState(t){return new r(t,this)}}},function(t,e){t.exports=jQuery}]);
|
2
|
+
//# sourceMappingURL=muvment.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["webpack://muvment/webpack/bootstrap","webpack://muvment/./state.js","webpack://muvment/./index.js","webpack://muvment/./animation.js","webpack://muvment/./scene.js","webpack://muvment/./clip.js","webpack://muvment/external \"jQuery\""],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","noop","[object Object]","movie","this","callbacks","end","start","event","callback","on","character","stateName","onEnd","switch","image","play","then","Animation","Scene","State","Clip","$","muvment","animation","sequence","clips","where","accum","Promise","resolve","forEach","clip","oneOf","Math","floor","random","length","addImage","imageName","urlPrefix","url","data","duration","parseFloat","find","attr","player","states","state","currentState","src","setTimeout","jQuery"],"mappings":"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","file":"muvment.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n","function noop() {};\n\nclass State {\n constructor(name, movie) {\n this.movie = movie;\n this.name = name;\n this.callbacks = {\n end: noop,\n start: noop\n };\n }\n\n on(event, callback) {\n this.callbacks[event] = callback;\n return this;\n };\n\n onEnd(callback) {\n return this.on('end', callback);\n };\n\n onEndSwitch(character, stateName) {\n return this.onEnd(() => {\n return character.switch(stateName);\n });\n };\n\n onStart(callback) {\n return this.on('start', callback);\n };\n\n play(image) {\n this.callbacks.start();\n return this.movie.play(image).then(this.callbacks.end.bind(this));\n };\n};\n\nmodule.exports = State;\n","let Animation = require('./animation')\nlet Scene = require('./scene')\nlet State = require('./state')\nlet Clip = require('./clip')\n\nlet $ = require('jquery')\n\nlet muvment = {};\n\nfunction sequence(clips) {\n return new Animation(clips, (clips, where) => {\n let accum = Promise.resolve();\n\n clips.forEach((clip) =>\n accum = accum.then(() => \n clip.play(where)));\n \n return accum;\n });\n}\n\nfunction oneOf(clips) {\n return new Animation(clips, (clips, where) => {\n return clips[Math.floor(Math.random() * clips.length)].play(where);\n });\n}\n\nfunction addImage(object, imageName, urlPrefix) {\n let url = urlPrefix + imageName + '.svg';\n if (object[imageName]) return Promise.resolve();\n\n return new Promise((resolve) => {\n $.get(url, (data) => {\n let duration = parseFloat($(data).find('animate').attr('dur') || 0, 10) * 1000;\n object[imageName] = new Clip(url, duration);\n resolve();\n });\n });\n}\n\nmuvment.State = State;\nmuvment.Scene = Scene;\nmuvment.Clip = Clip;\n\nmuvment.animation = {\n sequence: sequence,\n oneOf: oneOf,\n addImage: addImage\n};\n\nmodule.exports = muvment;\n","let State = require('./state')\n\nclass Animation {\n constructor(clips, player) {\n this.clips = clips;\n this.player = player;\n }\n\n play(where) {\n return this.player(this.clips, where);\n };\n\n asState(name) {\n return new State(name, this);\n }\n};\n\nmodule.exports = Animation;\n","class Scene {\n constructor() {\n this.states = {};\n }\n\n addState(state) {\n if (!this.currentState) this.currentState = state;\n this.states[state.name] = state;\n return this;\n };\n\n switch(stateName) {\n this.currentState = this.states[stateName];\n this.play();\n };\n\n play(image) {\n this.currentState.play(image);\n };\n};\n\nmodule.exports = Scene;\n","let State = require('./state')\n\nclass Clip {\n constructor(src, duration) {\n this.src = src;\n this.duration = duration;\n }\n\n play(where) {\n where.src = this.src;\n \n return new Promise((resolve) => {\n setTimeout(resolve, this.duration);\n });\n }\n\n asState(name) {\n return new State(name, this);\n }\n};\n\nmodule.exports = Clip;\n","module.exports = jQuery;"],"sourceRoot":""}
|
data/lib/muvment.rb
ADDED
metadata
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: muvment
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Julian Berbel Alt
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-02-05 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.16.a
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.16.a
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
description:
|
56
|
+
email:
|
57
|
+
- julian@mumuki.org
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- README.md
|
63
|
+
- Rakefile
|
64
|
+
- app/assets/javascripts/muvment.js
|
65
|
+
- app/assets/javascripts/muvment.js.map
|
66
|
+
- lib/muvment.rb
|
67
|
+
- lib/muvment/version.rb
|
68
|
+
homepage: https://github.com/mumuki/muvment
|
69
|
+
licenses:
|
70
|
+
- GPL-3.0
|
71
|
+
metadata: {}
|
72
|
+
post_install_message:
|
73
|
+
rdoc_options: []
|
74
|
+
require_paths:
|
75
|
+
- lib
|
76
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - "~>"
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '2.3'
|
81
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
requirements: []
|
87
|
+
rubygems_version: 3.0.2
|
88
|
+
signing_key:
|
89
|
+
specification_version: 4
|
90
|
+
summary: Muvment
|
91
|
+
test_files: []
|